forked from rarias/bscpkgs
Update and fix Intel MPI, fixes #9
This commit is contained in:
parent
01295487d8
commit
23fa7d8654
@ -1,30 +1,39 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, rpmextract
|
, rpmextract
|
||||||
, libfabric
|
|
||||||
, gcc
|
, gcc
|
||||||
, zlib
|
, zlib
|
||||||
|
, ucx
|
||||||
|
, numactl
|
||||||
|
, rdma-core
|
||||||
|
, libpsm2
|
||||||
|
, patchelf
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
, enableDebug ? false
|
, enableDebug ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "intel-mpi-${version}";
|
name = "intel-mpi-${version}";
|
||||||
version = "2019.7.217";
|
version = "2019.8.254";
|
||||||
dir_nr = "16546";
|
dir_nr = "16814";
|
||||||
|
internal-ver = "2020.2.254";
|
||||||
|
|
||||||
lib_variant = (if enableDebug then "debug" else "release");
|
lib_variant = (if enableDebug then "debug" else "release");
|
||||||
|
|
||||||
src = builtins.fetchTarball {
|
src = builtins.fetchTarball {
|
||||||
url = "http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/${dir_nr}/l_mpi_${version}.tgz";
|
url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/${dir_nr}/l_mpi_${version}.tgz";
|
||||||
sha256 = "19l995aavbn5lkiz9sxl6iwmjsrvjgjp14nn0qi1hjqs705db5li";
|
sha256 = "1za4zyvxm5bfkrca843na6sxq2gq7qb87s0zysa7dnyqjwa11n45";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
rpmextract
|
rpmextract
|
||||||
libfabric
|
|
||||||
autoPatchelfHook
|
autoPatchelfHook
|
||||||
gcc.cc.lib
|
gcc.cc.lib
|
||||||
zlib
|
zlib
|
||||||
|
ucx
|
||||||
|
numactl
|
||||||
|
rdma-core
|
||||||
|
libpsm2
|
||||||
|
patchelf
|
||||||
];
|
];
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
@ -39,7 +48,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
pushd opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64/bin
|
pushd opt/intel/compilers_and_libraries_${internal-ver}/linux/mpi/intel64/bin
|
||||||
for i in mpi* ; do
|
for i in mpi* ; do
|
||||||
echo "Fixing paths in $i"
|
echo "Fixing paths in $i"
|
||||||
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
|
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
|
||||||
@ -50,7 +59,7 @@ stdenv.mkDerivation rec {
|
|||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
cd opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64
|
cd opt/intel/compilers_and_libraries_${internal-ver}/linux/mpi/intel64
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
mv etc $out
|
mv etc $out
|
||||||
mv bin $out
|
mv bin $out
|
||||||
@ -58,7 +67,25 @@ stdenv.mkDerivation rec {
|
|||||||
mkdir $out/lib
|
mkdir $out/lib
|
||||||
cp -a lib/lib* $out/lib
|
cp -a lib/lib* $out/lib
|
||||||
cp -a lib/${lib_variant}_mt/lib* $out/lib
|
cp -a lib/${lib_variant}_mt/lib* $out/lib
|
||||||
|
cp -a libfabric/lib/* $out/lib
|
||||||
|
cp -a libfabric/lib/prov/* $out/lib
|
||||||
|
cp -a libfabric/bin/* $out/bin
|
||||||
ln -s . $out/intel64
|
ln -s . $out/intel64
|
||||||
rm $out/lib/libmpi.dbg
|
rm $out/lib/libmpi.dbg
|
||||||
|
|
||||||
|
# Fixup Intel PSM2 library missing (now located at PSMX2)
|
||||||
|
ln -s $out/lib/libpsmx2-fi.so $out/lib/libpsm2-fi.so
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontAutoPatchelf = true;
|
||||||
|
|
||||||
|
# The rpath of libfabric.so bundled with Intel MPI is patched to include the
|
||||||
|
# rdma-core lib path, as is required for dlopen to find the rdma components.
|
||||||
|
# TODO: Try the upstream libfabric library with rdma support, so we can avoid
|
||||||
|
# this hack.
|
||||||
|
postFixup = ''
|
||||||
|
autoPatchelf -- $out
|
||||||
|
patchelf --set-rpath "$out/lib:${rdma-core}/lib:${libpsm2}/lib" $out/lib/libfabric.so
|
||||||
|
echo "Patched RPATH in libfabric.so to: $(patchelf --print-rpath $out/lib/libfabric.so)"
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
--- a/opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64/bin/mpicc 2020-06-30 14:22:04.510566478 +0200
|
--- a/opt/intel/compilers_and_libraries_2020.2.254/linux/mpi/intel64/bin/mpicc 2020-06-30 14:22:04.510566478 +0200
|
||||||
+++ b/opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64/bin/mpicc 2020-06-30 14:24:58.250998988 +0200
|
+++ b/opt/intel/compilers_and_libraries_2020.2.254/linux/mpi/intel64/bin/mpicc 2020-06-30 14:24:58.250998988 +0200
|
||||||
@@ -50,7 +50,7 @@
|
@@ -50,7 +50,7 @@
|
||||||
if [ x"$opt_args" == x"" ]; then
|
if [ x"$opt_args" == x"" ]; then
|
||||||
case "${compiler_short_name}" in
|
case "${compiler_short_name}" in
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
--- a/opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64/bin/mpicxx 2020-06-30 14:26:14.619723932 +0200
|
--- a/opt/intel/compilers_and_libraries_2020.2.254/linux/mpi/intel64/bin/mpicxx 2020-06-30 14:26:14.619723932 +0200
|
||||||
+++ b/opt/intel/compilers_and_libraries_2020.1.217/linux/mpi/intel64/bin/mpicxx 2020-06-30 14:27:56.644687134 +0200
|
+++ b/opt/intel/compilers_and_libraries_2020.2.254/linux/mpi/intel64/bin/mpicxx 2020-06-30 14:27:56.644687134 +0200
|
||||||
@@ -49,9 +49,9 @@
|
@@ -49,9 +49,9 @@
|
||||||
|
|
||||||
if [ x"$opt_args" == x"" ]; then
|
if [ x"$opt_args" == x"" ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user