https://github.com/carv-ics-forth/vhx
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: CARV-ICS-FORTH
- License: bsd-3-clause
- Language: C
- Default Branch: main
- Size: 205 KB
Statistics
- Stars: 0
- Watchers: 6
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
VHX-OpenMPI
VHX is a developing OpenMPI component aiming to eploit XPMEM'single copy capacity, hwloc's topology awareness and Vector Instructions in order to offer optimized intra-node collective communication.
- Hierarchy
A basic feature of VHX is the construction of a n-level hierarchy based on topology information obtained through the use of hwloc and the respective API of the OPAL (Open Access Layer) library provided with OpenMPI.
Hierarchy levels supported:
- NUMA node
- Package/Socket
- L1/L2/L3 cache
- Hwthread/core
- XPMEM/CICO support
VHX supports zero-copy data transfer (specifically XPMEM) -Implemented using OPAL's SMSC library -Generally used for data large message sizes (can be configured)
In addition, copy-in-copy-out (CICO) data transportation can be used for messages of smaller sizes or when XPMEM is not available
- Lock free synchronization
VHX does not rely on locks or atomic function to achieve synchronization between processes. Instead it utilizes a single writer-many readers scheme for the handling of control variables
- Data Pipeling
VHX allows concurrent (in terms of hierarchy) transfer of data with the use of data pipelining.
- Vector Instructions
VHX implements memcopy using Vector Instructions of the RISC-V architecture.
Building
Before building Open MPI as described in its official documentation (https://github.com/open-mpi/ompi/blob/master/README.md), one must copy the component's code inside OpenMPI's ompi/mca/coll/vhx folder and execute OpenMPI's autogen.pl script (possilbe requirement of --force parameter in non developer versions of OpenMPI). Afterwards, the build process is the standard one. During OpenMPI's configuration, the user must also designate XPMEM's location with the parameter --with-xpmem
Execution
When built, VHX should be a candidate betweeen other existing collective components. As a result, one must set coll_vhx_priority MCA param to a high value
to get it chosen. This is achived with the following runtime paramater, which sets it to 100 (max value)
--mca coll_vhx_priority 100
Note that other candidate components must be available in the case some operations are not supported by VHX. For this reason they must be declared along with VHX using
--mca coll basic,libnbc,vhx
An example of an execution command follows:
mpirun -np 32 --mca coll basic,libnbc,vhx ----mca coll_vhx_priority 100 --mca coll_vhx_hierarchy numa --map-by core --bind-to core ./executable_name
## Acknowledgments
We thankfully acknowledge the support of the European Commission and the Greek General Secretariat for Research and Innovation under the EuroHPC Programme through the The European-PILOT project (GA 101034126). National contributions from the involved state members (including the Greek General Secretariat for Research and Innovation) match the EuroHPC funding.
Owner
- Name: Computer Architecture and VLSI Systems (CARV) Laboratory
- Login: CARV-ICS-FORTH
- Kind: organization
- Location: Heraklion, Greece
- Website: http://www.ics.forth.gr/carv/
- Repositories: 53
- Profile: https://github.com/CARV-ICS-FORTH
GitHub Events
Total
- Push event: 6
Last Year
- Push event: 6
Issues and Pull Requests
Last synced: over 1 year 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