mpi-hs-0.7.1.0: mpi-hs.cabal
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.31.2.
--
-- see: https://github.com/sol/hpack
--
-- hash: 89b326f1e7c99cda61b1e5fd0a447e1cdbb279459215ca51e80473e789abaafb
name: mpi-hs
version: 0.7.1.0
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.
category: Distributed Computing
homepage: https://github.com/eschnett/mpi-hs#readme
bug-reports: https://github.com/eschnett/mpi-hs/issues
author: Erik Schnetter <schnetter@gmail.com>
maintainer: Erik Schnetter <schnetter@gmail.com>
copyright: 2018, 2019, 2020 Erik Schnetter <schnetter@gmail.com>
license: Apache-2.0
license-file: LICENSE
build-type: Simple
extra-source-files:
LICENSE
README.md
package.yaml
stack.yaml
stack.yaml.lock
c/include/mpihs.h
c/src/mpihs.c
source-repository head
type: git
location: https://github.com/eschnett/mpi-hs
flag mpich-debian
description: Use MPICH on Debian
manual: True
default: False
flag mpich-macports
description: Use MPICH on MacPorts
manual: True
default: False
flag mpich-ubuntu
description: Use MPICH on Ubuntu
manual: True
default: False
flag openmpi-debian
description: Use OpenMPI on Debian
manual: True
default: False
flag openmpi-macports
description: Use OpenMPI on MacPorts
manual: True
default: False
flag openmpi-ubuntu
description: Use OpenMPI on Ubuntu
manual: True
default: False
flag system-mpi
description: Use generic system MPI
manual: True
default: True
library
exposed-modules:
Control.Distributed.MPI
Control.Distributed.MPI.Storable
other-modules:
Paths_mpi_hs
hs-source-dirs:
lib
ghc-options: -Wall
include-dirs:
c/include
c-sources:
c/src/mpihs.c
build-tools:
c2hs
build-depends:
base >=4 && <5
, bytestring
, monad-loops
if flag(mpich-debian)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
if flag(mpich-macports)
include-dirs:
/opt/local/include/mpich-gcc9
extra-lib-dirs:
/opt/local/lib/mpich-gcc9
extra-libraries:
mpi
if flag(mpich-ubuntu)
include-dirs:
/usr/include/x86_64-linux-gnu/mpich
/usr/lib/mpich/include
extra-lib-dirs:
/usr/lib/mpich/lib
/usr/lib/x86_64-linux-gnu
extra-libraries:
mpich
if flag(openmpi-debian)
include-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/include
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/lib
extra-libraries:
mpi
if flag(openmpi-macports)
include-dirs:
/opt/local/include/openmpi-mp
extra-lib-dirs:
/opt/local/lib/openmpi-mp
extra-libraries:
mpi
if flag(openmpi-ubuntu)
include-dirs:
/usr/lib/openmpi/include
extra-lib-dirs:
/usr/lib/openmpi/lib
extra-libraries:
mpi
if flag(system-mpi)
if !flag(mpich-debian)
if !flag(mpich-macports)
if !flag(mpich-ubuntu)
if !flag(openmpi-debian)
if !flag(openmpi-macports)
if !flag(openmpi-ubuntu)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
default-language: Haskell2010
executable example1
main-is: example1.hs
other-modules:
Paths_mpi_hs
hs-source-dirs:
src
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, mpi-hs
if flag(mpich-debian)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
if flag(mpich-macports)
include-dirs:
/opt/local/include/mpich-gcc9
extra-lib-dirs:
/opt/local/lib/mpich-gcc9
extra-libraries:
mpi
if flag(mpich-ubuntu)
include-dirs:
/usr/include/x86_64-linux-gnu/mpich
/usr/lib/mpich/include
extra-lib-dirs:
/usr/lib/mpich/lib
/usr/lib/x86_64-linux-gnu
extra-libraries:
mpich
if flag(openmpi-debian)
include-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/include
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/lib
extra-libraries:
mpi
if flag(openmpi-macports)
include-dirs:
/opt/local/include/openmpi-mp
extra-lib-dirs:
/opt/local/lib/openmpi-mp
extra-libraries:
mpi
if flag(openmpi-ubuntu)
include-dirs:
/usr/lib/openmpi/include
extra-lib-dirs:
/usr/lib/openmpi/lib
extra-libraries:
mpi
if flag(system-mpi)
if !flag(mpich-debian)
if !flag(mpich-macports)
if !flag(mpich-ubuntu)
if !flag(openmpi-debian)
if !flag(openmpi-macports)
if !flag(openmpi-ubuntu)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
default-language: Haskell2010
executable example2
main-is: example2.hs
other-modules:
Paths_mpi_hs
hs-source-dirs:
src
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, mpi-hs
if flag(mpich-debian)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
if flag(mpich-macports)
include-dirs:
/opt/local/include/mpich-gcc9
extra-lib-dirs:
/opt/local/lib/mpich-gcc9
extra-libraries:
mpi
if flag(mpich-ubuntu)
include-dirs:
/usr/include/x86_64-linux-gnu/mpich
/usr/lib/mpich/include
extra-lib-dirs:
/usr/lib/mpich/lib
/usr/lib/x86_64-linux-gnu
extra-libraries:
mpich
if flag(openmpi-debian)
include-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/include
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/lib
extra-libraries:
mpi
if flag(openmpi-macports)
include-dirs:
/opt/local/include/openmpi-mp
extra-lib-dirs:
/opt/local/lib/openmpi-mp
extra-libraries:
mpi
if flag(openmpi-ubuntu)
include-dirs:
/usr/lib/openmpi/include
extra-lib-dirs:
/usr/lib/openmpi/lib
extra-libraries:
mpi
if flag(system-mpi)
if !flag(mpich-debian)
if !flag(mpich-macports)
if !flag(mpich-ubuntu)
if !flag(openmpi-debian)
if !flag(openmpi-macports)
if !flag(openmpi-ubuntu)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
default-language: Haskell2010
executable version
main-is: version.hs
other-modules:
Paths_mpi_hs
hs-source-dirs:
src
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, mpi-hs
if flag(mpich-debian)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
if flag(mpich-macports)
include-dirs:
/opt/local/include/mpich-gcc9
extra-lib-dirs:
/opt/local/lib/mpich-gcc9
extra-libraries:
mpi
if flag(mpich-ubuntu)
include-dirs:
/usr/include/x86_64-linux-gnu/mpich
/usr/lib/mpich/include
extra-lib-dirs:
/usr/lib/mpich/lib
/usr/lib/x86_64-linux-gnu
extra-libraries:
mpich
if flag(openmpi-debian)
include-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/include
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/lib
extra-libraries:
mpi
if flag(openmpi-macports)
include-dirs:
/opt/local/include/openmpi-mp
extra-lib-dirs:
/opt/local/lib/openmpi-mp
extra-libraries:
mpi
if flag(openmpi-ubuntu)
include-dirs:
/usr/lib/openmpi/include
extra-lib-dirs:
/usr/lib/openmpi/lib
extra-libraries:
mpi
if flag(system-mpi)
if !flag(mpich-debian)
if !flag(mpich-macports)
if !flag(mpich-ubuntu)
if !flag(openmpi-debian)
if !flag(openmpi-macports)
if !flag(openmpi-ubuntu)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
default-language: Haskell2010
test-suite mpi-test
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules:
Paths_mpi_hs
hs-source-dirs:
tests/mpi
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, monad-loops
, mpi-hs
if flag(mpich-debian)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
if flag(mpich-macports)
include-dirs:
/opt/local/include/mpich-gcc9
extra-lib-dirs:
/opt/local/lib/mpich-gcc9
extra-libraries:
mpi
if flag(mpich-ubuntu)
include-dirs:
/usr/include/x86_64-linux-gnu/mpich
/usr/lib/mpich/include
extra-lib-dirs:
/usr/lib/mpich/lib
/usr/lib/x86_64-linux-gnu
extra-libraries:
mpich
if flag(openmpi-debian)
include-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/include
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/lib
extra-libraries:
mpi
if flag(openmpi-macports)
include-dirs:
/opt/local/include/openmpi-mp
extra-lib-dirs:
/opt/local/lib/openmpi-mp
extra-libraries:
mpi
if flag(openmpi-ubuntu)
include-dirs:
/usr/lib/openmpi/include
extra-lib-dirs:
/usr/lib/openmpi/lib
extra-libraries:
mpi
if flag(system-mpi)
if !flag(mpich-debian)
if !flag(mpich-macports)
if !flag(mpich-ubuntu)
if !flag(openmpi-debian)
if !flag(openmpi-macports)
if !flag(openmpi-ubuntu)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
default-language: Haskell2010
test-suite mpi-test-storable
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules:
Paths_mpi_hs
hs-source-dirs:
tests/storable
ghc-options: -Wall -rtsopts -threaded -with-rtsopts=-N
build-depends:
base
, mpi-hs
if flag(mpich-debian)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
if flag(mpich-macports)
include-dirs:
/opt/local/include/mpich-gcc9
extra-lib-dirs:
/opt/local/lib/mpich-gcc9
extra-libraries:
mpi
if flag(mpich-ubuntu)
include-dirs:
/usr/include/x86_64-linux-gnu/mpich
/usr/lib/mpich/include
extra-lib-dirs:
/usr/lib/mpich/lib
/usr/lib/x86_64-linux-gnu
extra-libraries:
mpich
if flag(openmpi-debian)
include-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/include
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/openmpi/lib
extra-libraries:
mpi
if flag(openmpi-macports)
include-dirs:
/opt/local/include/openmpi-mp
extra-lib-dirs:
/opt/local/lib/openmpi-mp
extra-libraries:
mpi
if flag(openmpi-ubuntu)
include-dirs:
/usr/lib/openmpi/include
extra-lib-dirs:
/usr/lib/openmpi/lib
extra-libraries:
mpi
if flag(system-mpi)
if !flag(mpich-debian)
if !flag(mpich-macports)
if !flag(mpich-ubuntu)
if !flag(openmpi-debian)
if !flag(openmpi-macports)
if !flag(openmpi-ubuntu)
include-dirs:
/usr/include/mpich
/usr/include/x86_64-linux-gnu/mpich
extra-lib-dirs:
/usr/lib/x86_64-linux-gnu/lib
extra-libraries:
mpich
default-language: Haskell2010