diff --git a/package/openmpi/4.0.1/install.sh b/package/openmpi/4.0.1/install.sh index b6ff791c549cfb076a4820c521bf047203e33d02..c8857466fa6006c0df01d2be8890451e5510b3cd 100755 --- a/package/openmpi/4.0.1/install.sh +++ b/package/openmpi/4.0.1/install.sh @@ -1,10 +1,21 @@ #!/bin/bash set -x set -e +ucx_version='1.12.1' openmpi_ver='4.0.1' +. ${DOWNLOAD_TOOL} -u https://github.com/openucx/ucx/releases/download/v${ucx_version}/ucx-${ucx_version}.tar.gz . ${DOWNLOAD_TOOL} -u https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-${openmpi_ver}.tar.gz +#install ucx +cd ${JARVIS_TMP} +tar -xvf ${JARVIS_DOWNLOAD}/ucx-${ucx_version}.tar.gz +cd ucx-${ucx_version} +./contrib/configure-release --prefix=$1/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --with-verbs +make -j 32 +make install + +#install openmpi cd ${JARVIS_TMP} tar -xvf ${JARVIS_DOWNLOAD}/openmpi-${openmpi_ver}.tar.gz cd openmpi-${openmpi_ver} -./configure CC=gcc CXX=g++ FC=gfortran --prefix=$1 --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --enable-mpi1-compatibility +./configure --prefix=$1 --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --with-cma --with-ucx=$1/ucx --enable-mpi1-compatibility make -j install diff --git a/package/openmpi/4.1.2/IB/install.sh b/package/openmpi/4.1.2/IB/install.sh deleted file mode 100755 index d4868c9678ea080ccae65fd4e8eb1fe346488543..0000000000000000000000000000000000000000 --- a/package/openmpi/4.1.2/IB/install.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -x -set -e -. ${DOWNLOAD_TOOL} -u https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz -cd ${JARVIS_TMP} -tar -xvf ${JARVIS_DOWNLOAD}/openmpi-4.1.2.tar.gz -cd openmpi-4.1.2 -./configure CC=gcc CXX=g++ FC=gfortran --prefix=$1 --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --with-cma --with-ucx --enable-mpi1-compatibility -make -j install diff --git a/package/openmpi/4.1.2/gpu/install.sh b/package/openmpi/4.1.2/gpu/install.sh index 110b451079d13bec597f61da56a26c960051c6eb..f9a02beb31593244ce6b5a97606073ff5900dc21 100755 --- a/package/openmpi/4.1.2/gpu/install.sh +++ b/package/openmpi/4.1.2/gpu/install.sh @@ -20,7 +20,6 @@ make PREFIX=$1/gdrcopy lib lib_install cd ${JARVIS_TMP} tar -xvf ${JARVIS_DOWNLOAD}/ucx-${ucx_version}.tar.gz cd ucx-${ucx_version} -./autogen.sh ./contrib/configure-release --prefix=$1/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --with-cuda=/usr/local/cuda --with-gdrcopy=$1/gdrcopy/ --with-verbs --with-rdmacm make -j 32 make install diff --git a/package/openmpi/4.1.2/install.sh b/package/openmpi/4.1.2/install.sh index edd9624e471e08e759d9354e430a11d2542155f5..fd51397099d49158815d967e89d83a1abefc180d 100755 --- a/package/openmpi/4.1.2/install.sh +++ b/package/openmpi/4.1.2/install.sh @@ -1,9 +1,21 @@ #!/bin/bash set -x set -e -. ${DOWNLOAD_TOOL} -u https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz +ucx_version='1.12.1' +openmpi_ver='4.1.2' +. ${DOWNLOAD_TOOL} -u https://github.com/openucx/ucx/releases/download/v${ucx_version}/ucx-${ucx_version}.tar.gz +. ${DOWNLOAD_TOOL} -u https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-${openmpi_ver}.tar.gz +#install ucx cd ${JARVIS_TMP} -tar -xvf ${JARVIS_DOWNLOAD}/openmpi-4.1.2.tar.gz -cd openmpi-4.1.2 -./configure CC=gcc CXX=g++ FC=gfortran --prefix=$1 --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --enable-mpi1-compatibility -make -j install +tar -xvf ${JARVIS_DOWNLOAD}/ucx-${ucx_version}.tar.gz +cd ucx-${ucx_version} +./contrib/configure-release --prefix=$1/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --with-verbs +make -j 32 +make install + +#install openmpi +cd ${JARVIS_TMP} +tar -xvf ${JARVIS_DOWNLOAD}/openmpi-${openmpi_ver}.tar.gz +cd openmpi-${openmpi_ver} +./configure --prefix=$1 --enable-pretty-print-stacktrace --enable-orterun-prefix-by-default --with-cma --with-ucx=$1/ucx --enable-mpi1-compatibility +make -j install \ No newline at end of file diff --git a/src/installService.py b/src/installService.py index 609e9e09746a0121de7b983f5850eb43341dfb21..eb647f168ee6711c6f2d542630882d98420076d3 100644 --- a/src/installService.py +++ b/src/installService.py @@ -92,14 +92,12 @@ class InstallService: def get_icc_info(self): return self.gen_compiler_dict("icc", ('2018', "2018.4")) - def get_hmpi_version(self): - ucg_path = self.get_cmd_output('whereis ucg_info')[0] - if ucg_path == "ucg_info:": + def get_hmpi_version(self, hmpi_v3_info): + if hmpi_v3_info != "": + ucg_path = self.get_cmd_output('which ucg_info')[0] + else: ucg_path = self.get_cmd_output('which ucx_info')[0] - else: - ucg_path = self.get_cmd_output('which ucg_info')[0] - ver_0 = ('1','1.3.0') - ver_dict = {('2','2.0.0'): 'ver_0'} + ver_dict = {('2','2.0.0'): ('1','1.3.0')} ucg_path = os.path.dirname(ucg_path) ucg_path = os.path.dirname(ucg_path) libucg_path = os.path.join(ucg_path, "lib") @@ -109,17 +107,18 @@ class InstallService: if libucg_so_flag in file_name: version = self.get_version_info(file_name) if version in ver_dict: - return ver_0 + return ver_dict[version] elif version: break return version def get_hmpi_info(self): - hmpi_info = self.get_cmd_output('which ucx_info')[0] - if hmpi_info == "": + hmpi_v2_info = self.get_cmd_output('ucx_info -c | grep -i BUILT')[0] + hmpi_v3_info = self.get_cmd_output('ucg_info -c | grep -i PLANC')[0] + if "BUILT" not in hmpi_v2_info and "PLANC" not in hmpi_v3_info: return None name = 'hmpi' - version = self.get_hmpi_version() + version = self.get_hmpi_version(hmpi_v3_info) return self.gen_mpi_dict(name, version) def get_openmpi_info(self): diff --git a/templates/OSU/5.3/osu.arm.config b/templates/OSU/5.3/osu.arm.config index 68e4561eac5f7b38999698aba0c2e77215fc2a03..1157fac46f3752bcc303207c5c837ee8d3b4ba9a 100644 --- a/templates/OSU/5.3/osu.arm.config +++ b/templates/OSU/5.3/osu.arm.config @@ -35,6 +35,7 @@ case_dir = ./osu [BUILD] + [CLEAN] make clean diff --git a/templates/OSU/7.2/osu.openmpi.config b/templates/OSU/7.2/osu.openmpi.config new file mode 100644 index 0000000000000000000000000000000000000000..7937da11665ff0ff529a52ed4801d2a47fdd553b --- /dev/null +++ b/templates/OSU/7.2/osu.openmpi.config @@ -0,0 +1,38 @@ +[SERVER] +11.11.11.11 + +[DEPENDENCY] +set -e +set -x +module purge +gcc_version=$(gcc --version | awk 'NR==1{print $NF}') +./jarvis -install openmpi/4.1.2 gcc +module use ./software/moduledeps/gcc${gcc_version} +module load openmpi/4.1.2 +./jarvis -install osu/7.2.0 gcc+mpi +#test if mpi is normal +./jarvis -bench mpi +mkdir -p osu + +[ENV] +module purge +gcc_version=$(gcc --version | awk 'NR==1{print $NF}') +module use ./software/moduledeps/gcc${gcc_version} +module load openmpi/4.1.2 +module load osu/7.2.0 + +[APP] +app_name = OSU +build_dir = ${OSU_PATH}/ +binary_dir = ${OSU_PATH}/libexec/osu-micro-benchmarks/mpi/collective +case_dir = ./osu + +[BUILD] + +[CLEAN] +./jarvis -remove osu + +[RUN] +run = mpirun --allow-run-as-root -np 16 --bind-to core -mca pml ucx -mca osc ^ucx -mca btl ^vader,tcp,openib -x UCX_TLS=self,rc_x +binary = osu_allgather -m 32:4096 --validation --type mpi_int +nodes = 1 \ No newline at end of file diff --git a/templates/OSU/5.3/osu.opensource.config b/templates/OSU/7.2/osu.opensource.config similarity index 84% rename from templates/OSU/5.3/osu.opensource.config rename to templates/OSU/7.2/osu.opensource.config index 5f8d3080624aa26a08ebe6e71018359511f71a82..a3feff2f93622ce5c2e6374c391b148b607966c5 100644 --- a/templates/OSU/5.3/osu.opensource.config +++ b/templates/OSU/7.2/osu.opensource.config @@ -6,8 +6,8 @@ set -e set -x module purge gcc_version=$(gcc --version | awk 'NR==1{print $NF}') -module use ./software/moduledeps/gcc${gcc_version} ./jarvis -install hmpi/1.2.0 gcc +module use ./software/moduledeps/gcc${gcc_version} module load hmpi/1.2.0 ./jarvis -install osu/7.2.0 gcc+mpi #test if mpi is normal @@ -33,6 +33,6 @@ case_dir = ./osu ./jarvis -remove osu [RUN] -run = mpirun -np 16 --bind-to core -mca pml ucx -mca osc ^ucx -mca btl ^vader,tcp,openib -x UCX_TLS=rc_x +run = mpirun --allow-run-as-root -np 16 --bind-to core -mca pml ucx -mca osc ^ucx -mca btl ^vader,tcp,openib -x UCX_TLS=self,rc_x binary = osu_allgather -m 32:4096 --validation --type mpi_int nodes = 1 \ No newline at end of file diff --git a/templates/wannier90/3.1.0/data.wannier90.amd.cpu.config b/templates/wannier90/3.1.0/data.wannier90.amd.cpu.config index b177ba8541f6af3ee0713cd314066d6f1d92a64c..d402b2885ca2740da2fbfd01f5c78b0b98516e07 100644 --- a/templates/wannier90/3.1.0/data.wannier90.amd.cpu.config +++ b/templates/wannier90/3.1.0/data.wannier90.amd.cpu.config @@ -10,7 +10,7 @@ module purge git clone https://github.com/wannier-developers/wannier90.git tmp/wannier90 ./jarvis -install gcc/10.3.0 com module use ./software/modulefiles -module load gcc10/10.3.0 +module load gcc/10.3.0 ./jarvis -install blas/3.10.0 gcc sed -i '10,12d ' package/lapack/3.8.0/install.sh sed -i '$a mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SHARED_LIBS=ON && make && make install && export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64 ' package/lapack/3.8.0/install.sh @@ -18,13 +18,11 @@ sed -i '$a mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DBUIL ./jarvis -install openmpi/4.1.2 gcc module load openmpi/4.1.2 - [ENV] module purge module use ./software/modulefiles -module load gcc10/10.3.0 -module load openmpi4 - +module load gcc/10.3.0 +module load openmpi/4.1.2 [APP] app_name = wannier90 @@ -33,7 +31,6 @@ binary_dir = ${JARVIS_LIBS}/gcc10/wannier90 case_dir = ${JARVIS_LIBS}/gcc10/wannier90 [BUILD] - cp config/make.inc.gfort make.inc sed -i '8c MPIF90 = mpif90' make.inc sed -i '7c COMMS= mpi' make.inc @@ -43,6 +40,7 @@ sed -i '16c FCOPTS += -fallow-argument-mismatch' make.inc make make install cp -r ${JARVIS_TMP}/wannier90 ${JARVIS_LIBS}/gcc10/ + [RUN] run = export OMPI_ALLOW_RUN_AS_ROOT=1 && export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 && make tests binary =