[[PageOutline]] = glibc version problems = Compute nodes in partitions '''defq''' and '''interactive''' (as well as login nodes) have Centos version 6.5 with glibc version 2.12. When you try to run a pre-build software that is built on a newer operating system, you will encounter the error, for example, {{{ $ prefetch ./prefetch: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./prefetch) }}} Since glibc version on Centos version 6.5 nodes is '''2.12''', '''GLIBC_2.14''' isn't available. It is possible to run this software if you use the compute nodes in partition '''centos7''', which have Centos version 7.4 with glibc version '''2.17'''. See [https://wiki.hpc.tulane.edu/trac/wiki/cypress/using#SelectingCentOSglibcVersionViaSLURMpartition here] for more details. See the alternate solution below if your software requires a glibc version greater than '''2.17'''. == Work with Singularity Images == [https://sylabs.io/ Singularity] allows you to run an application built for a different distribution of Linux than Cypress OS (Centos 6 or 7). Here we run '''Rockylinux 9.2''' on Cypress using Singularity. === Run Rockylinux Images Interactively === Start an interactive session with '''centos7''' partition. {{{ idev -t 8 --partition=centos7 }}} Load Singularity module. {{{ module load singularity/3.9.0 }}} Setup the environmental variables {{{ source /lustre/project/singularity_images/setup_cypress.sh }}} Run bash shell in Rockylinux Images, {{{ singularity shell -s /bin/bash /lustre/project/singularity_images/rockylinux-9.2.sif }}} You will get a command line prompt. Now the glibc version is '''2.34'''. {{{ Apptainer> ldd --version ldd (GNU libc) 2.34 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper. }}} You can use command line tools as you usually do on Centos6/7 nodes. '''module''' command also works but some of the modules may not work because of library incompatibility. === Run Scripts on Rockylinux in Bachjob === An example Slurm script. {{{ #!/bin/bash #SBATCH --job-name=Singularity # Job Name #SBATCH --partition=centos7 # Partition must be centos7 #SBATCH --qos=normal # Quality of Service normal or long #SBATCH --time=0-01:00:00 # Wall clock time limit in Days-HH:MM:SS #SBATCH --nodes=1 # Node count required for the job #SBATCH --ntasks-per-node=1 # Number of tasks to be launched per Node #SBATCH --cpus-per-task=1 # Number of threads per task (OMP threads 1-20) # Load Singularity module module load singularity/3.9.0 # Setup the environmental variables SingularityImageDir=/lustre/project/singularity_images source $SingularityImageDir/setup_cypress.sh # Run a command on RockyLinux singularity exec $SingularityImageDir/rockylinux-9.2.sif gcc --version }}} The example above runs gcc --version on '''Rockylinux 9.2'''. Submitting job is the same as you usually do. (See [https://wiki.hpc.tulane.edu/trac/wiki/cypress/using#IntroductiontoManagedClusterComputing here].) When the job is finished, the log file should contain the output from gcc --version command, which will be: {{{ gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }}} If you want to run a bash script, assuming 'my_script.sh' is in the current working directory, modify the above as {{{ singularity run $SingularityImageDir/rockylinux-9.2.sif /bin/bash -l -c ./my_script.sh }}} 'my_script.sh' must be executable. You can make it by 'chmod' command (See [https://wiki.hpc.tulane.edu/trac/wiki/cypress/BasicLinuxComands#chmod here].) {{{ chmod u+x my_script.sh }}} For example, 'my_script.sh' is {{{ #!/bin/bash module load intel-psxe/2016 echo "Hello world from $0 running in ${SINGULARITY_NAME}" pwd date icc --version }}} When the job is finished, the log file will have: {{{ Hello world from ./my_script.sh running in rockylinux-9.2.sif /home/userid/test Fri Jun 9 13:21:01 CDT 2023 icc (ICC) 16.0.0 20150815 Copyright (C) 1985-2015 Intel Corporation. All rights reserved. }}} If you find missing packages in rockylinux-9.2.sif, please let us know.