From dc85a838b6b310ca2d91f7eaa7c8f30d92c9eb3f Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Fri, 13 Sep 2024 09:20:34 +0200 Subject: added openmpi4 as replacement for openmpi --- extra/openmpi4/.SRCINFO | 52 +++++++++++++++++++++++ extra/openmpi4/PKGBUILD | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 extra/openmpi4/.SRCINFO create mode 100644 extra/openmpi4/PKGBUILD diff --git a/extra/openmpi4/.SRCINFO b/extra/openmpi4/.SRCINFO new file mode 100644 index 00000000..67d48985 --- /dev/null +++ b/extra/openmpi4/.SRCINFO @@ -0,0 +1,52 @@ +pkgbase = openmpi4 + pkgdesc = High performance message passing library (MPI) + pkgver = 4.1.6 + pkgrel = 3 + url = https://www.open-mpi.org + arch = x86_64 + arch = pentium4 + arch = i686 + arch = i486 + license = custom:OpenMPI + makedepends = gcc-fortran + makedepends = valgrind + depends = gcc-libs + depends = glibc + depends = hwloc + depends = libevent + depends = libnl + depends = openpmix + depends = openssh + depends = zlib + optdepends = cuda: cuda support + optdepends = gcc-fortran: fortran support + optdepends = perl: for aggregate_profile.pl and profile2mat.pl + provides = openmpi + provides = libmca_common_cuda.so + provides = libmca_common_monitoring.so + provides = libmca_common_ompio.so + provides = libmca_common_sm.so + provides = libmpi.so + provides = libmpi_cxx.so + provides = libmpi_mpifh.so + provides = libmpi_usempi_ignore_tkr.so + provides = libmpi_usempif08.so + provides = libompitrace.so + provides = libopen-pal.so + provides = libopen-rte.so + conflicts = openmpi + replaces = openmpi + source = https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.bz2 + sha256sums = f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415 + b2sums = 4f119e1ed9b8787f0f860295ab1721fe2fd5300b8e182230a9eba3a864680b02bbd30618cc6d798a693a121626fc0ad5f447144d9ba91becb734f1a530d7a23a + +pkgname = openmpi4 + depends = gcc-libs + depends = glibc + depends = hwloc + depends = libevent + depends = libnl + depends = openpmix + depends = openssh + depends = zlib + depends = libpmix.so diff --git a/extra/openmpi4/PKGBUILD b/extra/openmpi4/PKGBUILD new file mode 100644 index 00000000..54368e0d --- /dev/null +++ b/extra/openmpi4/PKGBUILD @@ -0,0 +1,110 @@ +# Maintainer: Levente Polyak +# Maintainer: David Runge +# Contributor: Anatol Pomozov +# Contributor: Stéphane Gaudreault + +pkgname=openmpi4 +_pkgname=${pkgname%4} +pkgver=4.1.6 +pkgrel=3 +pkgdesc='High performance message passing library (MPI)' +arch=(x86_64 pentium4 i686 i486) +url='https://www.open-mpi.org' +license=('custom:OpenMPI') +depends=( + gcc-libs + glibc + hwloc + libevent + libnl + openpmix + openssh + zlib +) +makedepends=( + cuda + gcc-fortran + valgrind +) +optdepends=( + 'cuda: cuda support' + 'gcc-fortran: fortran support' + 'perl: for aggregate_profile.pl and profile2mat.pl' +) +provides=( + openmpi + libmca_common_cuda.so + libmca_common_monitoring.so + libmca_common_ompio.so + libmca_common_sm.so + libmpi.so + libmpi_cxx.so + libmpi_mpifh.so + libmpi_usempi_ignore_tkr.so + libmpi_usempif08.so + libompitrace.so + libopen-pal.so + libopen-rte.so +) +conflicts=(openmpi) +replaces=(openmpi) +source=( + https://download.open-mpi.org/release/open-mpi/v${pkgver%.*}/${pkgname%4}-$pkgver.tar.bz2) +sha256sums=('f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415') +b2sums=('4f119e1ed9b8787f0f860295ab1721fe2fd5300b8e182230a9eba3a864680b02bbd30618cc6d798a693a121626fc0ad5f447144d9ba91becb734f1a530d7a23a') + +build() { + local configure_options=( + --prefix=/usr + --enable-builtin-atomics + --enable-memchecker + --enable-mpi-cxx + --enable-mpi-fortran=all + --enable-pretty-print-stacktrace + --libdir=/usr/lib + --sysconfdir=/etc/$_pkgname + --with-cuda=/opt/cuda + --with-hwloc=external + --with-libevent=external + --with-pmix=external + --with-valgrind + ) + cd $_pkgname-$pkgver + + # set environment variables for reproducible build + # see https://github.com/open-mpi/ompi/blob/main/docs/release-notes/general.rst + export HOSTNAME=buildhost + export USER=builduser + + # TODO: depend on prrte with openmpi >= 5 + # TODO: remove ac_cv_func_sem_open=no when there is a glibc release fixing https://sourceware.org/bugzilla/show_bug.cgi?id=30789 + ac_cv_func_sem_open=no ./configure "${configure_options[@]}" + # prevent excessive overlinking due to libtool + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make V=1 +} + +check() { + make check -C $_pkgname-$pkgver +} + +package() { + depends+=(libpmix.so) + + make DESTDIR="$pkgdir" install -C $_pkgname-$pkgver + install -Dm 644 $_pkgname-$pkgver/LICENSE -t "$pkgdir/usr/share/licenses/$_pkgname/" +} + +# vim: ts=2 sw=2 et: + +# -- Arch32 specific -- + +# no CUDA +makedepends=(${makedepends[@]//cuda/}) +eval "$( + declare -f build | \ + sed ' + /local configure_options.*/ a \ + configure_options=(${configure_options[@]//--with-cuda=\\/opt\\/cuda}) + ' +)" -- cgit v1.2.3-70-g09d2