core-performance-openmp
Measure the performance of individual cores with OpenMP.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.6%) to scientific vocabulary
Repository
Measure the performance of individual cores with OpenMP.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Measure the performance of individual cores with OpenMP.
You can use this program to measure the performance of individual CPU cores of a system. It works by running a pleasingly parallel workload on each core and measuring the time it takes to complete. The workload is a simple loop that find the sum of all the elements of an array (1 billion 64-bit floating point numbers by default). The program is written in C++ and uses OpenMP to parallelize the workload. To prevent the operating system from moving threads between cores, the program uses the OpenMP affinity API to pin each thread to a specific core.
[!NOTE] You can just copy
main.shto your system and run it. \ For the code, refer tomain.cxx.
```bash $ ./main.sh
OMPNUMTHREADS=64
{run=000, thread=000, node=0, core=000, time=2407.0969ms, flops=4.1544e+08}
{run=000, thread=001, node=0, core=032, time=2407.0779ms, flops=4.1544e+08}
{run=000, thread=002, node=1, core=001, time=2407.0649ms, flops=4.1544e+08}
...
```
I run this program on nodes 1, 2, and 4 of our cluster - no core-specific faults are present.
Also below is runtime stabilisation plot (I perform 100 runs of summing a billion elements on each core).
References
- OpenMP topic: Affinity - Parallel Programming for Science Engineering: The Art of HPC, volume 2 by Victor Eijkhout
- c - Openmp. How to retrieve the core id in which a thread is running - Stack Overflow
- c++ - OpenMP and CPU affinity - Stack Overflow
- c++ - Set CPU affinity when create a thread - Stack Overflow
- Controlling OpenMP Thread Affinity
- Thread Affinity Interface
- OpenMP Application Program Interface Version 3.1
- Embarrassingly parallel - Wikipedia
Owner
- Name: puzzlef
- Login: puzzlef
- Kind: organization
- Website: https://puzzlef.github.io/
- Repositories: 10
- Profile: https://github.com/puzzlef
A summary of experiments.
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Sahu
given-names: Subhajit
orcid: https://orcid.org/0000-0001-5140-6578
title: "puzzlef/core-performance-openmp: Measure the performance of individual cores with OpenMP"
version: 1.0.0
doi: 10.5281/zenodo.10208367
date-released: 2023-11-27
GitHub Events
Total
- Push event: 1
Last Year
- Push event: 1
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Subhajit Sahu | w****7@g****m | 9 |
Issues and Pull Requests
Last synced: 7 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0






