diff --git a/.gitignore b/.gitignore index c98d290cf1e507878325bb001ed1dcb053a0d236..9e9e53cfd671b7a3513f94e606b60be736c6cddd 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ Ubuntu Fedora Debian install/test +Rocky diff --git a/Rocky/8/Rocky-8-Bootstrap b/Rocky/8/Rocky-8-Bootstrap new file mode 100644 index 0000000000000000000000000000000000000000..f58ad495413ff2f2a2e59fc14fc5619ef2be0711 --- /dev/null +++ b/Rocky/8/Rocky-8-Bootstrap @@ -0,0 +1,56 @@ +Bootstrap: docker +From: rockylinux:8.7 + +%post +yum -y update && yum -y upgrade + +# CentOS repo + +yum -y install bash-completion pigz tmux + +yum -y groupinstall "Development Tools" + +# MPI support +yum -y install numactl-devel + +yum -y install perf perftest nano vim mc symlinks telnet net-tools ipmitool smartmontools wget openssh-ldap sssd tmux lsof strace psmisc tcsh libffi-devel libfabric time samba ksh zsh libsecret-devel libcap-devel libxslt docbook-style-xsl nfs-utils.x86_64 nfs4-acl-tools bind-utils tcl tcl-devel python2 python2-devel python36 python36-devel python2-pip python3-pip lua + +#X11 +yum -y install libXdmcp libXfont2 libXxf86misc libxkbfile libXtst libX11-devel mesa-libGLU mesa-dri-drivers mesa-filesystem xkeyboard-config xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit xorg-x11-xkb-utils motif motif-devel gtk3 + +cd /tmp + +# UCX +wget https://github.com/openucx/ucx/archive/refs/tags/v1.14.0.tar.gz #https://github.com/openucx/ucx/archive/v1.11.2.tar.gz +tar xvf v1.14.0.tar.gz && cd ucx-1.14.0 +./autogen.sh +./configure --prefix=/usr/local +make -j 64 +make install + +# OpenMPI +wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.2.tar.gz +tar xvf openmpi-4.1.2.tar.gz && cd openmpi-4.1.2 +./configure --prefix=/usr/local --with-ucx=/usr/local +make -j 64 +make install + +# pip +pip2 install setuptools numpy scipy pandas wheel --upgrade +pip3 install setuptools numpy scipy pandas wheel --upgrade + +# lua +dnf install -y http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/lua-posix-33.3.1-9.el8.x86_64.rpm +dnf install -y http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/lua-filesystem-1.6.3-7.el8.x86_64.rpm +dnf install -y http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/lua-devel-5.3.4-12.el8.x86_64.rpm + +# Lmod +wget https://github.com/TACC/Lmod/archive/8.5.tar.gz +tar xvf 8.5.tar.gz +cd Lmod-8.5 +./configure --prefix=/opt/apps +make install + +# APPS and SCRATCH +mkdir /apps +mkdir /scratch diff --git a/Rocky/9/Rocky-9-Bootstrap b/Rocky/9/Rocky-9-Bootstrap new file mode 100644 index 0000000000000000000000000000000000000000..df8bbc5bb67bc731f12469236c5bd031cc162967 --- /dev/null +++ b/Rocky/9/Rocky-9-Bootstrap @@ -0,0 +1,26 @@ +Bootstrap: docker +From: rockylinux:9.1 + +%post +yum -y update && yum -y upgrade + +# CentOS repo + +yum -y install bash-completion pigz tmux + +yum -y groupinstall "Development Tools" + +# MPI support +yum -y install numactl-devel + +yum -y install perf perftest nano vim mc symlinks telnet net-tools ipmitool smartmontools wget sssd tmux lsof strace psmisc tcsh libffi-devel libfabric time samba ksh zsh libsecret-devel libcap-devel libxslt docbook-style-xsl nfs-utils.x86_64 nfs4-acl-tools bind-utils tcl tcl-devel lua python-pip + +#X11 +yum -y install libXdmcp libXfont2 libxkbfile libXtst libX11-devel mesa-libGLU mesa-dri-drivers mesa-filesystem xkeyboard-config xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit motif motif-devel gtk3 + +# pip +pip install setuptools numpy scipy pandas wheel --upgrade + +# APPS and SCRATCH +mkdir /apps +mkdir /scratch diff --git a/bin/image-exec b/bin/image-exec index 185638ac6e4b84de1552eeff85f8db6930149f09..21c201fe1411d311dd78a9a2d9f68edd0d76833a 100755 --- a/bin/image-exec +++ b/bin/image-exec @@ -10,4 +10,4 @@ if [ -z "$1" ]; then exit 1 fi -singularity exec --bind /scratch --bind /apps $IMAGE_PATH_LOCAL "$@" +apptainer exec --bind /scratch --bind /apps $IMAGE_PATH_LOCAL "$@" diff --git a/bin/image-load b/bin/image-load index 97b18726dcd866e965e40839285baff8fb3d34a2..214a70008a26cb34343c086a02add31011b732bf 100755 --- a/bin/image-load +++ b/bin/image-load @@ -7,15 +7,15 @@ fi VERSION=$(\ls -t $IMAGE_ROOT | grep ".sif\|.simg" | head -1) -if [ ! -d "$HOME/.singularity/images" ]; then - mkdir -p $HOME/.singularity/images +if [ ! -d "$HOME/.apptainer/images" ]; then + mkdir -p $HOME/.apptainer/images fi -LOCAL=$(\ls $HOME/.singularity/images | grep $IMAGE_OS-$IMAGE_VERSION | head -1) +LOCAL=$(\ls $HOME/.apptainer/images | grep $IMAGE_OS-$IMAGE_VERSION | head -1) if [[ -z "$LOCAL" ]]; then echo -ne "\e[33mPreparing image \e[0m" - rsync --progress -h $IMAGE_ROOT/$VERSION $HOME/.singularity/images/$VERSION + rsync --progress -h $IMAGE_ROOT/$VERSION $HOME/.apptainer/images/$VERSION LOCAL=$VERSION fi @@ -25,9 +25,9 @@ if [ "$LOCAL" \< "$VERSION" ]; then read CONTINUE if [ "$CONTINUE" == "y" ] || [ "$CONTINUE" == "Y" ]; then echo -ne "\e[32mUpdating image\e[0m " - rsync --progress -h $IMAGE_ROOT/$VERSION $HOME/.singularity/images/$VERSION - echo -e "\e[32mNew version is ready.\e[0m ($HOME/.singularity/images/$VERSION)" - [ -f $HOME/.singularity/images/$LOCAL ] && rm $HOME/.singularity/images/$LOCAL + rsync --progress -h $IMAGE_ROOT/$VERSION $HOME/.apptainer/images/$VERSION + echo -e "\e[32mNew version is ready.\e[0m ($HOME/.apptainer/images/$VERSION)" + [ -f $HOME/.apptainer/images/$LOCAL ] && rm $HOME/.apptainer/images/$LOCAL LOCAL=$VERSION else echo -e "\e[31mIgnoring new version...\e[0m ($VERSION)." @@ -38,11 +38,11 @@ if [ "$LOCAL" \< "$VERSION" ]; then fi if [ "$1" == "shell" ]; then - export IMAGE_PATH_LOCAL="$HOME/.singularity/images/$LOCAL" - singularity shell --bind /scratch --bind /apps $HOME/.singularity/images/$LOCAL + export IMAGE_PATH_LOCAL="$HOME/.apptainer/images/$LOCAL" + apptainer shell --bind /scratch --bind /apps $HOME/.apptainer/images/$LOCAL SYS=`/bin/cat /etc/centos-release` echo -e "\e[33mWelcome to the normal operating system ($SYS)\e[0m" else - export IMAGE_PATH_LOCAL="$HOME/.singularity/images/$LOCAL" - echo -e "\e[33mYour image of $IMAGE_OS/$IMAGE_VERSION is at location:\e[0m $HOME/.singularity/images/$LOCAL" + export IMAGE_PATH_LOCAL="$HOME/.apptainer/images/$LOCAL" + echo -e "\e[33mYour image of $IMAGE_OS/$IMAGE_VERSION is at location:\e[0m $HOME/.apptainer/images/$LOCAL" fi diff --git a/bin/image-mpi b/bin/image-mpi index 9b01b152e8da339229a0f689a5529b7bb160c58f..a03b64da883058fb2e624c825340cad57000e769 100755 --- a/bin/image-mpi +++ b/bin/image-mpi @@ -48,6 +48,4 @@ done PARAM=$(echo "$PARAM" | sed -e 's/ */ /g' -e 's/^ *\(.*\) *$/\1/') -#echo "mpirun $PARAM singularity exec --bind /scratch --bind /apps --writable $IMAGE_PATH_LOCAL $EXEC" - -mpirun ${PARAM} singularity exec --bind /scratch --bind /apps "$IMAGE_PATH_LOCAL" "$EXEC" +mpirun ${PARAM} apptainer exec --bind /scratch --bind /apps "$IMAGE_PATH_LOCAL" "$EXEC" diff --git a/bin/image-run b/bin/image-run index aef7595cebc600cc57f99093e99639634c2d43d8..012b4afcbcf5a335fbfec106d22c940a0fe1995d 100755 --- a/bin/image-run +++ b/bin/image-run @@ -5,4 +5,4 @@ if [ -z "IMAGE_PATH_LOCAL" ]; then exit 1 fi -singularity run --bind /scratch --bind /apps $IMAGE_PATH_LOCAL "$@" +apptainer run --bind /scratch --bind /apps $IMAGE_PATH_LOCAL "$@" diff --git a/bin/image-shell b/bin/image-shell index 88ca172ed055172117fcc4da04713755c300f95e..fee739d4cd82916d0b26b4451e199c71686ec817 100755 --- a/bin/image-shell +++ b/bin/image-shell @@ -5,4 +5,4 @@ if [ -z "IMAGE_PATH_LOCAL" ]; then exit 1 fi -singularity shell --bind /scratch --bind /apps $IMAGE_PATH_LOCAL $@ +apptainer shell --bind /scratch --bind /apps $IMAGE_PATH_LOCAL $@ diff --git a/bin/image-update b/bin/image-update index 9442069d3dc62b34198ba428aac6caf99c693afe..bb536b9320ebdb74fca1c2997154a521c1ff6a2f 100755 --- a/bin/image-update +++ b/bin/image-update @@ -7,18 +7,18 @@ fi APPS_VERSION=$(ls -t $IMAGE_ROOT | grep ".sif\|.simg" | head -1) -LOCAL_VERSION=$(ls $HOME/.singularity/images | grep $IMAGE_OS-$IMAGE_VERSION* | head -1) +LOCAL_VERSION=$(ls $HOME/.apptainer/images | grep $IMAGE_OS-$IMAGE_VERSION* | head -1) if [ "$LOCAL_VERSION" \< "$APPS_VERSION" ]; then echo -ne "\e[33mNew version of CentOS image was found.\e[0m (\e[33mNew:\e[0m $APPS_VERSION \e[33mOld:\e[0m $LOCAL_VERSION)\nDo you want to update local copy? (\e[31mWARNING all user modification will be deleted\e[0m) [y/N]: " read CONTINUE if [ "$CONTINUE" == "y" ] || [ "$CONTINUE" == "Y" ]; then echo -ne "\e[33mUpdating image \e[0m " - rsync --progress -h $IMAGE_ROOT/$APPS_VERSION $HOME/.singularity/images/$APPS_VERSION - echo -e "\e[32mNew version is ready.\e[0m ($HOME/.singularity/images/$APPS_VERSION)" + rsync --progress -h $IMAGE_ROOT/$APPS_VERSION $HOME/.apptainer/images/$APPS_VERSION + echo -e "\e[32mNew version is ready.\e[0m ($HOME/.apptainer/images/$APPS_VERSION)" unset IMAGE_PATH_LOCAL - export IMAGE_PATH_LOCAL="$HOME/.singularity/images/$APPS_VERSION" - [ -f $HOME/.singularity/images/$LOCAL_VERSION ] && rm $HOME/.singularity/images/$LOCAL_VERSION + export IMAGE_PATH_LOCAL="$HOME/.apptainer/images/$APPS_VERSION" + [ -f $HOME/.apptainer/images/$LOCAL_VERSION ] && rm $HOME/.apptainer/images/$LOCAL_VERSION else echo "Exiting..." fi diff --git a/install/CENTOS6LATEST b/install/CENTOS6LATEST deleted file mode 100644 index 7b3aa4f7f0d7e587df787bc6d87f8acd89592683..0000000000000000000000000000000000000000 --- a/install/CENTOS6LATEST +++ /dev/null @@ -1,81 +0,0 @@ -Bootstrap: docker -From: centos:6.9 - -%post -# CentOS repo -yum -y install vim python python-devel wget tcl tk tcl-devel tk-devel make gcc g++ git - -# Development tools -yum -y groupinstall "Development Tools" - -# MPI support -yum -y install numactl-devel - -cd /tmp - -# OpenMPI -wget https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-3.1.4.tar.gz -tar xvf openmpi-3.1.4.tar.gz && cd openmpi-3.1.4 -./configure --prefix=/usr/local -make -j 16 -make install - -cd /tmp - -# lua -yum -y install lua lua-devel - -# lua posix and dependencies -wget https://github.com/luarocks/luarocks/archive/v2.4.2.tar.gz -tar xvf v2.4.2.tar.gz -cd luarocks-2.4.2 -./configure -make build -make install -mkdir ~/.luarocks -echo "fs_use_modules = false" > ~/.luarocks/config.lua -luarocks install luaposix -luarocks install luafilesystem -LUAROCKS_PREFIX=/usr/local -export LUA_PATH="$LUAROCKS_PREFIX/share/lua/5.1/?.lua;$LUAROCKS_PREFIX/share/lua/5.1/?/init.lua;;" -export LUA_CPATH="$LUAROCKS_PREFIX/lib/lua/5.1/?.so;;" - -# Lmod -wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz -tar xvf 7.7.7.tar.gz -cd Lmod-7.7.7 -./configure --prefix=/opt/apps -make install - -# APPS and SCRATCH -mkdir /apps -mkdir /scratch - -%environment -source /opt/apps/lmod/7.7.7/init/profile -export LMOD_PACKAGE_PATH=/opt/apps/lmod/ - -if [ "$(id -u)" -ne 0 ]; then - MODULEPATH="" - - for dir in /apps/modules/* - do - # Exclude following directories - if [[ (${dir##*/} == "all") ]]; then - continue - fi - # In case that it's directory - if [ -d "$dir" ]; then - if [ -z "$MODULEPATH" ]; then - MODULEPATH="$dir" - else - MODULEPATH="$MODULEPATH:$dir" - fi - fi - done - - # export - export MODULEPATH -fi - -ml purge diff --git a/install/CENTOS7LATEST b/install/CENTOS7LATEST index f828a278b499bef6befd2fdd6a7cccb854bb43a4..46381a7edc022fd2a47499effda8054d66e34fc9 100644 --- a/install/CENTOS7LATEST +++ b/install/CENTOS7LATEST @@ -16,26 +16,20 @@ yum -y install numactl-devel cd /tmp # UCX -wget https://github.com/openucx/ucx/archive/v1.6.1.tar.gz -tar xvf v1.6.1.tar.gz && cd ucx-1.6.1 +wget https://github.com/openucx/ucx/archive/refs/tags/v1.11.2.tar.gz +tar xvf v1.11.2.tar.gz && cd ucx-1.11.2 ./autogen.sh ./configure --prefix=/usr/local -make -j 36 +make -j 64 make install # OpenMPI -wget https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-3.1.4.tar.gz -tar xvf openmpi-3.1.4.tar.gz && cd openmpi-3.1.4 +wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.2.tar.gz +tar xvf openmpi-4.1.2.tar.gz && cd openmpi-4.1.2 ./configure --prefix=/usr/local --with-ucx=/usr/local -make -j 16 +make -j 64 make install -# pip -curl -s -O https://bootstrap.pypa.io/get-pip.py -python get-pip.py - -pip install setuptools --upgrade - # lua wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lua-posix-32-2.el7.x86_64.rpm wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lua-filesystem-1.6.2-2.el7.x86_64.rpm @@ -50,18 +44,17 @@ rpm -ihv lua-posix-32-2.el7.x86_64.rpm cd /tmp # Lmod -wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz -tar xvf 7.7.7.tar.gz -cd Lmod-7.7.7 +wget https://github.com/TACC/Lmod/archive/8.5.tar.gz +tar xvf 8.5.tar.gz +cd Lmod-8.5 ./configure --prefix=/opt/apps make install -# APPS and SCRATCH -mkdir /apps -mkdir /scratch +# mounts +mkdir /mnt/proj1 /mnt/proj2 /mnt/proj3 /scratch /apps %environment -source /opt/apps/lmod/7.7.7/init/profile +source /opt/apps/lmod/8.5/init/profile export LMOD_PACKAGE_PATH=/opt/apps/lmod/ if [ "$(id -u)" -ne 0 ]; then diff --git a/install/CENTOS7LATESTINTEL b/install/CENTOS7LATESTINTEL index ba200516997a96b0b16a92f0d633afd991719be8..3a8b620592d5b678c77c8d2b600c34d58a4156fe 100644 --- a/install/CENTOS7LATESTINTEL +++ b/install/CENTOS7LATESTINTEL @@ -32,9 +32,9 @@ rpm -ihv lua-bitop-1.0.2-3.el7.x86_64.rpm rpm -ihv lua-posix-32-2.el7.x86_64.rpm # Lmod -wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz -tar xvf 7.7.7.tar.gz -cd Lmod-7.7.7 +wget https://github.com/TACC/Lmod/archive/8.5.tar.gz +tar xvf 8.5.tar.gz +cd Lmod-8.5 ./configure --prefix=/opt/apps make install @@ -43,7 +43,7 @@ mkdir /apps mkdir /scratch %environment -source /opt/apps/lmod/7.7.7/init/profile +source /opt/apps/lmod/8.5/init/profile export LMOD_PACKAGE_PATH=/opt/apps/lmod/ if [ "$(id -u)" -ne 0 ]; then diff --git a/install/CENTOS8LATEST b/install/CENTOS8LATEST index 8eb8414709c82d4993d835b657428101215b99fc..a16e3682faf17a063c4a6afd73274fcead4a281e 100644 --- a/install/CENTOS8LATEST +++ b/install/CENTOS8LATEST @@ -20,18 +20,18 @@ yum -y install libXdmcp libXfont2 libXxf86misc libxkbfile libXtst libX11-devel m cd /tmp # UCX -wget https://github.com/openucx/ucx/archive/v1.6.1.tar.gz -tar xvf v1.6.1.tar.gz && cd ucx-1.6.1 +wget https://github.com/openucx/ucx/archive/v1.11.2.tar.gz +tar xvf v1..11.2.tar.gz && cd ucx-1.11.2 ./autogen.sh ./configure --prefix=/usr/local -make -j 16 +make -j 64 make install # OpenMPI -wget https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-3.1.4.tar.gz -tar xvf openmpi-3.1.4.tar.gz && cd openmpi-3.1.4 +wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.2.tar.gz +tar xvf openmpi-4.1.2.tar.gz && cd openmpi-4.1.2 ./configure --prefix=/usr/local --with-ucx=/usr/local -make -j 16 +make -j 64 make install # pip @@ -48,9 +48,9 @@ pip3 install setuptools numpy scipy pandas wheel --upgrade #rpm -ihv lua-filesystem-1.6.3-7.el8.x86_64.rpm # Lmod -wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz -tar xvf 7.7.7.tar.gz -cd Lmod-7.7.7 +wget https://github.com/TACC/Lmod/archive/8.5.tar.gz +tar xvf 8.5.tar.gz +cd Lmod-8.5 ./configure --prefix=/opt/apps make install @@ -59,10 +59,9 @@ mkdir /apps mkdir /scratch %environment -source /opt/apps/lmod/7.7.7/init/profile +source /opt/apps/lmod/8.5/init/profile clearMT export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export -f ml export -f module export -f clearMT - diff --git a/install/CENTOS9LATEST b/install/CENTOS9LATEST new file mode 100644 index 0000000000000000000000000000000000000000..c094027306e9eb8bb8351539fa3c4720575c3566 --- /dev/null +++ b/install/CENTOS9LATEST @@ -0,0 +1,67 @@ +Bootstrap: docker +From: centos:9 + +%post +yum -y update && yum -y upgrade + +# CentOS repo + +yum -y install bash-completion pigz tmux + +yum -y groupinstall "Development Tools" + +# MPI support +yum -y install numactl-devel + +yum -y install perf perftest nano vim mc symlinks telnet net-tools ipmitool smartmontools wget openssh-ldap sssd tmux lsof strace psmisc tcsh libffi-devel libfabric time samba ksh zsh libsecret-devel libcap-devel libxslt docbook-style-xsl nfs-utils.x86_64 nfs4-acl-tools bind-utils tcl tcl-devel python2 python2-devel python36 python36-devel python2-pip python3-pip lua + +#X11 +yum -y install libXdmcp libXfont2 libXxf86misc libxkbfile libXtst libX11-devel mesa-libGLU mesa-dri-drivers mesa-filesystem xkeyboard-config xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit xorg-x11-xkb-utils motif motif-devel gtk3 + +cd /tmp +# UCX +wget https://github.com/openucx/ucx/archive/v1.11.2.tar.gz +tar xvf v1..11.2.tar.gz && cd ucx-1.11.2 +./autogen.sh +./configure --prefix=/usr/local +make -j 64 +make install + +# OpenMPI +wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.2.tar.gz +tar xvf openmpi-4.1.2.tar.gz && cd openmpi-4.1.2 +./configure --prefix=/usr/local --with-ucx=/usr/local +make -j 64 +make install + +# pip +pip2 install setuptools numpy scipy pandas wheel --upgrade +pip3 install setuptools numpy scipy pandas wheel --upgrade + +# lua +#wget http://centos.mirror.srv.magticom.ge/8/PowerTools/x86_64/os/Packages/lua-posix-33.3.1-9.el8.x86_64.rpm +#wget http://centos.mirror.srv.magticom.ge/8/PowerTools/x86_64/os/Packages/lua-devel-5.3.4-10.el8.x86_64.rpm +#wget http://centos.mirror.srv.magticom.ge/8/PowerTools/x86_64/os/Packages/lua-filesystem-1.6.3-7.el8.x86_64.rpm + +#rpm -ihv lua-posix-33.3.1-9.el8.x86_64.rpm +#rpm -ihv lua-devel-5.3.4-10.el8.x86_64.rpm +#rpm -ihv lua-filesystem-1.6.3-7.el8.x86_64.rpm + +# Lmod +wget https://github.com/TACC/Lmod/archive/8.5.tar.gz +tar xvf 8.5.tar.gz +cd Lmod-8.5 +./configure --prefix=/opt/apps +make install + +# APPS and SCRATCH +mkdir /apps +mkdir /scratch + +%environment +source /opt/apps/lmod/8.5/init/profile +clearMT +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib +export -f ml +export -f module +export -f clearMT diff --git a/install/CONFIG b/install/CONFIG index d48e5564eda70aac8d3b2651f84557b8fbc1b1ec..d5f170a0505b0439850c14bfe26efd5cdb3823c6 100644 --- a/install/CONFIG +++ b/install/CONFIG @@ -1,6 +1,6 @@ -SINGULARITY_BIN_PATH=/apps/all/Singularity/3.6.0/bin +APPTAINER_BIN_PATH=/apps/all/apptainer/1.1.5/bin IMAGE_PATH=/apps/all/OS MODULEFILE_PATH=/apps/modules USER_IMAGE=easybuild EBROOTSQUASHFSMINTOOLS=/apps/all/squashfs-tools/4.3 -PATH=$PATH:/apps/all/Singularity/3.6.0/bin:/apps/all/squashfs-tools/4.3/bin +PATH=$PATH:/apps/all/apptainer/1.1.5/bin:/apps/all/squashfs-tools/4.3/bin diff --git a/install/FEDORALATEST b/install/FEDORALATEST index 0a403ca74ab7efdfa09b4e3b728712d0d4de6279..d9da1b29bf3c263e9d75fa1b99e06a6a3ff7a83c 100644 --- a/install/FEDORALATEST +++ b/install/FEDORALATEST @@ -6,57 +6,7 @@ yum -y update && yum -y upgrade # CentOS repo yum -y groupinstall "Development Tools" -yum -y install python gcc gcc-c++ gcc-gfortran make wget vim mc procps tcl pkg-config lua tolua++ lua-posix lua-logging lua-sql lua-socket lua-filesystem lua-sec lua-json lua-term +yum -y install python gcc gcc-c++ gcc-gfortran make wget vim mc procps tcl pkg-config lua tolua++ lua-posix lua-sql lua-socket lua-filesystem lua-sec lua-json lua-term # Fedora repo yum -y install bash-completion pigz tmux - -cd /tmp - -# OpenMPI -#wget https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-3.1.4.tar.gz -#tar xvf openmpi-3.1.4.tar.gz && cd openmpi-3.1.4 -#./configure --prefix=/usr/local --with-hwloc=internal -#make -j 16 -#make install - -wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz -tar xvf 7.7.7.tar.gz -cd Lmod-7.7.7 -./configure --prefix=/opt/apps -make install -ln -s /apps/all/Lmod/7.7.7/lmod/etc /opt/apps/lmod/etc - -# pip -curl -s -O https://bootstrap.pypa.io/get-pip.py -python get-pip.py -pip install setuptools --upgrade - -%environment -source /opt/apps/lmod/7.7.7/init/profile -export LMOD_PACKAGE_PATH=/opt/apps/lmod/ - -if [ "$(id -u)" -ne 0 ]; then - MODULEPATH="" - - for dir in /apps/modules/* - do - # Exclude following directories - if [[ (${dir##*/} == "all") ]]; then - continue - fi - # In case that it's directory - if [ -d "$dir" ]; then - if [ -z "$MODULEPATH" ]; then - MODULEPATH="$dir" - else - MODULEPATH="$MODULEPATH:$dir" - fi - fi - done - - # export - export MODULEPATH -fi - -ml purge diff --git a/install/ROCKY8LATEST b/install/ROCKY8LATEST new file mode 100644 index 0000000000000000000000000000000000000000..f58ad495413ff2f2a2e59fc14fc5619ef2be0711 --- /dev/null +++ b/install/ROCKY8LATEST @@ -0,0 +1,56 @@ +Bootstrap: docker +From: rockylinux:8.7 + +%post +yum -y update && yum -y upgrade + +# CentOS repo + +yum -y install bash-completion pigz tmux + +yum -y groupinstall "Development Tools" + +# MPI support +yum -y install numactl-devel + +yum -y install perf perftest nano vim mc symlinks telnet net-tools ipmitool smartmontools wget openssh-ldap sssd tmux lsof strace psmisc tcsh libffi-devel libfabric time samba ksh zsh libsecret-devel libcap-devel libxslt docbook-style-xsl nfs-utils.x86_64 nfs4-acl-tools bind-utils tcl tcl-devel python2 python2-devel python36 python36-devel python2-pip python3-pip lua + +#X11 +yum -y install libXdmcp libXfont2 libXxf86misc libxkbfile libXtst libX11-devel mesa-libGLU mesa-dri-drivers mesa-filesystem xkeyboard-config xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit xorg-x11-xkb-utils motif motif-devel gtk3 + +cd /tmp + +# UCX +wget https://github.com/openucx/ucx/archive/refs/tags/v1.14.0.tar.gz #https://github.com/openucx/ucx/archive/v1.11.2.tar.gz +tar xvf v1.14.0.tar.gz && cd ucx-1.14.0 +./autogen.sh +./configure --prefix=/usr/local +make -j 64 +make install + +# OpenMPI +wget https://github.com/open-mpi/ompi/archive/refs/tags/v4.1.2.tar.gz +tar xvf openmpi-4.1.2.tar.gz && cd openmpi-4.1.2 +./configure --prefix=/usr/local --with-ucx=/usr/local +make -j 64 +make install + +# pip +pip2 install setuptools numpy scipy pandas wheel --upgrade +pip3 install setuptools numpy scipy pandas wheel --upgrade + +# lua +dnf install -y http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/lua-posix-33.3.1-9.el8.x86_64.rpm +dnf install -y http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/lua-filesystem-1.6.3-7.el8.x86_64.rpm +dnf install -y http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/lua-devel-5.3.4-12.el8.x86_64.rpm + +# Lmod +wget https://github.com/TACC/Lmod/archive/8.5.tar.gz +tar xvf 8.5.tar.gz +cd Lmod-8.5 +./configure --prefix=/opt/apps +make install + +# APPS and SCRATCH +mkdir /apps +mkdir /scratch diff --git a/install/ROCKY9LATEST b/install/ROCKY9LATEST new file mode 100644 index 0000000000000000000000000000000000000000..df8bbc5bb67bc731f12469236c5bd031cc162967 --- /dev/null +++ b/install/ROCKY9LATEST @@ -0,0 +1,26 @@ +Bootstrap: docker +From: rockylinux:9.1 + +%post +yum -y update && yum -y upgrade + +# CentOS repo + +yum -y install bash-completion pigz tmux + +yum -y groupinstall "Development Tools" + +# MPI support +yum -y install numactl-devel + +yum -y install perf perftest nano vim mc symlinks telnet net-tools ipmitool smartmontools wget sssd tmux lsof strace psmisc tcsh libffi-devel libfabric time samba ksh zsh libsecret-devel libcap-devel libxslt docbook-style-xsl nfs-utils.x86_64 nfs4-acl-tools bind-utils tcl tcl-devel lua python-pip + +#X11 +yum -y install libXdmcp libXfont2 libxkbfile libXtst libX11-devel mesa-libGLU mesa-dri-drivers mesa-filesystem xkeyboard-config xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit motif motif-devel gtk3 + +# pip +pip install setuptools numpy scipy pandas wheel --upgrade + +# APPS and SCRATCH +mkdir /apps +mkdir /scratch diff --git a/install/UBUNTULATEST b/install/UBUNTULATEST index b4a9cfe7d7d3e517c35ab4bc16b925193eb9fb3e..bf56c8449fd5af7f5fd038078f2ba049498b2f28 100644 --- a/install/UBUNTULATEST +++ b/install/UBUNTULATEST @@ -4,66 +4,7 @@ From: ubuntu:latest %post apt -y update && apt -y upgrade -apt -y install tzdata && apt -y install python curl wget gcc g++ make vim mc libncurses-dev rsync tclsh lua5.2 liblua5.2 gfortran ssh libnuma-dev autoconf autogen - -curl -s -O https://bootstrap.pypa.io/get-pip.py -python get-pip.py -pip install setuptools python-graph-core python-graph-dot tabulate numpy scipy pandas wheel --upgrade - -wget https://github.com/luarocks/luarocks/archive/v2.4.2.tar.gz -tar xvf v2.4.2.tar.gz -cd luarocks-2.4.2 -./configure -make build -make install -mkdir ~/.luarocks -echo "fs_use_modules = false" > ~/.luarocks/config.lua -luarocks install luaposix -luarocks install luafilesystem -LUAROCKS_PREFIX=/usr/local -export LUA_PATH="$LUAROCKS_PREFIX/share/lua/5.1/?.lua;$LUAROCKS_PREFIX/share/lua/5.1/?/init.lua;;" -export LUA_CPATH="$LUAROCKS_PREFIX/lib/lua/5.1/?.so;;" - -echo "# !/bin/bash" > /bin/logger -echo "exit 0" >> /bin/logger -chmod +x /bin/logger - -# Lmod -wget https://github.com/TACC/Lmod/archive/7.7.7.tar.gz -tar xvf 7.7.7.tar.gz -cd Lmod-7.7.7 -./configure --prefix=/opt/apps -make install - -# UCX -wget https://github.com/openucx/ucx/archive/v1.6.1.tar.gz -tar xvf v1.6.1.tar.gz && cd ucx-1.6.1 -./autogen.sh -./configure --prefix=/usr/local -make -j 36 -make install - -# OpenMPI -wget https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-3.1.4.tar.gz -tar xvf openmpi-3.1.4.tar.gz && cd openmpi-3.1.4 -./configure --prefix=/usr/local --with-ucx=/usr/local -make -j 16 -make install - -# APPS and SCRATCH -mkdir /apps -mkdir /scratch +apt -y install tzdata && apt -y install curl wget gcc g++ make vim mc libncurses-dev rsync tclsh gfortran ssh libnuma-dev autoconf autogen cd /bin rm sh && ln -s /bin/bash sh - -%environment -source /opt/apps/lmod/7.7.7/init/profile -clearMT -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib -export -f ml -export -f module -export -f clearMT -export OMPI_MCA_btl_tcp_if_include=10.33.4.0/24 -export OMPI_MCA_orte_base_help_aggregate=0 -export OMPI_MCA_btl_openib_if_include=mlx5_0 diff --git a/install/install.sh b/install/install.sh index cb4cd8fe9021e25a7cb9588ffa62322b5bc0523a..a55cccd6a8033613b84be0740bf247a75fe3fad0 100755 --- a/install/install.sh +++ b/install/install.sh @@ -1,18 +1,18 @@ #!/bin/bash # -# Copyright (C) 2017-2020 IT4Innovations +# Copyright (C) 2017-2023 IT4Innovations # Lukas Krupcik, lukas.krupcik@vsb.cz # # if without any parameters if [[ $# -eq 0 ]]; then printf "\e[31m - ./install.sh\e[0m ... create and build singularity image + ./install.sh\e[0m ... create and build apptainer image -\e[33mi\e[0m OS (\e[33mCentOS\e[0m, \e[33mUbuntu\e[0m) - -\e[33mv\e[0m Version OS (CentOS 6, CentOS 7, CentOS 8, Ubuntu latest, Ubuntu 18, Debian latest, Fedora latest) + -\e[33mv\e[0m Version OS (CentOS 7, CentOS 8, Ubuntu latest, Ubuntu 18, Debian latest, Fedora latest) -\e[33mo\e[0m OpenMPI module Example: - \e[33m ./install.sh -i CentOS -v 6\e[0m + \e[33m ./install.sh -i CentOS -v 7\e[0m " echo "" exit 0 @@ -44,15 +44,15 @@ printf "\033c" TEST_CONFIG="TRUE" # test empty value -if [ -z "$SINGULARITY_BIN_PATH" ] || [ -z "$IMAGE_PATH" ] || [ -z "$MODULEFILE_PATH" ] || [ -z "$USER_IMAGE" ]; then +if [ -z "$APPTAINER_BIN_PATH" ] || [ -z "$IMAGE_PATH" ] || [ -z "$MODULEFILE_PATH" ] || [ -z "$USER_IMAGE" ]; then TEST_CONFIG="FALSE" echo "CONFIG test empty value ERROR" fi # test other value -if [ ! -d "$SINGULARITY_BIN_PATH" ]; then +if [ ! -d "$APPTAINER_BIN_PATH" ]; then TEST_CONFIG="FALSE" - echo "CONFIG test SINGULARITY BIN PATH ERROR" + echo "CONFIG test APPTAINER BIN PATH ERROR" fi if [ ! -d "$IMAGE_PATH" ]; then @@ -79,9 +79,9 @@ else fi if [ -z "$IMAGE" ]; then - echo -e "Please, specify singularity image (-i \e[31mCentOS\e[0m, \e[31mUbuntu\e[0m, \e[31mDebian\e[0m, \e[31mFedora\e[0m,)" + echo -e "Please, specify apptainer image (-i \e[31mCentOS\e[0m, \e[31mUbuntu\e[0m, \e[31mDebian\e[0m, \e[31mFedora\e[0m, \e[31mRocky\e[0m)" exit 1 -elif [ "$IMAGE" == "CentOS" ] || [ "$IMAGE" == "Debian" ] || [ "$IMAGE" == "Ubuntu" ] || [ "$IMAGE" == "Debian" ] || [ "$IMAGE" == "Fedora" ]; then +elif [ "$IMAGE" == "CentOS" ] || [ "$IMAGE" == "Debian" ] || [ "$IMAGE" == "Ubuntu" ] || [ "$IMAGE" == "Debian" ] || [ "$IMAGE" == "Fedora" ] || [ "$IMAGE" == "Rocky" ]; then echo -e "Image .................................. [\e[32mOK\e[0m]" else echo -e "Image .................................. [\e[31mERROR\e[0m]" @@ -90,9 +90,9 @@ else fi if [ -z "$VERSION" ]; then - echo -e "Please, specify OS version (-v CentOS \e[31m6\e[0m or CentOS \e[31m7\e[0m, CentOS \e[31m8\e[0m, Ubuntu \e[31mlatest\e[0m, Debian \e[31mlatest\e[0m), Fedora \e[31mlatest\e[0m))" + echo -e "Please, specify OS version (-v CentOS \e[31m7\e[0m, CentOS \e[31m8\e[0m, Ubuntu \e[31mlatest\e[0m, Debian \e[31mlatest\e[0m), Fedora \e[31mlatest\e[0m), Rocky \e[31mlatest\e[0m))" exit 1 -elif ([ "$IMAGE" == "CentOS" ] && [ "$VERSION" == "6" ]) || ([ "$IMAGE" == "CentOS" ] && [ "$VERSION" == "7" ]) || ([ "$IMAGE" == "CentOS" ] && [ "$VERSION" == "8" ]) || ([ "$IMAGE" == "Ubuntu" ] && [ "$VERSION" == "latest" ]) || ([ "$IMAGE" == "Ubuntu" ] && [ "$VERSION" == "18" ]) || ([ "$IMAGE" == "Debian" ] && [ "$VERSION" == "latest" ]) || ([ "$IMAGE" == "Fedora" ] && [ "$VERSION" == "latest" ]); then +elif ([ "$IMAGE" == "CentOS" ] && [ "$VERSION" == "7" ]) || ([ "$IMAGE" == "CentOS" ] && [ "$VERSION" == "8" ]) || ([ "$IMAGE" == "Ubuntu" ] && [ "$VERSION" == "latest" ]) || ([ "$IMAGE" == "Ubuntu" ] && [ "$VERSION" == "18" ]) || ([ "$IMAGE" == "Debian" ] && [ "$VERSION" == "latest" ]) || ([ "$IMAGE" == "Fedora" ] && [ "$VERSION" == "latest" ]) || ([ "$IMAGE" == "Rocky" ] && [ "$VERSION" == "8" ]) || ([ "$IMAGE" == "Rocky" ] && [ "$VERSION" == "9" ]); then echo -e "Version ................................ [\e[32mOK\e[0m]" else echo -e "Version ................................ [\e[31mERROR\e[0m]" @@ -104,8 +104,8 @@ if [ -z "$OMPI" ]; then OMPI= echo -e "OpenMPI ................................ [\e[33mNO\e[0m]" else - OMPI="OpenMPI/3.1.4-GCC-8.3.0-2.32" - echo -e "OpenMPI 3.1.4 .......................... [\e[32mOK\e[0m]" + OMPI="OpenMPI/4.1.2-GCC-11.2.0" + echo -e "OpenMPI/4.1.2-GCC-11.2.0 ............... [\e[32mOK\e[0m]" fi USER=$(whoami) @@ -118,16 +118,23 @@ else echo -e "ROOT ................................... [\e[32mOK\e[0m]" fi -echo -e "\e[32mCreate & Build singularity image\e[0m ($IMAGE-$VERSION-$TYPE)" +echo -e "\e[32mCreate & Build apptainer image\e[0m ($IMAGE-$VERSION-$TYPE)" if [ "$IMAGE" == "CentOS" ]; then - if [ "$VERSION" == "6" ]; then - BOOTSTRAP="CENTOS6LATEST" - elif [ "$VERSION" == "8" ]; then + if [ "$VERSION" == "8" ]; then BOOTSTRAP="CENTOS8LATEST" else BOOTSTRAP="CENTOS7LATEST" fi +elif [ "$IMAGE" == "Rocky" ]; then + if [ "$VERSION" == "8" ]; then + BOOTSTRAP="ROCKY8LATEST" + elif [ "$VERSION" == "9" ]; then + BOOTSTRAP="ROCKY9LATEST" + else + echo "ERROR version ubuntu" + exit 1 + fi elif [ "$IMAGE" == "Ubuntu" ]; then if [ "$VERSION" == "latest" ]; then BOOTSTRAP="UBUNTULATEST" @@ -149,10 +156,10 @@ if [ -f image.sif ]; then rm image.sif || exit 1 fi -echo "$SINGULARITY_BIN_PATH" -export PATH="$PATH:$SINGULARITY_BIN_PATH" +echo "$APPTAINER_BIN_PATH" +export PATH="$PATH:$APPTAINER_BIN_PATH" -singularity build image.sif "$BOOTSTRAP" || CHECK_STATUS="FALSE" && CHECK_STATUS="TRUE" +apptainer build image.sif "$BOOTSTRAP" || CHECK_STATUS="FALSE" && CHECK_STATUS="TRUE" CHECK_STATUS="TRUE" diff --git a/install/modulefile_template/create_modulefile.sh b/install/modulefile_template/create_modulefile.sh index 382320634b3fe99cc0149cf9c4284071c23b624f..83523de0b9bf49681edb6a3951823f46d40d0b5e 100755 --- a/install/modulefile_template/create_modulefile.sh +++ b/install/modulefile_template/create_modulefile.sh @@ -22,6 +22,15 @@ if [ "$IMAGE" == "CentOS" ]; then echo "Unsupported OS Version" exit 1 fi +elif [ "$IMAGE" == "Rocky" ]; then + if [ "$VERSION" == "8" ]; then + PATH="./rocky/8" + elif [ "$VERSION" == "9" ]; then + PATH="./rocky/9" + else + echo "Unsupported OS Version" + exit 1 + fi elif [ "$IMAGE" == "Ubuntu" ]; then PATH="./ubuntu/template" elif [ "$IMAGE" == "Debian" ]; then @@ -35,7 +44,7 @@ fi /bin/cat "$PATH" > "$NAME" -echo "conflict(\"Singularity\")" >> "$NAME" +echo "conflict(\"apptainer\")" >> "$NAME" echo "" >> "$NAME" if [ ! -z $OMPI ]; then echo "if not isloaded(\"OpenMPI/3.1.4-GCC-8.3.0-2.32\") then" >> "$NAME" @@ -43,15 +52,15 @@ if [ ! -z $OMPI ]; then echo "end" >> "$NAME" echo "" >> "$NAME" fi -echo "if not isloaded(\"Singularity\") then" >> "$NAME" -echo " load(\"Singularity\")" >> "$NAME" +echo "if not isloaded(\"apptainer\") then" >> "$NAME" +echo " load(\"apptainer\")" >> "$NAME" echo "end" >> "$NAME" echo "" >> "$NAME" -echo "if not isloaded(\"Singularity-wrappers\") then" >> "$NAME" -echo " load(\"Singularity-wrappers\")" >> "$NAME" +echo "if not isloaded(\"apptainer-wrappers\") then" >> "$NAME" +echo " load(\"apptainer-wrappers\")" >> "$NAME" echo "end" >> "$NAME" echo "" >> "$NAME" -echo "add_property(\"state\", \"singularity\")" >> "$NAME" +echo "add_property(\"state\", \"apptainer\")" >> "$NAME" echo "" >> "$NAME" echo "set_alias(\"image-update\",\". image-update\")" >> "$NAME" echo "setenv(\"IMAGE_ROOT\", \"/apps/all/OS/$IMAGE/$VERSION2\")" >> "$NAME" diff --git a/install/modulefile_template/rocky/8 b/install/modulefile_template/rocky/8 new file mode 100644 index 0000000000000000000000000000000000000000..2ebc60f9302fcd41de6626fe911070c777602476 --- /dev/null +++ b/install/modulefile_template/rocky/8 @@ -0,0 +1,16 @@ +help([[ + +Description +=========== +Rocky 8 + +More information +================ + - Homepage: +]]) + +whatis([[Description: +Rocky 8 +]]) +whatis([[Homepage: ]]) + diff --git a/install/modulefile_template/rocky/9 b/install/modulefile_template/rocky/9 new file mode 100644 index 0000000000000000000000000000000000000000..4a49b5985f4544ef89937c3a71dea05d959f6a67 --- /dev/null +++ b/install/modulefile_template/rocky/9 @@ -0,0 +1,16 @@ +help([[ + +Description +=========== +Rocky 9 + +More information +================ + - Homepage: +]]) + +whatis([[Description: +Rocky 9 +]]) +whatis([[Homepage: ]]) +