diff --git a/images/wechat-group-qr.png b/images/wechat-group-qr.png index 5a4fc668ab90caf1785de301a8e398e21b4aa3ce..30e5c98ce7a92ffe6ff0a8ed81c9e28ec6f9e34e 100644 Binary files a/images/wechat-group-qr.png and b/images/wechat-group-qr.png differ diff --git a/package/openmpi/4.0.1/gpu/install.sh b/package/openmpi/4.0.1/gpu/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..f70e346d0112ac3d146c97027927e4b5de8370cd --- /dev/null +++ b/package/openmpi/4.0.1/gpu/install.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -x +set -e +sudo yum groupinstall 'Development Tools' +sudo yum install dkms rpm-build make check check-devel subunit subunit-devel +cd ${JARVIS_TMP} +ucx_version='1.12.1' +gdr_ver='2.3' +openmpi_ver='4.0.1' +#install GDRCOPY +. ${DOWNLOAD_TOOL} -u https://github.com/NVIDIA/gdrcopy/archive/v${gdr_ver}.tar.gz +. ${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 +tar -x -f ${JARVIS_DOWNLOAD}/v${gdr_ver}.tar.gz +mkdir -p $1/gdrcopy/include $1/gdrcopy/lib64 +cd gdrcopy-${gdr_ver} +make PREFIX=$1/gdrcopy lib lib_install + +#install ucx +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 + +#install openmpi +cd ${JARVIS_TMP} +tar -xvf ${JARVIS_DOWNLOAD}/openmpi-${openmpi_ver}.tar.gz +cd openmpi-${openmpi_ver} +./configure --prefix=$1 CPP=cpp CC=nvc CXX=nvc++ F77=nvfortran F90=nvfortran FC=nvfortran LDFLAGS=-Wl,--as-needed --disable-debug --disable-getpwuid --disable-mem-debug --disable-mem-profile --disable-memchecker --disable-static --enable-mca-no-build=btl-uct --enable-mpi1-compatibility --enable-oshmem --enable-mpirun-prefix-by-default --enable-cuda --enable-dlopen --enable-weak-symbols --enable-heterogeneous --enable-binaries --enable-script-wrapper-compilers --enable-orterun-prefix-by-default --enable-mca-no-build=btl-uct --with-cuda --with-ucx=$1/ucx +make -j +make install \ No newline at end of file diff --git a/package/openmpi/4.0.1/install.sh b/package/openmpi/4.0.1/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..b6ff791c549cfb076a4820c521bf047203e33d02 --- /dev/null +++ b/package/openmpi/4.0.1/install.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -x +set -e +openmpi_ver='4.0.1' +. ${DOWNLOAD_TOOL} -u https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-${openmpi_ver}.tar.gz +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 +make -j install diff --git a/package/openmpi/4.1.2/gpu/install.sh b/package/openmpi/4.1.2/gpu/install.sh index 06ff675a366cc66c07b8b6bb3dc13521965d4161..38d2f4cbbb4f3b49322d323c79d14ea30edefd16 100644 --- a/package/openmpi/4.1.2/gpu/install.sh +++ b/package/openmpi/4.1.2/gpu/install.sh @@ -1,25 +1,34 @@ #!/bin/bash set -x set -e +sudo yum groupinstall 'Development Tools' +sudo yum install dkms rpm-build make check check-devel subunit subunit-devel cd ${JARVIS_TMP} +ucx_version='1.12.1' +gdr_ver='2.3' +openmpi_ver='4.1.2' +#install GDRCOPY +. ${DOWNLOAD_TOOL} -u https://github.com/NVIDIA/gdrcopy/archive/v${gdr_ver}.tar.gz +. ${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 +tar -x -f ${JARVIS_DOWNLOAD}/v${gdr_ver}.tar.gz +mkdir -p $1/gdrcopy/include $1/gdrcopy/lib64 +cd gdrcopy-${gdr_ver} +make PREFIX=$1/gdrcopy lib lib_install + #install ucx -tar -xvf ${JARVIS_DOWNLOAD}/ucx-1.12.0.tar.gz -cd ucx +cd ${JARVIS_TMP} +tar -xvf ${JARVIS_DOWNLOAD}/ucx-${ucx_version}.tar.gz +cd ucx-${ucx_version} ./autogen.sh -./contrib/configure-release --prefix=$1/ucx -make -j8 -make install -#install openmpi -tar -xvf ${JARVIS_DOWNLOAD}/openmpi-4.1.2.tar.gz -cd openmpi-4.1.2 -CPP=cpp CC=nvc CFLAGS='-DNDEBUG -O1 -nomp -fPIC -fno-strict-aliasing -tp=haswell' CXX=nvc++ CXXFLAGS='-DNDEBUG -O1 -nomp -fPIC -finline-functions -tp=haswell' F77=nvfortran F90=nvfortran FC=nvfortran FCFLAGS='-O1 -nomp -fPIC -tp=haswell' FFLAGS='-fast -Mipa=fast,inline -tp=haswell' LDFLAGS=-Wl,--as-needed ./configure --prefix=$1 --disable-debug --disable-getpwuid --disable-mem-debug --disable-mem-profile --disable-memchecker --disable-static --enable-mca-no-build=btl-uct --enable-mpi1-compatibility --enable-oshmem --with-cuda=/usr/local/cuda --with-ucx=$1/ucx --enable-mca-no-build=op-avx -make -j8 +./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 -export LIBRARY_PATH=$1/lib:$LIBRARY_PATH -export PATH=$1/bin:$PATH \ -UCX_IB_PCI_RELAXED_ORDERING=on \ -UCX_MAX_RNDV_RAILS=1 \ -UCX_MEMTYPE_CACHE=n \ -UCX_MEMTYPE_REG_WHOLE_ALLOC_TYPES=cuda \ -UCX_TLS=rc_v,sm,cuda_copy,cuda_ipc,gdr_copy (or UCX_TLS=all) +#install openmpi +cd ${JARVIS_TMP} +tar -xvf ${JARVIS_DOWNLOAD}/openmpi-${openmpi_ver}.tar.gz +cd openmpi-${openmpi_ver} +./configure --prefix=$1 CPP=cpp CC=nvc CXX=nvc++ F77=nvfortran F90=nvfortran FC=nvfortran LDFLAGS=-Wl,--as-needed --disable-debug --disable-getpwuid --disable-mem-debug --disable-mem-profile --disable-memchecker --disable-static --enable-mca-no-build=btl-uct --enable-mpi1-compatibility --enable-oshmem --enable-mpirun-prefix-by-default --enable-cuda --enable-dlopen --enable-weak-symbols --enable-heterogeneous --enable-binaries --enable-script-wrapper-compilers --enable-orterun-prefix-by-default --enable-mca-no-build=btl-uct --with-cuda --with-ucx=$1/ucx +make -j +make install \ No newline at end of file diff --git a/src/configService.py b/src/configService.py index 12fabdc4a1a52ea5a92b062b599f21d09ccbaa64..c7481b332770880c75b4448ae5dfb9b618ec8198 100644 --- a/src/configService.py +++ b/src/configService.py @@ -15,7 +15,7 @@ class ConfigService: def switch_config(self, config_file): print(f"Switch config file to {config_file}") config_path = os.path.join(self.ROOT, config_file) - if not os.path.exists(config_path): + if not os.path.isfile(config_path): print("config_path not found, switch failed.") return self.tool.write_file(self.meta_path, config_file.strip()) diff --git a/src/executeService.py b/src/executeService.py index 77f8f840fcc99ba6e28bd7e6184361a57bc58c60..b135b8c7a2be72f25bf85c5257531cba56c33edf 100644 --- a/src/executeService.py +++ b/src/executeService.py @@ -33,7 +33,7 @@ class ExecuteService: def exec_popen(self, cmd, isPrint=True): if isPrint: self.print_cmd(cmd) - output = os.popen("bash -c \"{}\"".format(cmd)).readlines() + output = os.popen(f"bash -c '{cmd}'").readlines() return output def get_duration(self): @@ -47,7 +47,7 @@ class ExecuteService: cmd = self.join_cmd(cmds) if not cmd.startswith('echo'): self.print_cmd(cmd) - state = os.system("bash -c \"{}\"".format(cmd)) + state = os.system(f"bash -c '{cmd}'") self.end_time = self.tool.get_time_stamp() print(f"total time used: {self.get_duration()}s") logger.info(self.end_flag + cmd)