Skip to content
Snippets Groups Projects
Commit f2997d2d authored by Damian Alvarez's avatar Damian Alvarez
Browse files

Add psmpi and dependencies

Various hook and gcc11ize changes
parent 01c7bf1b
No related branches found
No related tags found
No related merge requests found
Showing
with 730 additions and 1 deletion
...@@ -72,12 +72,13 @@ VETOED_INSTALLATIONS = { ...@@ -72,12 +72,13 @@ VETOED_INSTALLATIONS = {
TWEAKABLE_DEPENDENCIES = { TWEAKABLE_DEPENDENCIES = {
'UCX': 'default', 'UCX': 'default',
#'CUDA': '11.5', 'CUDA': '11.7',
'Mesa': ('OpenGL', '2022a'), 'Mesa': ('OpenGL', '2022a'),
'libglvnd': ('OpenGL', '2022a'), 'libglvnd': ('OpenGL', '2022a'),
#'libxc': '5.1.7', #'libxc': '5.1.7',
'glu': ('OpenGL', '2022a'), 'glu': ('OpenGL', '2022a'),
'glew': ('OpenGL', '2022a'), 'glew': ('OpenGL', '2022a'),
'pkg-config': ('pkgconf', '1.8.0'),
#'Boost': '1.78.0', #'Boost': '1.78.0',
#'Boost.Python': '1.78.0', #'Boost.Python': '1.78.0',
} }
...@@ -371,6 +372,7 @@ def inject_gpu_property(ec): ...@@ -371,6 +372,7 @@ def inject_gpu_property(ec):
if ( if (
"CUDA" in [dep[0] for dep in iter(ec_dict["dependencies"])] "CUDA" in [dep[0] for dep in iter(ec_dict["dependencies"])]
or ec_dict["toolchain"]["name"] in CUDA_ENABLED_TOOLCHAINS or ec_dict["toolchain"]["name"] in CUDA_ENABLED_TOOLCHAINS
or ec_dict["name"] == 'CUDA'
): ):
key = "modluafooter" key = "modluafooter"
value = 'add_property("arch","gpu")' value = 'add_property("arch","gpu")'
......
name = 'CMake'
version = '3.23.1'
homepage = 'https://www.cmake.org'
description = """
CMake, the cross-platform, open-source build system. CMake is a family of
tools designed to build, test and package software.
"""
toolchain = SYSTEM
source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['33fd10a8ec687a4d0d5b42473f10459bb92b3ae7def2b745dc10b192760869f3']
builddependencies = [
('binutils', '2.38'),
]
dependencies = [
('ncurses', '6.3'),
('zlib', '1.2.12'),
('OpenSSL', '1.1', '', True),
]
hidden = True
moduleclass = 'devel'
name = 'CUDA'
version = '11.7'
local_nv_version = '515.43.04'
homepage = 'https://developer.nvidia.com/cuda-toolkit'
description = """CUDA (formerly Compute Unified Device Architecture) is a parallel
computing platform and programming model created by NVIDIA and implemented by the
graphics processing units (GPUs) that they produce. CUDA gives developers access
to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs."""
toolchain = SYSTEM
source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s.0/local_installers/']
sources = ['cuda_%%(version)s.0_%s_linux%%(cudaarch)s.run' % local_nv_version]
checksums = [
{
'cuda_%%(version)s.0_%s_linux.run' % local_nv_version:
'087fdfcbba1f79543b1f78e43a8dfdac5f6db242d042dde820e16dc185892f26',
'cuda_%%(version)s.0_%s_linux_ppc64le.run' % local_nv_version:
'74a507ac54067c258e6b7c9063c98d411116ecc5c5397b1f6e6a999e86dff08a',
'cuda_%%(version)s.0_%s_linux_sbsa.run' % local_nv_version:
'e777839a618ca9a3d5ad42ded43a1b6392af2321a7327635a4afcc986876a21b',
}
]
dependencies = [('nvidia-driver', 'default', '', SYSTEM)]
moduleclass = 'system'
easyblock = 'ConfigureMake'
name = 'numactl'
version = '2.0.15'
homepage = 'https://github.com/numactl/numactl'
description = """
The numactl program allows you to run your application program on specific
cpu's and memory nodes. It does this by supplying a NUMA memory policy to
the operating system before running your program. The libnuma library provides
convenient ways for you to add NUMA memory policies into your own program.
"""
toolchain = SYSTEM
toolchainopts = {'pic': True}
source_urls = ['https://github.com/numactl/numactl/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['1508bb02f56f1b9376243980ba96291856ba083e7a3480fdcb0fbf11ff01d6fa']
builddependencies = [
('binutils', '2.38'),
('Autotools', '20220317', '', SYSTEM),
]
preconfigopts = './autogen.sh && '
sanity_check_paths = {
'files': ['bin/numactl', 'bin/numastat', 'lib/libnuma.%s' % SHLIB_EXT, 'lib/libnuma.a'],
'dirs': ['share/man', 'include']
}
moduleclass = 'tools'
name = 'nvidia-driver'
version = 'default'
realversion = '515.65.01'
homepage = 'https://developer.nvidia.com/cuda-toolkit'
description = """This is a set of libraries normally installed by the NVIDIA driver installer."""
site_contacts = 'sc@fz-juelich.de'
toolchain = SYSTEM
source_urls = ['http://us.download.nvidia.com/tesla/%s/' % realversion]
sources = ['NVIDIA-Linux-x86_64-%s.run' % realversion]
checksums = ['0492ddc5b5e65aa00cbc762e8d6680205c8d08e103b7131087a15126aee495e9']
# To avoid conflicts between NVML and the kernel driver
postinstallcmds = ['rm %(installdir)s/lib64/libnvidia-ml.so*']
modluafooter = '''
add_property("arch","gpu")
'''
moduleclass = 'system'
easyblock = 'ConfigureMake'
name = 'popt'
version = '1.18'
homepage = 'https://github.com/rpm-software-management/popt'
description = 'Popt is a C library for parsing command line parameters.'
toolchain = SYSTEM
sources = [SOURCE_TAR_GZ]
source_urls = ['http://ftp.rpm.org/popt/releases/popt-1.x']
checksums = ['5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1']
sanity_check_paths = {
'files': ['include/%(name)s.h', ('lib/libpopt.a', 'lib64/libpopt.a'), ('lib/libpopt.so', 'lib64/libpopt.so')],
'dirs': [],
}
moduleclass = 'tools'
easyblock = 'CMakeMake'
name = 'pscom'
# Create drop-in replacement version that ensures overriding behaviour
version = '5.6-default'
local_realversion = '5.6.0-1'
homepage = 'http://www.par-tec.com'
description = """ParaStation is a robust and efficient cluster middleware, consisting of a high-performance
communication layer (MPI) and a sophisticated management layer.
"""
toolchain = SYSTEM
source_urls = ['https://github.com/ParaStation/%(name)s/archive/']
sources = ['%s.tar.gz' % local_realversion]
checksums = ['b7c12b434c777e49c62ce0edbae830176f5627fe6f50170774669125d1940272']
builddependencies = [
('binutils', '2.38'),
('popt', '1.18'),
('CUDA', '11.7.0'),
('CMake', '3.23.1'),
]
dependencies = [
('UCX', '1.13.1'),
]
build_type = 'RelWithDebInfo'
preconfigopts = 'export UCP_LDFLAGS="-L$EBROOTUCX/lib" && '
preconfigopts += 'export CUDA_LDFLAGS="-L$EBROOTNVIDIA/lib64" &&'
configopts = '-DCUDA_ENABLED=ON'
sanity_check_paths = {
'files': [
'include/%(name)s.h',
('lib/libpscom.so', 'lib64/libpscom.so'),
('lib/libpscom4ucp.so', 'lib64/libpscom4ucp.so'),
],
'dirs': [],
}
modextravars = {
'PSCOMVERSION': '%s' % local_realversion,
}
moduleclass = 'tools'
easyblock = 'SystemBundle'
name = 'psmpi-settings'
version = '5.6'
versionsuffix = 'CUDA'
homepage = ''
description = '''
This module loads the ParaStationMPI configuration. It enables UCX as a communication library and CUDA-aware features.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'PSP_OPENIB': '0',
'PSP_UCP': '1',
'PSP_CUDA': '1',
'PSP_SHM': '0',
'PSP_HARD_ABORT': '1',
}
modluafooter = '''
if mode()=="load" then
if isloaded("UCX-settings/RC") then
try_load("UCX-settings/RC-CUDA")
elseif isloaded("UCX-settings/UD") then
try_load("UCX-settings/UD-CUDA")
elseif isloaded("UCX-settings/DC") then
try_load("UCX-settings/DC-CUDA")
elseif not isloaded("UCX-settings") then
try_load("UCX-settings/RC-CUDA")
end
end
'''
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'psmpi-settings'
version = '5.6'
versionsuffix = 'UCX'
homepage = ''
description = 'This module loads the ParaStationMPI configuration. It enables UCX as a communication library.'
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'PSP_OPENIB': '0',
'PSP_UCP': '1',
'PSP_HARD_ABORT': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'psmpi-settings'
version = '5.6'
versionsuffix = 'plain'
homepage = ''
description = 'This module loads the ParaStationMPI configuration. It relies on the defaults.'
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'PSP_HARD_ABORT': '1',
}
moduleclass = 'system'
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.c psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.c
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.c 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.c 2021-11-09 14:53:59.545886977 +0100
@@ -10,8 +10,8 @@
struct ADIOI_Fns_struct ADIO_IME_operations = {
ADIOI_IME_Open, /* Open */
- ADIOI_SCALEABLE_OpenColl, /* OpenColl */ /*XXX*/
- ADIOI_IME_ReadContig, /* ReadContig */
+ ADIOI_GEN_OpenColl, /* OpenColl */
+ ADIOI_IME_ReadContig, /* ReadContig */
ADIOI_IME_WriteContig, /* WriteContig */
ADIOI_GEN_ReadStridedColl, /* ReadStridedColl */
ADIOI_GEN_WriteStridedColl, /* WriteStridedColl */
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.c psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.c
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.c 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.c 2021-11-09 14:53:59.545886977 +0100
@@ -58,24 +58,38 @@
MPI_Attr_put(MPI_COMM_SELF, ADIOI_IME_Initialized, (void *) 0);
}
-/* Return an IME-compatible filename (add 'ime:' prefix).
- * New filename must be free'd by the user */
-char *ADIOI_IME_Add_prefix(const char *filename)
+/**
+ * Return an IME-compatible filename
+ * An absolute BFS path will get added the 'ime:' prefix.
+ * A path on ime-fuse will be converted to a relative ime path,
+ * with the ime:/ prefix
+ * The returned filename must be free'd by the user
+ */
+char *ADIOI_IME_Convert_filename(const char *filename)
{
- static char myname[] = "ADIOI_IME_ADD_PREFIX";
- size_t f_len = strlen(filename) + 1;
- char *ime_filename = ADIOI_Malloc(f_len + ADIOI_IME_PREFIX_LEN);
+ static char myname[] = "ADIOI_IME_CONVERT_FILENAME";
- if (!ime_filename) {
+#if (IME_NATIVE_API_VERSION >= 131)
+ bool is_fuse = ime_native_is_fuse_path_and_convert(filename, NULL);
+ if (is_fuse) {
+ return ADIOI_Strdup(filename);
+ }
+#endif
+ size_t f_len = strlen(filename) + 1;
+ char *ime_filename = ADIOI_Malloc(f_len + IME_FILE_PREFIX_LEN_NO_FWD_SLASH);
+ if (!ime_filename) {
MPIO_Err_create_code(MPI_SUCCESS,
MPIR_ERR_FATAL,
- myname, __LINE__, MPI_ERR_UNKNOWN, "Error allocating memory", 0);
+ myname, __LINE__, MPI_ERR_UNKNOWN,
+ "Error allocating memory", 0);
return NULL;
}
- ADIOI_Strncpy(ime_filename, ADIOI_IME_PREFIX, ADIOI_IME_PREFIX_LEN);
- ADIOI_Strncpy((ime_filename + ADIOI_IME_PREFIX_LEN), filename, f_len);
+ ADIOI_Strncpy(ime_filename, DEFAULT_IME_PREFIX_NO_FWD_SLASH,
+ IME_FILE_PREFIX_LEN_NO_FWD_SLASH);
+ ADIOI_Strncpy((ime_filename + IME_FILE_PREFIX_LEN_NO_FWD_SLASH),
+ filename, f_len);
return ime_filename;
}
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.h psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.h
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.h 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_common.h 2021-11-09 14:53:59.545886977 +0100
@@ -17,5 +17,5 @@
void ADIOI_IME_End(int *error_code);
int ADIOI_IME_End_call(MPI_Comm comm, int keyval, void *attribute_val, void *extra_state);
-char *ADIOI_IME_Add_prefix(const char *filename);
+char *ADIOI_IME_Convert_filename(const char *filename);
#endif /* AD_IME_COMMON_H_INCLUDED */
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_delete.c psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_delete.c
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_delete.c 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_delete.c 2021-11-09 14:53:59.545886977 +0100
@@ -13,7 +13,7 @@
int ret;
static char myname[] = "ADIOI_IME_DELETE";
- char *ime_filename = ADIOI_IME_Add_prefix(filename);
+ char *ime_filename = ADIOI_IME_Convert_filename(filename);
ret = ime_native_unlink(ime_filename);
ADIOI_Free(ime_filename);
if (ret)
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.h psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.h
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.h 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime.h 2021-11-09 14:53:59.545886977 +0100
@@ -7,9 +7,7 @@
#define AD_IME_H_INCLUDED
#include "adio.h"
-#ifdef HAVE_IME_NATIVE_H
#include "ime_native.h"
-#endif
#define ADIOI_IME_PREFIX "ime:"
#define ADIOI_IME_PREFIX_LEN (sizeof(ADIOI_IME_PREFIX) - 1)
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_open.c psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_open.c
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_open.c 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/ad_ime/ad_ime_open.c 2021-11-09 14:53:59.545886977 +0100
@@ -68,7 +68,7 @@
return;
}
- ime_fs->ime_filename = ADIOI_IME_Add_prefix(fd->filename);
+ ime_fs->ime_filename = ADIOI_IME_Convert_filename(fd->filename);
/* all processes open the file */
ret = ime_native_open(ime_fs->ime_filename, amode, perm);
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/common/ad_fstype.c psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/common/ad_fstype.c
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/adio/common/ad_fstype.c 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/adio/common/ad_fstype.c 2021-11-09 14:53:59.545886977 +0100
@@ -97,6 +97,20 @@
#define DAOS_SUPER_MAGIC (0xDA05AD10)
#endif
+# if defined(ROMIO_IME)
+/* fuse super magic is somehow missing in system includes */
+# if !defined(FUSE_SUPER_MAGIC)
+# define FUSE_SUPER_MAGIC 0x65735546
+# endif
+# include "ime_native.h"
+# if (IME_NATIVE_API_VERSION) >= 131
+# include "ime_ioctl.h"
+
+/* Disable auto-switching from posix to IME */
+#define IME_NO_AUTO_NATIVE "IME_NO_AUTO_NATIVE"
+# endif
+# endif /* ROMIO_IME */
+
#ifdef ROMIO_HAVE_STRUCT_STATVFS_WITH_F_BASETYPE
#ifdef HAVE_SYS_STATVFS_H
#include <sys/statvfs.h>
@@ -486,6 +500,39 @@
}
#endif
+#ifdef FUSE_SUPER_MAGIC
+ if (fsbuf.f_type == FUSE_SUPER_MAGIC) {
+ /* fuse does not allow to override FUSE_SUPER_MAGIC
+ * Any file system that is fused based needs to hook in
+ * here and use its own ioctl.
+ */
+ #if defined ROMIO_IME && defined IM_FIOC_GET_F_TYPE
+ char *dir;
+ ADIO_FileSysType_parentdir(filename, &dir);
+ int fd = open(dir, O_RDONLY);
+ if (fd == -1)
+ {
+ /* dir should typically work, but try to fail back to
+ * filename if it somehow failed
+ */
+ fd = open(filename, O_RDONLY);
+ }
+
+ if (fd >= 0) {
+ uint32_t f_type;
+ int rc = ioctl(fd, IM_FIOC_GET_F_TYPE, &f_type);
+ close(fd);
+ if (rc == 0 && f_type == IME_SUPER_MAGIC &&
+ getenv(IME_NO_AUTO_NATIVE) == NULL) {
+ *fstype = ADIO_IME;
+ return;
+ }
+ }
+ #endif /* ROMIO_IME */
+ }
+#endif /* FUSE_SUPER_MAGIC */
+
+
#endif /*ROMIO_HAVE_STRUCT_STATFS_WITH_F_TYPE */
#ifdef ROMIO_UFS
diff -ruN psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/configure.ac psmpi-5.5.0-1/mpich2/src/mpi/romio/configure.ac
--- psmpi-5.5.0-1.orig/mpich2/src/mpi/romio/configure.ac 2021-10-21 20:06:57.000000000 +0200
+++ psmpi-5.5.0-1/mpich2/src/mpi/romio/configure.ac 2021-11-09 14:54:27.824926093 +0100
@@ -231,6 +231,8 @@
--with-pvfs2=path - Path to installation of PVFS (version 2)],,)
AC_ARG_WITH(mpi-impl,[
--with-mpi-impl=name - Specify MPI implementation to build ROMIO for],,)
+AC_ARG_WITH(ime,[
+--with-ime=PATH - Path to installation of IME],,)
dnl
AC_ARG_WITH(mpi, [
--with-mpi=path - Path to instalation of MPI (headers, libs, etc)],,)
@@ -806,6 +808,30 @@
fi
fi
+#
+# IME specific build path.
+# Automatically adds IME to the file systems if not present
+#
+if test -n "${with_ime}" ; then
+ AC_SUBST(IME_INSTALL_PATH, ["${with_ime}"])
+fi
+
+ime_default_path="/opt/ddn/ime"
+if test -n "${with_ime}" -o -e "${ime_default_path}/include/ime_native.h"; then
+ # Use IME and the default path, if not specified or overriden
+ with_ime="${ime_default_path}"
+ file_system_ime=1
+fi
+
+if test -n "${file_system_ime}" ; then
+ CFLAGS="$CFLAGS -I${with_ime}/include"
+ CPPFLAGS="$CPPFLAGS -I${with_ime}/include"
+ LDFLAGS="$LDFLAGS -L${with_ime}/lib"
+ LIBS="-lim_client -lim_common"
+ export LD_LIBRARY_PATH="${with_ime}/lib:$LD_LIBRARY_PATH"
+fi
+
+
#############################################
# This PVFS2 logic is special because it's hard to get it right if it comes
# before the known_filesystems check loop above. So we handle it down here,
name = 'psmpi'
version = '5.6.0-1'
homepage = 'https://github.com/ParaStation/psmpi2'
description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation,
based on MPICH v3. It provides extra low level communication libraries and integration with
various batch systems for tighter process control.
"""
toolchain = {'name': 'GCC', 'version': '11.3.0'}
sources = [SOURCE_TAR_GZ]
source_urls = ['https://github.com/ParaStation/psmpi/archive/']
checksums = [
# psmpi-5.6.0-1.tar.gz
'bb532c9cc49da31384bb7d73faccf0be224317bc5b055723095c3965f7ad6209',
'978eb3223c978477c40987f745c07fda26ccbad2f468616faf92f0d71b81a156', # psmpi_shebang.patch
# psmpi-5.5.0-1_ime.patch
'c2418b9511560dca197242508de9c7b6b117122912b6d3a4aa18398834f465ff',
]
dependencies = [
('pscom', '5.6-default', '', SYSTEM),
# needed due to the inclusion of hwloc
('libxml2', '2.9.13'),
# Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed
('CUDA', '11.7.0', '', SYSTEM)
]
patches = [
'psmpi_shebang.patch',
'psmpi-5.5.0-1_ime.patch'
]
mpich_opts = '--enable-static --with-file-system=ime+ufs+gpfs --enable-romio'
preconfigopts = 'export CFLAGS="-I/opt/ddn/ime/include $CFLAGS" && '
preconfigopts += 'export LDFLAGS="$LDFLAGS -L/opt/ddn/ime/lib -lim_client" && '
threaded = False
cuda = True
moduleclass = 'mpi'
diff -ruN psmpi-5.2.0-1.old/mpich2/src/env/mpicc.bash.in psmpi-5.2.0-1/mpich2/src/env/mpicc.bash.in
--- psmpi-5.2.0-1.old/mpich2/src/env/mpicc.bash.in 2017-03-08 20:47:13.159276458 +0100
+++ psmpi-5.2.0-1/mpich2/src/env/mpicc.bash.in 2017-03-08 20:47:48.430966270 +0100
@@ -1,4 +1,4 @@
-#! @BASH_SHELL@
+#!/usr/bin/env bash
##
## (C) 2006 by Argonne National Laboratory.
## See COPYRIGHT in top-level directory.
diff -ruN psmpi-5.2.0-1.old/mpich2/src/env/mpicxx.bash.in psmpi-5.2.0-1/mpich2/src/env/mpicxx.bash.in
--- psmpi-5.2.0-1.old/mpich2/src/env/mpicxx.bash.in 2017-03-08 20:47:13.160276506 +0100
+++ psmpi-5.2.0-1/mpich2/src/env/mpicxx.bash.in 2017-03-08 20:47:51.549115658 +0100
@@ -1,4 +1,4 @@
-#! @BASH_SHELL@
+#!/usr/bin/env bash
##
## (C) 2006 by Argonne National Laboratory.
## See COPYRIGHT in top-level directory.
diff -ruN psmpi-5.2.0-1.old/mpich2/src/env/mpif77.bash.in psmpi-5.2.0-1/mpich2/src/env/mpif77.bash.in
--- psmpi-5.2.0-1.old/mpich2/src/env/mpif77.bash.in 2017-03-08 20:47:13.160276506 +0100
+++ psmpi-5.2.0-1/mpich2/src/env/mpif77.bash.in 2017-03-08 20:47:55.148288103 +0100
@@ -1,4 +1,4 @@
-#! @BASH_SHELL@
+#!/usr/bin/env bash
##
## (C) 2006 by Argonne National Laboratory.
## See COPYRIGHT in top-level directory.
diff -ruN psmpi-5.2.0-1.old/mpich2/src/env/mpifort.bash.in psmpi-5.2.0-1/mpich2/src/env/mpifort.bash.in
--- psmpi-5.2.0-1.old/mpich2/src/env/mpifort.bash.in 2017-03-08 20:47:13.160276506 +0100
+++ psmpi-5.2.0-1/mpich2/src/env/mpifort.bash.in 2017-03-08 20:48:08.913947609 +0100
@@ -1,4 +1,4 @@
-#! @BASH_SHELL@
+#!/usr/bin/env bash
##
## (C) 2006 by Argonne National Laboratory.
## See COPYRIGHT in top-level directory.
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'DC-CUDA'
homepage = ''
description = '''
This module sets UCX to use DC as the transport layer, together with the CUWA-aware transports.
The maximum number of rails is limited to 1 to avoid pitfalls of blindly using multiple rails.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'UCX_TLS': 'dc_x,self,sm,cuda_ipc,gdr_copy,cuda_copy',
# Since most users do not share HCAs for a single process, it does not make sense to enable this in most cases.
# It actually has the side effect of using Ethernet and IB ports on JUSUF, which end up saturating the ethernet
# fabric and result in a slow down
'UCX_MAX_RNDV_RAILS': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'DC'
homepage = ''
description = '''
This module sets UCX to use DC as the transport layer.
The maximum number of rails is limited to 1 to avoid pitfalls of blindly using multiple rails.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'UCX_TLS': 'dc_x,self,sm',
# Since most users do not share HCAs for a single process, it does not make sense to enable this in most cases.
# It actually has the side effect of using Ethernet and IB ports on JUSUF, which end up saturating the ethernet
# fabric and result in a slow down
'UCX_MAX_RNDV_RAILS': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'RC-CUDA'
homepage = ''
description = '''
This module sets UCX to use RC as the transport layer, together with the CUWA-aware transports.
The maximum number of rails is limited to 1 to avoid pitfalls of blindly using multiple rails.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'UCX_TLS': 'rc_x,self,sm,cuda_ipc,gdr_copy,cuda_copy',
# Since most users do not share HCAs for a single process, it does not make sense to enable this in most cases.
# It actually has the side effect of using Ethernet and IB ports on JUSUF, which end up saturating the ethernet
# fabric and result in a slow down
'UCX_MAX_RNDV_RAILS': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'RC'
homepage = ''
description = '''
This module sets UCX to use RC as the transport layer.
The maximum number of rails is limited to 1 to avoid pitfalls of blindly using multiple rails.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'UCX_TLS': 'rc_x,self,sm',
# Since most users do not share HCAs for a single process, it does not make sense to enable this in most cases.
# It actually has the side effect of using Ethernet and IB ports on JUSUF, which end up saturating the ethernet
# fabric and result in a slow down
'UCX_MAX_RNDV_RAILS': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'UD-CUDA'
homepage = ''
description = '''
This module sets UCX to use UD as the transport layer, together with the CUWA-aware transports.
The maximum number of rails is limited to 1 to avoid pitfalls of blindly using multiple rails.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'UCX_TLS': 'ud_x,self,sm,cuda_ipc,gdr_copy,cuda_copy',
# Since most users do not share HCAs for a single process, it does not make sense to enable this in most cases.
# It actually has the side effect of using Ethernet and IB ports on JUSUF, which end up saturating the ethernet
# fabric and result in a slow down
'UCX_MAX_RNDV_RAILS': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'UD'
homepage = ''
description = '''
This module sets UCX to use UD as the transport layer.
The maximum number of rails is limited to 1 to avoid pitfalls of blindly using multiple rails.
'''
toolchain = SYSTEM
source_urls = []
sources = []
modextravars = {
'UCX_TLS': 'ud_x,self,sm',
# Since most users do not share HCAs for a single process, it does not make sense to enable this in most cases.
# It actually has the side effect of using Ethernet and IB ports on JUSUF, which end up saturating the ethernet
# fabric and result in a slow down
'UCX_MAX_RNDV_RAILS': '1',
}
moduleclass = 'system'
easyblock = 'SystemBundle'
name = 'UCX-settings'
version = 'plain'
homepage = ''
description = 'This module sets UCX to rely on its internal heuristics for transport selection.'
toolchain = SYSTEM
source_urls = []
sources = []
moduleclass = 'system'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment