https://github.com/bluebrain/libsonata-mpi

Plugin for libsonata enabling collective I/O.

https://github.com/bluebrain/libsonata-mpi

Science Score: 13.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
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Plugin for libsonata enabling collective I/O.

Basic Info
  • Host: GitHub
  • Owner: BlueBrain
  • License: lgpl-3.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 36.1 KB
Statistics
  • Stars: 0
  • Watchers: 9
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Archived
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.rst

.. warning::
   The Blue Brain Project concluded in December 2024, so development has ceased under the BlueBrain GitHub organization.
   Future development will take place at: https://github.com/openbraininstitute/libsonata-mpi

MPI-IO backend for libsonata
============================

This provides an ``Hdf5Reader`` plugin that reads files using
collective MPI-IO.

Installation
------------

Python
~~~~~~

Since ``libsonata_mpi`` depends on MPI, it can’t be built as a wheel and must
be installed from source. Therefore, a reasonably modern C++ compiler and MPI
must already be installed.

Because both ``libsonata`` and ``libsonata-mpi`` depend on HDF5 they need to be
linked against the same version of HDF5. Hence, effectively both ``libsonata``
and ``libsonata-mpi`` need to be built from source.

Manually
^^^^^^^^

Clone both repositories (with ``--recursive``) and then use:

::

   pip install .

in both repositories.

Spack
^^^^^

There's a spack recipe which allows the following, preferably inside
a spack environment.

::

   spack add libsonata-mpi
   spack install

C++
~~~

Ensure a reasonably modern C++ compiler and MPI are installed/loaded.
Then perform:

::

   cmake -DSONATA_MPI_FROM_SUBMODULES=On -DCMAKE_BUILD_TYPE=Release -B build
   cmake --build build --parallel

customize by using:

* ``CMAKE_INSTALL_PREFIX`` to pick an installation directory.
* ``CMAKE_PREFIX_PATH`` to help CMake find locally installed dependencies.
* ``SONATA_MPI_FROM_SUBMODULES`` to configure if dependencies are picked up
  from Git submodules.

Usage
-----

Python
~~~~~~

::

   from libsonata import make_collective_reader

   hdf5_reader = libsonata.make_collective_reader(
       comm,
       collective_metadata,
       collective_transfer,
   )
   edges = libsonata.EdgeStorage(edge_filename, hdf5_reader)

If available, this will use MPI-IO with collective I/O when reading datasets
``collective_transfer == True`` or HDF5 metadata ``collective_metadata ==
True``. The communicator must be an MPI4Py communicator. If ``libsonata`` fails
to import ``libsonata_mpi``, it’ll return the default reader. To check
if collective I/O is working use Darshan or set the environment variable
``ROMIO_PRINT_HINTS=1``.

Acknowledgements
----------------
The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

License
-------

libsonata is distributed under the terms of the GNU Lesser General Public License version 3,
unless noted otherwise, for example, for external dependencies.
Refer to `COPYING.LESSER` and `COPYING` files for details.

Copyright (c) 2023 Blue Brain Project/EPFL

libsonata is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License version 3
as published by the Free Software Foundation.

libsonata is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with libsonata.  If not, see .

Owner

  • Name: The Blue Brain Project
  • Login: BlueBrain
  • Kind: organization
  • Email: bbp.opensource@epfl.ch
  • Location: Geneva, Switzerland

Open Source Software produced and used by the Blue Brain Project

GitHub Events

Total
  • Fork event: 1
Last Year
  • Fork event: 1

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.17
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 1
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
Pull Request Authors
  • 1uc (10)
  • dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1)

Dependencies

pyproject.toml pypi
setup.py pypi
  • libsonata >=0.1.25
  • mpi4py *
.github/workflows/run-tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite