Account
To access the IGBMC cluster, you must use your IGBMC IT account.
More information about how to manage your IGBMC IT account on Compte numérique IGBMC
Log in
On Linux/Mac, simply use ssh client like OpenSSH :
ssh <IGBMC login>@hpc.igbmc.fr
On Windows, you can use clients like PuTTY
Please see the Logging in page for further details.
Data
Storage
Several volumes of data storage are available on the IGBMC cluster.
Please see the Space2 service page for further details about scientific projects data storage
Transfer
SSH protocol (or SFTP - SSH File Transfer Protocol) is the only protocol available. But, you can use many clients to download your data from the cluster (scp, rsync, wget, ftp, etc.).
Software
To use softwares like blast, python, gcc, etc. we have to "load" them using module commands (Environment Modules):
- List available software :
module avail
- Load
blast
in your environment :module load blast
- Load a specific version :
module load blast/2.2.25
You can also use singularity or conda directly.
Please see the Conda or Singularity pages for further details
Submit a job
The computing works are done by submitting "jobs" to the workload manager Slurm.
You must use Slurm to execute your jobs.
1. Write a bash script
This script must contain your commands to execute. Many editors are available (see editors page). Here, inside myscript.sh
, we launch a bowtie
command and just print some truth.
#!/bin/bash
bowtie2 -x hg19 -1 sample_R1.fq.gz -2 sample_R2.fq.gz -S sample_hg19.sam
echo "Enjoy slurm ! It's highly addictive."
2. Add options and requirements
You can specify several options to your jobs (name, number of CPU, amount of memory, time limit, etc.). All this parameter take place in the beginning of the script with the #SBATCH
directive (just after the shebang #!/bin/bash). Here we specify the job name and the amount of memory required.
#!/bin/bash
#SBATCH --job-name=bowtie
#SBATCH --mem=40GB
bowtie2 -x hg19 -1 sample_R1.fq.gz -2 sample_R2.fq.gz -S sample_hg19.sam
echo "Enjoy slurm ! It's highly addictive."
3. Launch your job with sbatch
sbatch myscript.sh
The command return a jobid to identify your job. See more usefull information below (Slurm commands).
4. Follow your job
The status goes successively from PENDING (PD) to RUNNING (R) and finally COMPLETED (C) (and job disappear from the queue). So if your job is not displayed, your jobs is finished (with success or with error).
squeue
5. See output
The output of the script (standard output and standard error) is live written. Default output file is slurm-[jobid].out
in your working directory. And of course, if you have some result files like sample_hg19.sam
, these files will be available.
Notes
- All nodes have access to the data (/shared/home, /shared/space2 or /shared/genome).
- All softwares are available on the nodes, but we have to load them inside the script with command
module load [module]
. - All jobs are contained and can not use more resources than defined (CPU, memory).
- Jobs which exceed limits (memory or time, values by default or set) are killed.
- It’s possible to be connected on a compute node when a job is running (
ssh cpu-node-XX
).
Slurm commands
If you are used to PBS/Torque/SGE/LSF/LoadLeveler, refer to the Rosetta Stone of Workload Managers
- Submit a job:
sbatch myscript.sh
- Information on jobs:
squeue
- Information on my jobs:
squeue -u $USER
- Information on running job:
scontrol show job <jobid>
- Delete a job:
scancel <jobid>
Option |
---|
--job-name=demojob |
--time=01:00:00 |
--partition=long |
--nodes=N |
--cpus-per-task=N |
--mem=2GB--mem-per-cpu=2GB |
--exclusive |
--output=slurm-%j.out |
--workdir=/path/ |
--mail-user=email@address--mail-type=ALL |
Please see the SLURM user guide page for further details.
Don’t hesitate to have also a look at the sbatch official documentation
Script template
Just an example. Customize it to meet your needs.
#!/bin/bash################################ Slurm options #################################
### Job name
#SBATCH --job-name=demo_job
### Limit run time "days-hours:minutes:seconds"
#SBATCH --time=01:00:00
### Requirements
#SBATCH --partition=igbmc
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --mem-per-cpu=8GB
### Email
#SBATCH --mail-user=email@address
#SBATCH --mail-type=ALL
### Output
#SBATCH --output=/shared/home/<user>/demojob-%j.out
################################################################################
echo '########################################'
echo 'Date:' $(date --iso-8601=seconds)
echo 'User:' $USER
echo 'Host:' $HOSTNAME
echo 'Job Name:' $SLURM_JOB_NAME
echo 'Job Id:' $SLURM_JOB_ID
echo 'Directory:' $(pwd)
echo '########################################'
# modules loading
module load ...
# What you actually want to launch
echo 'Waooouhh. Awesome.'
echo '########################################'
echo 'Job finished' $(date --iso-8601=seconds)