Changes between Version 1 and Version 2 of cypress/glibc-version-problems


Ignore:
Timestamp:
06/09/23 13:43:08 (11 months ago)
Author:
fuji
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • cypress/glibc-version-problems

    v1 v2  
    1010}}}
    1111
    12 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.
     12Since 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.
    1313
    14 See the alternate solution below if your software requires a glibc version greater than 2.17.
     14See the alternate solution below if your software requires a glibc version greater than '''2.17'''.
    1515
    1616== Work with Singularity Images ==
    17 [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.
     17[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.
    1818
    19 === Run Singularity Images Interactively ===
     19=== Run Rockylinux Images Interactively ===
     20Start an interactive session with '''centos7''' partition.
     21{{{
     22 idev -t 8 --partition=centos7
     23}}}
     24Load Singularity module.
     25{{{
     26 module load singularity/3.9.0
     27}}}
     28Setup the environmental variables
     29{{{
     30 source /lustre/project/singularity_images/setup_cypress.sh
     31}}}
     32Run bash shell in Rockylinux Images,
     33{{{
     34 singularity shell -s /bin/bash /lustre/project/singularity_images/rockylinux-9.2.sif
     35}}}
     36You will get a command line prompt. Now the glibc version is '''2.34'''.
     37{{{
     38Apptainer> ldd --version
     39ldd (GNU libc) 2.34
     40Copyright (C) 2021 Free Software Foundation, Inc.
     41This is free software; see the source for copying conditions.  There is NO
     42warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     43Written by Roland McGrath and Ulrich Drepper.
     44}}}
     45
     46You 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.
    2047
    2148
     49=== Run Scripts on Rockylinux in Bachjob ===
     50An example Slurm script.
     51{{{
     52#!/bin/bash
     53#SBATCH --job-name=Singularity # Job Name
     54#SBATCH --partition=centos7    # Partition must be centos7
     55#SBATCH --qos=normal           # Quality of Service normal or long
     56#SBATCH --time=0-01:00:00      # Wall clock time limit in Days-HH:MM:SS
     57#SBATCH --nodes=1              # Node count required for the job
     58#SBATCH --ntasks-per-node=1    # Number of tasks to be launched per Node
     59#SBATCH --cpus-per-task=1     # Number of threads per task (OMP threads 1-20)
    2260
     61# Load Singularity module
     62module load singularity/3.9.0
     63
     64# Setup the environmental variables
     65SingularityImageDir=/lustre/project/singularity_images
     66source $SingularityImageDir/setup_cypress.sh
     67
     68# Run a command on RockyLinux
     69singularity exec $SingularityImageDir/rockylinux-9.2.sif gcc --version
     70}}}
     71The example above runs gcc --version on RockyLinux. Submitting job is the same as you usually do. (See [https://wiki.hpc.tulane.edu/trac/wiki/cypress/using#IntroductiontoManagedClusterComputing here].)
     72When the job is finished, the log file should contain the output from gcc --version command, which will be:
     73{{{
     74gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)
     75Copyright (C) 2021 Free Software Foundation, Inc.
     76This is free software; see the source for copying conditions.  There is NO
     77warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     78}}}
     79
     80
     81If you want to run a bash script, assuming 'my_script.sh' is in the current working directory, modify the above as
     82{{{
     83singularity run $SingularityImageDir/rockylinux-9.2.sif /bin/bash -l -c ./my_script.sh
     84}}}
     85
     86'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].)
     87{{{
     88chmod u+x my_script.sh
     89}}}
     90
     91For example, 'my_script.sh' is
     92{{{
     93#!/bin/bash
     94module load intel-psxe/2016
     95echo "Hello world from $0 running in ${SINGULARITY_NAME}"
     96pwd
     97date
     98icc --version
     99}}}
     100When the job is finished, the log file will have:
     101{{{
     102Hello world from ./my_script.sh running in rockylinux-9.2.sif
     103/home/userid/test
     104Fri Jun  9 13:21:01 CDT 2023
     105icc (ICC) 16.0.0 20150815
     106Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.
     107}}}
     108
     109If you find missing packages in rockylinux-9.2.sif, please let us know.