From 901c95e0186c43e3b6bffdd8f56e11ae95c788b9 Mon Sep 17 00:00:00 2001 From: miqlas <5569059+extrowerk@users.noreply.github.com> Date: Mon, 13 Aug 2018 19:10:40 +0200 Subject: [PATCH] Open-MPI: new recipe (#2899) --- sys-cluster/openmpi/openmpi-3.1.1.recipe | 226 ++++++++++++++++++ .../openmpi/patches/openmpi-3.1.1.patchset | 49 ++++ 2 files changed, 275 insertions(+) create mode 100644 sys-cluster/openmpi/openmpi-3.1.1.recipe create mode 100644 sys-cluster/openmpi/patches/openmpi-3.1.1.patchset diff --git a/sys-cluster/openmpi/openmpi-3.1.1.recipe b/sys-cluster/openmpi/openmpi-3.1.1.recipe new file mode 100644 index 000000000..a486e4e96 --- /dev/null +++ b/sys-cluster/openmpi/openmpi-3.1.1.recipe @@ -0,0 +1,226 @@ +SUMMARY="A high-performance message passing library (MPI)" +DESCRIPTION="The Open MPI Project is an open source Message Passing \ +Interface implementation that is developed and maintained by a consortium \ +of academic, research, and industry partners. Open MPI is therefore able \ +to combine the expertise, technologies, and resources from all across the \ +High Performance Computing community in order to build the best MPI library \ +available. Open MPI offers advantages for system and software vendors, \ +application developers and computer science researchers." +HOMEPAGE="https://www.open-mpi.org/" +COPYRIGHT="2004-2010 The Trustees of Indiana University and Indiana \ + University Research and Technology Corporation + 2004-2017 The University of Tennessee and The University of Tennessee \ + Research Foundation + 2004-2010 High Performance Computing Center Stuttgart,University of \ + Stuttgart + 2004-2008 The Regents of the University of California + 2006-2017 Los Alamos National Security, LLC. + 2006-2017 Cisco Systems, Inc. + 2006-2010 Voltaire, Inc. + 2006-2017 Sandia National Laboratories + 2006-2010 Sun Microsystems, Inc. + 2006-2017 The University of Houston + 2006-2009 Myricom, Inc. + 2007-2017 UT-Battelle, LLC. + 2007-2017 IBM Corporation + 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing Centre + 2005-2008 ZIH, TU Dresden, Federal Republic of Germany + 2007 Evergrid, Inc. + 2008 Chelsio, Inc. + 2008-2009 Institut National de Recherche en Informatique + 2007 Lawrence Livermore National Security, LLC. + 2007-2017 Mellanox Technologies + 2006-2010 QLogic Corporation + 2008-2017 Oak Ridge National Labs + 2006-2012 Oracle and/or its affiliates + 2009-2015 Bull SAS. + 2010 ARM ltd. + 2016 ARM, Inc. + 2010-2011 Alex Brick + 2012 The University of Wisconsin-La Crosse + 2013-2016 Intel, Inc. + 2011-2017 NVIDIA Corporation + 2016 Broadcom Limited + 2011-2017 Fujitsu Limited + 2014-2015 Hewlett-Packard Development Company, LP. + 2013-2017 Research Organization for Information Science (RIST) + 2017 Amazon.com, Inc. or its affiliates" +LICENSE="BSD (3-clause)" +REVISION="1" +SOURCE_URI="https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-$portVersion.tar.bz2" +CHECKSUM_SHA256="3f11b648dd18a8b878d057e9777f2c43bf78297751ad77ae2cef6db0fe80c77c" +PATCHES="openmpi-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +openmpiLibs=" + libmca_common_monitoring + libmca_common_ompio + libmca_common_sm + libmpi_mpifh + libmpi_usempi_ignore_tkr + libmpi_usempif08 + libmpi + libompitrace + libopen_pal + libopen_rte + " +libmca_common_monitoringVersion=50.0.0 +libmca_common_ompioVersion=41.9.0 +libmca_common_smVersion=40.10.0 +libmpi_mpifhVersion=40.10.1 +libmpi_usempi_ignore_tkrVersion=40.10.1 +libmpi_usempif08Version=40.10.1 +libmpiVersion=40.10.1 +libompitraceVersion=40.10.0 +libopen_palVersion=40.10.1 +libopen_rteVersion=40.10.1 +for i in $openmpiLibs; do + eval "${i}VersionCompat=\"\$${i}Version compat >= \${${i}Version%%.*}\"" +done + +GLOBAL_WRITABLE_FILES=" + settings/openmpi-default-hostfile keep-old + settings/openmpi-mca-params.conf keep-old + settings/openmpi-totalview.tcl keep-old + settings/pmix-mca-params.conf keep-old + " + +PROVIDES=" + openmpi$secondaryArchSuffix = $portVersion + cmd:aggregate_profile.pl = $portVersion + cmd:mpicc = $portVersion + cmd:mpic++ = $portVersion + cmd:mpicc = $portVersion + cmd:mpicxx = $portVersion + cmd:mpiexec = $portVersion + cmd:mpif77 = $portVersion + cmd:mpif90 = $portVersion + cmd:mpifort = $portVersion + cmd:mpirun = $portVersion + cmd:ompi_clean = $portVersion + cmd:ompi_dvm = $portVersion + cmd:ompi_ps = $portVersion + cmd:ompi_server = $portVersion + cmd:ompi_top = $portVersion + cmd:ompi_info = $portVersion + cmd:opal_wrapper = $portVersion + cmd:orte_clean = $portVersion + cmd:orte_dvm = $portVersion + cmd:orte_info = $portVersion + cmd:orte_ps = $portVersion + cmd:orte_server = $portVersion + cmd:orte_top = $portVersion + cmd:ortecc = $portVersion + cmd:orted = $portVersion + cmd:orterun = $portVersion + cmd:profile2mat.pl = $portVersion + cmd:prun = $portVersion + lib:libmca_common_monitoring$secondaryArchSuffix = $libmca_common_monitoringVersionCompat + lib:libmca_common_ompio$secondaryArchSuffix = $libmca_common_ompioVersionCompat + lib:libmca_common_sm$secondaryArchSuffix = $libmca_common_smVersionCompat + lib:libmpi$secondaryArchSuffix = $libmpiVersionCompat + lib:libmpi_mpifh$secondaryArchSuffix = $libmpi_mpifhVersionCompat + lib:libmpi_usempi_ignore_tkr$secondaryArchSuffix = $libmpi_usempi_ignore_tkrVersionCompat + lib:libmpi_usempif08$secondaryArchSuffix = $libmpi_usempif08VersionCompat + lib:libompitrace$secondaryArchSuffix = $libompitraceVersionCompat + lib:libopen_pal$secondaryArchSuffix = $libopen_palVersionCompat + lib:libopen_rte$secondaryArchSuffix = $libopen_rteVersionCompat + lib:ompi_monitoring_prof$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libevent_2.1$secondaryArchSuffix + lib:libevent_pthreads$secondaryArchSuffix + lib:libgfortran$secondaryArchSuffix + lib:libgomp$secondaryArchSuffix + lib:libhwloc$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + openmpi${secondaryArchSuffix}_devel = $portVersion + devel:libmca_common_monitoring$secondaryArchSuffix = $libmca_common_monitoringVersionCompat + devel:libmca_common_ompio$secondaryArchSuffix = $libmca_common_ompioVersionCompat + devel:libmca_common_sm$secondaryArchSuffix = $libmca_common_smVersionCompat + devel:libmpi$secondaryArchSuffix = $libmpiVersionCompat + devel:libmpi_mpifh$secondaryArchSuffix = $libmpi_mpifhVersionCompat + devel:libmpi_usempi_ignore_tkr$secondaryArchSuffix = $libmpi_usempi_ignore_tkrVersionCompat + devel:libmpi_usempif08$secondaryArchSuffix = $libmpi_usempif08VersionCompat + devel:libompitrace$secondaryArchSuffix = $libompitraceVersionCompat + devel:libopen_pal$secondaryArchSuffix = $libopen_palVersionCompat + devel:libopen_rte$secondaryArchSuffix = $libopen_rteVersionCompat + devel:ompi_monitoring_prof$secondaryArchSuffix + " +REQUIRES_devel=" + openmpi$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libevent_2.1$secondaryArchSuffix + devel:libevent_pthreads$secondaryArchSuffix + devel:libexecinfo$secondaryArchSuffix + devel:libhwloc$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:awk + cmd:flex + cmd:gfortran$secondaryArchSuffix + cmd:g++$secondaryArchSuffix +# cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:perl + cmd:pkg_config$secondaryArchSuffix + " + +defineDebugInfoPackage openmpi$secondaryArchSuffix \ + "$libDir"/libmca_common_monitoring.so.$libmca_common_monitoringVersion \ + "$libDir"/libmca_common_ompio.so.$libmca_common_ompioVersion \ + "$libDir"/libmca_common_sm.so.$libmca_common_smVersion \ + "$libDir"/libmpi.so.$libmpiVersion \ + "$libDir"/libmpi_mpifh.so.$libmpi_mpifhVersion \ + "$libDir"/libmpi_usempi_ignore_tkr.so.$libmpi_usempi_ignore_tkrVersion \ + "$libDir"/libmpi_usempif08.so.$libmpi_usempif08Version \ + "$libDir"/libompitrace.so.$libompitraceVersion \ + "$libDir"/libopen-pal.so.$libopen_palVersion \ + "$libDir"/libopen-rte.so.$libopen_rteVersion \ + "$libDir"/ompi_monitoring_prof.so + +BUILD() +{ + LDFLAGS="-lnetwork" runConfigure --omit-dirs "libExecDir" ./configure \ + --libexecdir="$libExecDir/openmpi" \ + --with-libevent \ + --with-hwloc=external \ + --with-zlib + + make $jobArgs +} + +INSTALL() +{ + make install $jobArgs + + rm $libDir/*.la + rm $libDir/pmix/*.la + rm $libDir/openmpi/*.la + + prepareInstalledDevelLibs \ + libmpi \ + libopen-pal \ + libopen-rte + + fixPkgconfig + + packageEntries devel \ + $developDir +} + +TEST() +{ + # Still broken + LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/ompi/.libs:$sourceDir/opal/.libs:$sourceDir/orte/.libs make check +} diff --git a/sys-cluster/openmpi/patches/openmpi-3.1.1.patchset b/sys-cluster/openmpi/patches/openmpi-3.1.1.patchset new file mode 100644 index 000000000..e189ea27c --- /dev/null +++ b/sys-cluster/openmpi/patches/openmpi-3.1.1.patchset @@ -0,0 +1,49 @@ +From de46e41334a6cbdb98db7caaa580439b5b16be2f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Mon, 6 Aug 2018 12:09:32 +0200 +Subject: Build fix + + +diff --git a/opal/util/stacktrace.c b/opal/util/stacktrace.c +index e9d8cdb..afb791e 100644 +--- a/opal/util/stacktrace.c ++++ b/opal/util/stacktrace.c +@@ -32,8 +32,12 @@ + #ifdef HAVE_SYS_STAT_H + #include + #endif +-#ifdef HAVE_SYS_FCNTL_H ++#ifdef HAVE_FCNTL_H + #include ++#else ++#ifdef HAVE_SYS_FCNTL_H ++#include ++#endif + #endif + + #include +-- +2.16.4 + + +From 2a7e669e6ef22af5a9cd3630831f320a750a1d87 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Mon, 6 Aug 2018 12:29:26 +0200 +Subject: Test fix + + +diff --git a/ompi/debuggers/dlopen_test.c b/ompi/debuggers/dlopen_test.c +index 266a1c2..978ca75 100644 +--- a/ompi/debuggers/dlopen_test.c ++++ b/ompi/debuggers/dlopen_test.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #include "opal/runtime/opal.h" + #include "opal/mca/dl/base/base.h" +-- +2.16.4 +