{"id":19863914,"url":"https://github.com/sandialabs/fbmpi","last_synced_at":"2025-10-30T13:39:43.920Z","repository":{"id":94251147,"uuid":"477813483","full_name":"sandialabs/fbmpi","owner":"sandialabs","description":"A fallback implementation of MPI, supports one process only but is portable (incl Windows)","archived":false,"fork":false,"pushed_at":"2023-05-15T19:51:52.000Z","size":106,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T15:32:41.784Z","etag":null,"topics":["c","mpi","mpi-communications","mpi-io","mpi-library","scr-2756","snl-os-sys-software"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandialabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-04T17:54:38.000Z","updated_at":"2024-09-03T01:39:04.000Z","dependencies_parsed_at":"2025-01-11T15:32:21.411Z","dependency_job_id":"63d9f188-b487-4993-9624-5aac524d8f3e","html_url":"https://github.com/sandialabs/fbmpi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Ffbmpi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Ffbmpi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Ffbmpi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2Ffbmpi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandialabs","download_url":"https://codeload.github.com/sandialabs/fbmpi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241272628,"owners_count":19937092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","mpi","mpi-communications","mpi-io","mpi-library","scr-2756","snl-os-sys-software"],"created_at":"2024-11-12T15:16:34.645Z","updated_at":"2025-10-30T13:39:38.867Z","avatar_url":"https://github.com/sandialabs.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"FBMPI\n=====\n\nFallBack MPI (FBMPI) is a partial implementation of the MPI standard that only supports a single rank.\nThe purpose of FBMPI is to act as a fallback MPI implementation in situations where\na full-fledged MPI implementation is not desired.\nOne important situation like this is on Windows, where OpenMPI has dropped support and\nthe alternative (before FBMPI) was to compile Microsoft MPI, which is costly.\n\nBy ensuring that there can always be an MPI implementation, FBMPI alleviates the need\nfor downstream libraries and applications to have \"no MPI\" build options and associated\npreprocessor logic in their own code, including many custom implementations\nof single-rank communication functionality.\n\nFBMPI is written in standard C and compiles with modern CMake, ensuring portability across systems.\n\nDownstream packages should use CMake to find their MPI implementation like this:\n\n```cmake\nfind_package(MPI)\n```\n\nTo use FBMPI with downstream packages, those packages can be configured using the following\nCMake variable definitions:\n\n```\n-DMPI_HOME=$INTALL_LOCATION\"\n-DMPI_C_LIB_NAMES=mpi\n-DMPI_CXX_LIB_NAMES=mpi\n-DMPI_mpi_LIBRARY=$INSTALL_LOCATION/lib/libfbmpi.a\n-DMPI_C_HEADER_DIR=$INSTALL_LOCATION/include\n-DMPI_CXX_HEADER_DIR=$INSTALL_LOCATION/include\n```\n\nWhere `$INSTALL_LOCATION` is the directory where FBMPI was installed.\n\nFBMPI defines the majority of MPI functions used in popular software\nsuch as [HDF5](https://www.hdfgroup.org/solutions/hdf5/), although many functions are not implemented yet.\nSufficient functionality exists to run many applications successfully\nincluding point-to-point communication and reductions.\n\nFBMPI supports the `PMPI` profiling interface and works with profiling\ntools such as [Caliper](https://software.llnl.gov/Caliper/).\n\nFBMPI also supports CUDA-aware MPI through its CMake option:\n\n```\n-Dfbmpi_ENABLE_CUDA=ON\n```\n\nAt Sandia, FBMPI is SCR# 2756\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandialabs%2Ffbmpi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandialabs%2Ffbmpi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandialabs%2Ffbmpi/lists"}