mpiconstants

Extract various constants from MPI libraries

https://github.com/eschnett/mpiconstants

Science Score: 67.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
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Extract various constants from MPI libraries

Basic Info
  • Host: GitHub
  • Owner: eschnett
  • License: mit
  • Language: C
  • Default Branch: main
  • Size: 29.3 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 10
Created over 4 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation Zenodo

README.md

MPIconstants

  • GitHub
CI
  • DOI

Extract compile-time and load-time constants from and MPI library. This is useful for libraries or applications that are not written in C, C++, or Fortran, and want to link against an MPI library as a binary dependency.

For the compile-time constants (e.g. MPI_VERSION), an executable generate_compile_time_mpi_constants is created that outputs their definitions.

For the load-time constants (e.g. MPI_COMM_WORLD), a shared library libload_time_mpi_constants.so is created that defines global variables holding the respective values.

Example output from generate_compile_time_mpi_constants: Julia const MPI_VERSION_ = Cint(3) const MPI_SUBVERSION_ = Cint(1) (This output is actually Julia code.)

Example definition in libload_time_mpi_constants.so: C const MPI_Comm MPICONSTANTS_COMM_NULL; const MPI_Comm MPICONSTANTS_COMM_SELF; const MPI_Comm MPICONSTANTS_COMM_WORLD; This shared library can be loaded via dlopen, and the constants MPICONSTANTS_COMM_NULL etc. can be read to determine the respective values.

Thinking about new names

Should we rename things to sound more uniform? Maybe:

  • Project: getmpiabi
  • Executable: getmpiabi1
  • Shared library: getmpiabi2

Using cmake to build this library

sh rm -rf build $HOME/src/c/MPIstuff/mpiconstants-openmpi cmake -S . -B build -G Ninja -DMPIEXEC_EXECUTABLE=$(which mpiexec-openmpi-gcc11) -DCMAKE_C_COMPILER=mpicc-openmpi-gcc11 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$HOME/src/c/MPIstuff/mpiconstants-openmpi cmake --build build cmake --install build

Owner

  • Name: Erik Schnetter
  • Login: eschnett
  • Kind: user
  • Location: Waterloo, Ontario, Canada
  • Company: Perimeter Institute for Theoretical Physics

Citation (CITATION.cff)

cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Schnetter
    given-names: Erik
    orcid: https://orcid.org/0000-0002-4518-9017
title: MPIconstants
version: v1.5.0
doi: 10.5281/zenodo.6174564
date-released: 2022-05-23

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 1
  • Total pull requests: 2
  • Average time to close issues: about 11 hours
  • Average time to close pull requests: about 1 hour
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 3.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • 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
Top Authors
Issue Authors
  • amontoison (1)
Pull Request Authors
  • eschnett (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v4 composite