name: mpi-hs-cereal version: '0.1.0.0' github: "eschnett/mpi-hs-cereal" license: Apache-2.0 author: "Erik Schnetter " maintainer: "Erik Schnetter " category: Distributed Computing synopsis: MPI bindings for Haskell description: | MPI (the [Message Passinag Interface](https://www.mpi-forum.org)) is a widely used standard for distributed-memory programming on HPC (High Performance Computing) systems. MPI allows exchanging data (_messages_) between programs running in parallel. There are several high-quality open source MPI implementations (e.g. MPICH, MVAPICH, OpenMPI) as well as a variety of closed-source implementations. These libraries can typically make use of high-bandwidth low-latency communication hardware such as InfiniBand. This library @mpi-hs@ provides Haskell bindings for MPI. It is based on ideas taken from [haskell-mpi](https://github.com/bjpop/haskell-mpi), [Boost.MPI](https://www.boost.org/doc/libs/1_64_0/doc/html/mpi.html) for C++, and [MPI for Python](https://mpi4py.readthedocs.io/en/stable/). @mpi-hs@ provides two API levels: A low-level API gives rather direct access to the actual MPI API, apart from certain "reasonable" mappings from C to Haskell (e.g. output arguments that are in C stored via a pointer are in Haskell regular return values). A high-level API simplifies exchanging arbitrary values that can be serialized. Note that the automated builds on [Hackage](http://hackage.haskell.org) will currently always fail since no system MPI library is present there. However, builds on [Stackage](https://www.stackage.org) should succeed -- if not, there is an error in this package. extra-source-files: - LICENSE - README.md - package.yaml - stack.yaml - stack.yaml.lock ghc-options: - -Wall library: dependencies: - base >=4 && <5 # tested with 4.11, 4.12, 4.13 - cereal - bytestring - monad-loops - mpi-hs >=0.7.0.0 source-dirs: lib executables: version: source-dirs: src main: version.hs dependencies: - base - mpi-hs ghc-options: - -rtsopts - -threaded - -with-rtsopts=-N example1: source-dirs: src main: example1.hs dependencies: - base - mpi-hs ghc-options: - -rtsopts - -threaded - -with-rtsopts=-N example2: source-dirs: src main: example2.hs dependencies: - base - mpi-hs-cereal ghc-options: - -rtsopts - -threaded - -with-rtsopts=-N tests: mpi-test-cereal: source-dirs: tests/cereal main: Main.hs dependencies: - base - mpi-hs-cereal # - tasty # - tasty-hunit # - tasty-hspec # - unix ghc-options: - -rtsopts - -threaded - -with-rtsopts=-N