Vital-IT Users Training: HPC in Life Sciences

Similar documents
Parallel Processing using the LOTUS cluster

UMass High Performance Computing Center

Introduction to the SGE/OGS batch-queuing system

The RWTH Compute Cluster Environment

Streamline Computing Linux Cluster User Training. ( Nottingham University)

Using the Yale HPC Clusters

An Introduction to High Performance Computing in the Department

Vital-IT Storage Guidelines

Installing and running COMSOL on a Linux cluster

Grid Engine Basics. Table of Contents. Grid Engine Basics Version 1. (Formerly: Sun Grid Engine)

High Performance Computing Facility Specifications, Policies and Usage. Supercomputer Project. Bibliotheca Alexandrina

Introduction to Sun Grid Engine (SGE)

SGE Roll: Users Guide. Version Edition

Running Jobs with Platform LSF. Platform LSF Version 8.0 June 2011

Grid Engine Users Guide p1 Edition

How To Run A Tompouce Cluster On An Ipra (Inria) (Sun) 2 (Sun Geserade) (Sun-Ge) 2/5.2 (

Cluster Computing With R

1.0. User Manual For HPC Cluster at GIKI. Volume. Ghulam Ishaq Khan Institute of Engineering Sciences & Technology

High Performance Computing with Sun Grid Engine on the HPSCC cluster. Fernando J. Pineda

Batch Job Analysis to Improve the Success Rate in HPC

Miami University RedHawk Cluster Working with batch jobs on the Cluster

Getting Started with HPC

Enigma, Sun Grid Engine (SGE), and the Joint High Performance Computing Exchange (JHPCE) Cluster

Quick Tutorial for Portable Batch System (PBS)

Efficient cluster computing

SLURM: Resource Management and Job Scheduling Software. Advanced Computing Center for Research and Education

User s Manual

Grid 101. Grid 101. Josh Hegie.

SLURM Workload Manager

Kiko> A personal job scheduler

Introduction to Running Hadoop on the High Performance Clusters at the Center for Computational Research

PBS Tutorial. Fangrui Ma Universit of Nebraska-Lincoln. October 26th, 2007

Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC

Running Jobs with Platform LSF. Version 6.2 September 2005 Comments to:

GRID Computing: CAS Style

HPCC USER S GUIDE. Version 1.2 July IITS (Research Support) Singapore Management University. IITS, Singapore Management University Page 1 of 35

Grid Engine 6. Troubleshooting. BioTeam Inc.

Using the Yale HPC Clusters

Agenda. Using HPC Wales 2

Using WestGrid. Patrick Mann, Manager, Technical Operations Jan.15, 2014

How To Build A Supermicro Computer With A 32 Core Power Core (Powerpc) And A 32-Core (Powerpc) (Powerpowerpter) (I386) (Amd) (Microcore) (Supermicro) (

RWTH GPU Cluster. Sandra Wienke November Rechen- und Kommunikationszentrum (RZ) Fotos: Christian Iwainsky

NEC HPC-Linux-Cluster

Linux für bwgrid. Sabine Richling, Heinz Kredel. Universitätsrechenzentrum Heidelberg Rechenzentrum Universität Mannheim. 27.

SLURM: Resource Management and Job Scheduling Software. Advanced Computing Center for Research and Education

New High-performance computing cluster: PAULI. Sascha Frick Institute for Physical Chemistry

Introduction to Running Computations on the High Performance Clusters at the Center for Computational Research

Parallel Debugging with DDT

Introduction to Grid Engine

Partek Flow Installation Guide

The SUN ONE Grid Engine BATCH SYSTEM

Running on Blue Gene/Q at Argonne Leadership Computing Facility (ALCF)

Tutorial: Using WestGrid. Drew Leske Compute Canada/WestGrid Site Lead University of Victoria

Running applications on the Cray XC30 4/12/2015

Beyond Windows: Using the Linux Servers and the Grid

Informationsaustausch für Nutzer des Aachener HPC Clusters

Using NeSI HPC Resources. NeSI Computational Science Team

Installing Platform Product Suite for SAS (Windows)

Biowulf2 Training Session

NorduGrid ARC Tutorial

SAS Grid: Grid Scheduling Policy and Resource Allocation Adam H. Diaz, IBM Platform Computing, Research Triangle Park, NC

The CNMS Computer Cluster

Using Parallel Computing to Run Multiple Jobs

Maintaining Non-Stop Services with Multi Layer Monitoring

Introduction to HPC Workshop. Center for e-research

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Work Environment. David Tur HPC Expert. HPC Users Training September, 18th 2015

Quick Introduction to HPSS at NERSC

INF-110. GPFS Installation

Martinos Center Compute Clusters

High Performance Computing

How to Run Parallel Jobs Efficiently

Research Technologies Data Storage for HPC

Manual for using Super Computing Resources

Submitting batch jobs Slurm on ecgate. Xavi Abellan User Support Section

Hodor and Bran - Job Scheduling and PBS Scripts

Grid Engine. Application Integration

High-Performance Reservoir Risk Assessment (Jacta Cluster)

Installing IBM Websphere Application Server 7 and 8 on OS4 Enterprise Linux

Parallels Cloud Server 6.0

icer Bioinformatics Support Fall 2011

SGI. High Throughput Computing (HTC) Wrapper Program for Bioinformatics on SGI ICE and SGI UV Systems. January, Abstract. Haruna Cofer*, PhD

Introduction to Programming and Computing for Scientists

Module 6: Parallel processing large data

DiskPulse DISK CHANGE MONITOR

NYUAD HPC Center Running Jobs

LoadLeveler Overview. January 30-31, IBM Storage & Technology Group. IBM HPC Developer TIFR, Mumbai

High-Performance Computing

Transcription:

Vital-IT Users Training: HPC in Life Sciences Vital-IT Group, Lausanne Contact: projects@vital-it.ch Status: 29 January 2015

Objectives of this course Obtain basic knowledge on high throughput and high performance computing Learn how to use computer clusters at Vital-IT Tips and tricks for effective and efficient cluster usage 2, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing 3. Practical usage of life science HPC infrastructure 4. Vital-IT: Different storage systems and guidelines 3, HPC in Life Sciences

Motivation Set up a desktop machine (PC) with bioinformatics software Run e.g. tophat, BLAST, HMMER, velvet etc. on a small data set Possible? How long does it take? Run it against a larger data set, multiple genomes etc. Possible? How long does it take? Are we happy with the software/ hardware environment? Performance? Storage space? Maintenance? etc. 4, HPC in Life Sciences

Bioinformatics Competence Center http://www.vital-it.ch/ 5, HPC in Life Sciences

Missions To support research groups in biology and medicine To maintain and develop algorithms in life science To teach and liaise with embedded bioinformaticians (education in algorithm development and use of high performance computing environment) To keep active research inside Vital-IT, mainly through collaborations with partners To operate high productivity computational and storage resources http://www.vital-it.ch/about/activities.php 6, HPC in Life Sciences

Vital-IT Team http://www.vital-it.ch/about/team.php 7, HPC in Life Sciences

Vital-IT and Partner Resources in Switzerland Arc lemanic (3 clusters managed by Vital-IT team) UNIL, EPFL, UNIGE (>3500 processing cores) One login for all clusters; LSF for job submission Production usage is based on project approval! Linux CentOS 6.4, parallel file system, large storage archive University of Berne Operated by Uni Berne Informatikdienste UBELIX (http://www.ubelix.unibe.ch/) ~1200 cores; SGE for jobs submission Vital-IT software + databases are available in collaboration with Vital-IT 8, HPC in Life Sciences

Vital-IT and Partner Resources in Switzerland EPFL UNIL UNIGE 9, HPC in Life Sciences

Resources on the Vital-IT Web Site CPU cores 10, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing Compute Cluster Parallelism 3. Practical usage of life science HPC infrastructure 4. Vital-IT: Different storage systems and guidelines 11, HPC in Life Sciences

A typical compute cluster Usually, a cluster consists of Front-end machine where users log in and submit jobs Compute nodes (also called worker nodes or hosts) where the actual computation takes place Typically, one is not allowed to log into compute nodes Specialized software for submitting jobs to compute nodes, also referred to as Local Resource Management System (LRMS) or batch system LSF (Load Sharing Facility) Vital-IT (UNIL/EPFL/UNIGE) SGE (Sun/Oracle Grid Engine) Uni Berne (UBELIX) etc. 12, HPC in Life Sciences

A typical compute cluster (cont.) LSF: UNIL, EPFL, UNIGE login node (front-end) Local Resource Management System SGE: Uni Berne host host compute nodes host Several processing cores (CPUs) per host. A host is identified by a single host name. 13, HPC in Life Sciences

When should I use a cluster? An application runs too long on a single PC and takes too much CPU Just run the single job on a cluster The problem (input data) can be split into pieces which can be executed in parallel Data splitting and final merging Parameter sweep: only some input parameters are changed but the same application is executed several times 14, HPC in Life Sciences

Bioinformatics examples NGS, genome analysis (data intensive) tophat, bowtie, velvet, abyss, Solexa GA-Pipeline etc. Sequence search and alignment BLAST, HMMER etc. Molecular dynamics NAMD, GROMACS, CHARMM etc. Computational phylogeny Phylip, PAML, BEAST, RAxML etc. Protein identification X!Tandem, Mascot etc. 15, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing Compute Cluster Parallelism 3. Practical usage of life science HPC infrastructure 4. Vital-IT: Different storage systems and guidelines 16, HPC in Life Sciences

High Performance/Throughput Computing: run things in parallel Embarrassingly parallel Massively parallel Jobs run independently Multiple results are produced Communication, synchronisation classic HPC, uses MPI on supercomputers 17, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing 3. Practical usage of life science HPC infrastructure - Vital-IT UNIL/EPFL/UNIGE infrastructure overview - Concrete cluster usage 4. Vital-IT: Different storage systems and guidelines 18, HPC in Life Sciences

Using the Vital-IT Cluster at UNIL In fact, there are two clusters! Production cluster (prd.vital-it.ch front-end / login node) More than 2000 CPUs on more than 140 compute nodes This login node is visible on the Internet (register your IP address to see this machine) Development cluster (dev.vital-it.ch front-end / login node) 2 compute nodes This cluster is not visible on the Internet Hardware environment is rather homogeneous Based on Intel s Xeon architecture http://www.vital-it.ch/prdpub/ganglia-webfrontend/ No computation/extensive CPU usage on prd/dev frontends! If you need to compile and test code, please do it on dev. 19, HPC in Life Sciences

How to login to Vital-IT s clusters UNIL (Uni Lausanne) ssh prd.vital-it.ch ssh dev.vital-it.ch EPFL ssh frt.el.vital-it.ch UNIGE (Uni Geneva) ssh frt.ug.vital-it.ch 20, HPC in Life Sciences

Vital-IT Production Cluster Status Example http://www.vital-it.ch/prdpub/ganglia-webfrontend/ 21, HPC in Life Sciences

How do we get >2000 CPUs on the UNIL/Prod Cluster (~150 hosts)? Host name Archit. CPUs Speed RAM total cpt037-cpt100 Intel 8 3 GHz 16 GB 64 * 8 = 512 cpt133-cpt148 Intel 4 3 GHz 16 GB 16 * 4 = 64 cpt149-164 Intel 4 3 GHz 8 GB 16 * 4 = 64 (165,166,181-184,186)* AMD 64 2.3 GHz 512 GB 7 * 64 = 448 cpt187, 188 AMD 48 2.3 GHz 256 GB 2 * 48 = 96 cpt197-228 Intel 8 2.8 GHz 16 GB 32 * 8 = 256 dee-cpt01-08 Intel 16 2.5 GHz 24 GB 8*16 = 128 Not all CPUs are available all the time! 22, HPC in Life Sciences Need clever software for selecting suitable compute node. (Local Resource Management System) *Priority/reserved for some UNIL groups

Large memory machines rserv.vital-it.ch AMD, 8 cores, 64 GB RAM rserv01.vital-it.ch AMD, 64 cores, 256 GB RAM Usage policies: Dedicated to the memory-intensive jobs LSF cannot be used to submit jobs to this machine Use direct ssh connections to the machine (from prd) Other machines with 256 GB and 512 GB RAM restricted access Intel and AMD Opteron (incl. GPUs for specific projects) EPFL/UNIGE clusters: min. 128 GB RAM 23, HPC in Life Sciences

How to use the cluster Linux terminal interface UNIX knowledge is essential ssh access to front-end only No need to select a compute node yourself We have LSF (Load Sharing Facility) that Knows about all compute nodes Accepts user jobs Submits jobs to a compute node Knows about status of jobs 24, HPC in Life Sciences

LSF (Load Sharing Facility) login node (front-end) prd.vital.it (LSF client) LSF Server cpt037 compute nodes cpt141 compute nodes cpt191 25, HPC in Life Sciences

Jobs and Queues Every program to be executed on a cluster needs to be defined as a job with a job description: Executable, input data, output data, etc. Job characteristics (CPU, memory, architecture etc.) Priorities and run time limitations Queues are used to classify jobs Different queues for different priorities/running times normal, long, priority, etc. Job states: pending, running, suspended, done, exit (usually refers to an error) 26, HPC in Life Sciences

Vital-IT UNIL s main LSF queues in detail queue$name$ (me$limit$ max.$jobs$ simultan.$ max.$cpus$per$ job$ Default$RAM$ in$gb$ $ priority$ normal' default(queue( 24'hours' 150' 64' 2' medium' long' 10'days' 64' 16' 2' low' priority' 60'min' (interact.( jobs)( keep(it( low ( moderate'' 2' high' Beyond'this':me' limit,'jobs'might' be'killed.' 27, HPC in Life Sciences That s'the'max.'number' of'jobs'a'single'user''can' ac:vely'run'at'any'given' :me.' Parallel' execu:ons'per' job.' Each'CPU'is'shared' (poten:ally'with'other'users).' One'cannot'reserve'a'single' CPU'for'a'single'job.' Jobs'with'higher'priority'are' treated'first'(preemp:ve' jobs)'

LSF queues at EPFL and UNIGE Similar queues/setup but machines have more cores and more memory EPFL 16 hosts, 48 CPUs (cores) each Queue$ RAM$ default$ RAM$$ max$ normal' 2'GB' 128'GB' long' 2'GB' 128'GB' priority' 2'GB' 64'GB' UNIGE 19 hosts, 48 CPUs (cores) each Queue$ RAM$ default$ RAM$$ max$ normal' 2'GB' 238'GB' long' 2'GB' 57'GB' priority' 2'GB' 57'GB' interac:ve' 2'GB' 238'GB' 28, HPC in Life Sciences

Usage hints basic overview Which queue should I use? Try to estimate overall processing time Potentially, test with priority queue for short and interactive jobs Where to write data/results? /scratch/cluster/[daily weekly monthly]/userid OR /scratch/local/[daily weekly]/userid Please don t write to /home/ if job runs on cluster! Directories are shared between all compute nodes Shared file systems (except /scratch/local!) Where to archive (long term storage)? There is an archive system More'details'on' storage'will'be' given'later' 29, HPC in Life Sciences

Which version of the software + database? You always need to know which software version and database version you use Version might change over time! Might make all your experiments invalid! Always check version before you start experiments Don t rely on default installations blindly Verify again and again! $ bowtie2 --version version 2.1.0 30, HPC in Life Sciences

Applications (bioinformatics software tools) http://www.vital-it.ch/support/tools.html Many applications are installed Specific version needs to be selected explicitly e.g. bwa-0.7.5a 31, HPC in Life Sciences

Accessing Vital-IT Software General convention: /software/<category>/<package>/<version>/ <category> scientific/technical category such as UHTS, Phylogeny, LC- MS-MS, Development, etc. <package> is the general name of the software package <version> version of the package incl. different compiler/architecture names if needed. /software/uhts/aligner/bowtie2/2.2.1 /software/uhts/quality_control/fastqc/0.10.1 /software/phylogeny/paml/4.5 /software/development/java_jre/1.8.0_05 /software/r/3.0.2 /software/bin/gcc 32, HPC in Life Sciences

Activate package: module avail add rm Check what is available (not necessarily activated!) module avail Activate (add) a specific software tool to PATH module add UTHS/Quality_control/fastqc/0.10.0 Check what is activated module list Deactivate (remove) a software tool module rm UHTS/Quality_control/fastqc/0.10.0 33, HPC in Life Sciences

Accessing Vital-IT Software [vioannid@frt ~]$ vit_soft case'insensi:ve'search' Missing argument Tool to retrieve information about Vital-IT software (version: 0.0.5) Usage: vit_soft -search=<uvw> vit_soft -package=<xyz> vit_soft -module=<xyz> vit_soft -binary=<abc> vit_soft -latest vit_soft -help Text search for packages (c.i.) Get package information Get module command for a package Search package providing this binary Get latest installed packages More details 34, HPC in Life Sciences

Accessing Vital-IT Software vit_soft -s tie VitalIT-Utilities-1.0.1-1.x86_64 perl-tie-toobject-0.03-1.x86_64 perl-tie-ixhash-1.22-1.el5.centos.noarch perl-html-entities-numbered-0.04-1.x86_64 bowtie2-2.2.1-1.x86_64 bowtie2-2.1.0-1.x86_64 bowtie2-2.0.0beta6-2.x86_64 bowtie-0.12.9-1.x86_64 Same'as:' vit_sow'' search':e' vit_soft -m bowtie2 module add UHTS/Aligner/bowtie2/2.2.1 module add UHTS/Aligner/bowtie2/2.1.0 module add UHTS/Aligner/bowtie2/2.0.0beta6 Same'as:' vit_sow' module'bow:e2' 35, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing 3. Practical usage of life science HPC infrastructure - Vital-IT UNIL/EPFL/UNIGE infrastructure overview - Concrete cluster usage - Using UBELIX + Vital-IT software 4. Vital-IT: Different storage systems and guidelines 36, HPC in Life Sciences

LSF command line client Interact with LSF queue using the following basic commands: bsub submit job bjobs obtain job status bkill kill job Other useful commands bswitch move job to another queue bhist historical information on job bpeek display std. output/error of unfinished job bqueues information about available queues 37, HPC in Life Sciences

Basic LSF example (1) Example command we want to execute: blastall -p blastp -d "swiss" -i p123456.seq Write a shell script (job description) blast.sh: #!/bin/bash blast.sh #BSUB -L /bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt standard'output(is'redirected' to'a'file'indicated'by'yo' standard'error'indicated'by'ye' blastall -p blastp -d "swiss" -i p123456.seq 38, HPC in Life Sciences

Basic LSF example (2) ''Submit'job' ' Note'the' < 'sign!' bsub <./blast.sh Job <870965> is submitted to queue <normal>. ''Check'status' ' Job'ID'that'uniquely' iden:fies'a'job' bjobs 870965 JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 870965 user007 RUN normal frt cpt204 *23456.seq Nov 16 16:40 bjobs No unfinished job found ls blast-error.txt blast-output.txt Result'is'ready'if'job'is'no' longer'displayed.' Note:'bjobs'without'job' ID'displays'informa:on'on' all'of'your'ac:ve'jobs.' ' 39, HPC in Life Sciences

Basic LSF example (3) bjobs 870965 If'job'ID'is'used'explicitly,'also'the' DONE'status'is'shown.' JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 870965 user007 DONE normal frt cpt204 *23456.seq Nov 16 16:40 bjobs a Info'about'all'jobs'(running'and'finished).' Only'available'for'a'few'hours!' JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 884535 user007 DONE normal frt cpt129 *;hostname Nov 17 11:17 884538 user007 DONE normal frt cpt129 *;hostname Nov 17 11:18 884568 user007 DONE normal frt cpt014 *simple.sh Nov 17 11:22 884595 user007 DONE normal frt cpt194 *23456.seq Nov 17 11:28 884633 user007 EXIT normal frt cpt014 *stderr.sh Nov 17 11:34 884657 user007 DONE normal frt cpt005 *stderr.sh Nov 17 11:37 40, HPC in Life Sciences

Where to write results, store files Location for input files and results (output files): /scratch/ Location for scripts /home/<userid> or /scratch/ 41, HPC in Life Sciences

How do we apply that to our basic example? Script to launch blastall /home/user007/blast.sh Create directory in /scratch mkdir /scratch/cluster/weekly/user007 Change working directory to /scratch cd /scratch/cluster/weekly/user007 Launch job with reference to blast.sh in home directory bsub < /home/user007/blast.sh 42, HPC in Life Sciences Please'do'that'for'(all)'your'jobs!' Other'op:ons'to'write'into'/scratch?'

LSF example define a job name Give a job a meaningful name #!/bin/bash #BSUB -L /bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt #BSUB -J blastp blastall -p blastp -d "swiss" -i p123456.seq blast-with-jobname.sh bjobs JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 885321 user007 DONE normal frt cpt129 blastp Nov 17 14:00 43, HPC in Life Sciences

LSF example use job ID in output file name Distinguish jobs and files #!/bin/bash #BSUB -L /bin/bash #BSUB -o blast-%j-output.txt #BSUB -e blast-%j-error.txt blastall -p blastp -d "swiss" -i p123456.seq blast-with-jobid.sh bsub <./blast-with-jobid.sh Job <885626> is submitted to default queue <normal>. $ls *.txt blast-885626-error.txt blast-885626-output.txt 44, HPC in Life Sciences

LSF example e-mail notification Receive an e-mail when job has finished Includes CPU usage information (timing) etc. #!/bin/bash #BSUB -L /bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt #BSUB -u MyEmail@example.org #BSUB -N blastall -p blastp -d "swiss" -i p123456.seq blast-with-email.sh See example e-mail on next slide 45, HPC in Life Sciences

. Your job looked like: ------------------------------------------------------------ # LSBATCH: User input #!/bin/bash eamail$is$sent$by$lsf$server$ #BSUB -L /bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt #BSUB u MyEmail@example.org #BSUB -N Job'descrip:on' blastall -p blastp -d "swiss" -i p123456.seq ------------------------------------------------------------ Successfully completed. Resource usage summary: CPU time : 2.44 sec. Max Memory : 1 MB Max Swap : 15 MB Job'status' Resource'usage' (performance' informa:on)' Max Processes : 1 Max Threads : 1 Read file <blast-output.txt> for stdout output of this job. Read file <blast-error.txt> for stderr output of this job. 46, HPC in Life Sciences Informa:on'on'output'and' error'files.'

Interactive Job Job output is displayed on the terminal rather than written into a file Gives impression that job is executed on the local machine Waits until job has finished echo "The hostname is... " hostname bsub -I <./simple.sh Job <886075> is submitted to default queue <normal>. <<Waiting for dispatch...>> <<Starting on cpt194>> The hostname is... cpt194 simple.sh 47, HPC in Life Sciences

Interactive Job with X11-forwarding Jobs with a graphical display can be used in interactive mode graphical interface can be displayed (forwarded) on log-in node (ssh X) #!/bin/bash #BSUB -L /bin/bash #BSUB -o output.txt #BSUB -e error.txt #BSUB -J interact #BSUB -XF xterm beast terminal'type' X11-forwarding.sh 48, HPC in Life Sciences

Processes, threads, multitasking A process is an executing - or running - program identified by a unique process identifier (PID). Looking closer, a process is some kind of entity - sometimes referred to as an "allocation unit" - that comprises several things, such as the running program, a reserved space in memory, temporary data, etc. A thread is a 'light weight' process - or "unit of execution" - that is contained in a process. It uses the same environment as the process it belongs to - PID, memory, data, etc. Each process has one or more threads but each thread belongs to one process only! 49, HPC in Life Sciences

Processes, threads, multitasking Long ago in computer age a computer contained one central processing unit CPU. One machine 1 CPU / 1 core On such a computer, only ONE process is active at a time. And for processes with several threads, only ONE thread is active at a time even if we get the impression that several threads run in parallel. Indeed, the CPU switches very fast between the threads - some CPU time is given to process one, then some CPU time is given to process two, etc. until the all the processes have completed - which gives the impression that they "kind of run in parallel". 1 process With 4 threads All the threads run sequentially. Thus, the total execution time is the sum of the time needed to complete all four threads individually. 50, HPC in Life Sciences

Processes, threads, multitasking Based on the fact that '1 thread -> 1 CPU', engineers have multiplied the CPU - or cores (*) to allow multiple threads to run simultaneously. One machine 4 CPUS / 4 cores This means also, that the more cores there are, the more threads can be executed at the same time - for real this time! (*) Cores and CPU are not exact synonyms. Actually, the execution parts of the CPU were duplicated and reorganized into 'cores'. Thus, a CPU can contain one or more cores - bi-core, quadri-core, etc. 1 process With 4 threads All the threads run at the same time - in parallel. Thus the total execution time is the time needed to complete one thread - assuming they take the same time to complete. 51, HPC in Life Sciences

Multi-threaded jobs (1 thread per core) By default, LSF reserves 1 core (CPU) per job Multi-threaded jobs need to request more cores on the same host (machine)! #!/bin/bash #BSUB -L /bin/bash #BSUB -o output.txt #BSUB -e error.txt #BSUB -n 4 #BSUB R "span[ptile=4]" 4'CPU'cores'(processors)' requested' 4'cores'on'the'same' host!' myprogram --threads=4 52, HPC in Life Sciences

Resource/memory requirements Job can explicitly require certain hardware resources such as RAM (main memory), swap space, etc. 2 GB RAM max per default! #!/bin/bash #BSUB -L /bin/bash #BSUB -o output.txt #BSUB -e error.txt #BSUB R "rusage[mem=4096]" #BSUB -M 4194304 hostname Required'memory'in'MB# (at'scheduling':me)' Required'memory'in'KB# (at'job'run':me)' mem-requirement.sh 53, HPC in Life Sciences

Cluster resources (lsload) temp. space /scratch/local RAM (main memory) 54, HPC in Life Sciences

Memory requirement and multi-core Request a multi-core job that needs lots of memory (e.g. 40 GB on one machine) #!/bin/bash #BSUB -L /bin/bash #BSUB -o output.txt #BSUB -e error.txt #BSUB -J mem-mult #BSUB -n 4 #BSUB -R "span[ptile=4]" #BSUB -R "rusage[mem=40000]" #BSUB -M 40194304./myprogram1 mem-multicore.sh 55, HPC in Life Sciences

Request/use local disk on compute node 10 GB at scheduling time (select) 6 GB at run time (rusage) Clean up directory yourself! #!/bin/bash #BSUB -L /bin/bash #BSUB -o output.txt #BSUB -e error.txt #BSUB -J localdisk #BSUB R "select[tmp>$((10*1024))]" #BSUB -R "rusage[tmp>$((6*1024))]" mkdir /scratch/local/daily/mydir [ ] rm rf /scratch/local/daily/mydir 56, HPC in Life Sciences

Check the availability of compute nodes lshosts -R "select[maxmem=400000]" HOST_NAME type model cpuf ncpus maxmem maxswp server RESOURCES cpt165 X86_64 Opteron8 60.0 64 524237M 31999M Yes () cpt166 X86_64 Opteron8 60.0 64 524237M 31999M Yes () cpt181 X86_64 Opteron8 60.0 64 524237M 31999M Yes () cpt182 X86_64 Opteron8 60.0 64 524237M 31999M Yes () cpt183 X86_64 Opteron8 60.0 64 524237M 31999M Yes () cpt184 X86_64 Opteron8 60.0 64 524237M 31999M Yes () cpt186 X86_64 Opteron8 60.0 64 524237M 31999M Yes () Memory'size' Installed'in'host' 57, HPC in Life Sciences

Big'memory'requirements' will'rapidly'decrease'the'list' of'poten:al'execu:on'hosts.' Check the availability of compute nodes lsload -R "select[maxmem=400000]" HOST_NAME status r15s r1m r15m ut pg ls I t tmp swp mem Cpt165 ok 0.0 0.0 0.0 0% 0.0 1 3998 1006G 31G 500G Cpt182 ok 23.3 22.8 23.4 37% 0.0 1 94 505G 31G 336G cpt186 ok 26.6 24.9 25.4 43% 0.0 0 24304 1004G 31G 305G cpt183 ok 26.8 25.3 25.4 41% 0.0 0 5592 1003G 31G 245G cpt184 ok 27.1 25.4 26.1 44% 0.0 0 5496 1004G 31G 318G cpt181 ok 28.2 26.5 26.4 44% 0.0 0 24304 1004G 31G 310G cpt166 ok 32.8 33.9 36.4 53% 0.0 0 2388 778G 30G 402G lsload -R "select[mem=400000]" Current'available' memory' HOST_NAME status r15s r1m r15m ut pg ls it tmp swp mem cpt165 ok 0.0 0.0 0.0 0% 0.0 1 3998 1006G 31G 500G cpt166 ok 36.7 34.2 36.4 54% 0.0 0 2388 778G 30G 401G 58, HPC in Life Sciences

Check the availability of compute nodes lshosts gives information about hosts hardware specs lsload gives information about hosts current available resources (maxmem, mem, tmp, status, swp, etc.) 59, HPC in Life Sciences

Status pending for resource-hungry jobs If job is pending for a long time, use option p or -l to get more info why it is pending: bjobs'yp'164498' JOBID'''USER''''STAT''QUEUE''''''FROM_HOST'''EXEC_HOST'''JOB_NAME''' SUBMIT_TIME' 164498''userid'PEND''normal'''''frt'''''''''''''''''''''testjob''''May''4'09:59' 'Closed'by'LSF'administrator:'15'hosts;' 'Not'specified'in'job'submission:'52'hosts;' 'Job'requirements'for'reserving'resource'(mem)'not'sa:sfied:'95' hosts;' 'Load'informa:on'unavailable:'3'hosts;' 'Just'started'a'job'recently:'2'hosts;' '' 60, HPC in Life Sciences

Job runs too long: move it to another queue By default, jobs in the normal queue can run for 24 hours If you see that it might need to run longer, move the job to the long queue bjobs JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 85613 testuse RUN normal frt.el.vita cpt16.el.vi lsftest Dec 7 12:10 bswitch long 85613 Job <85613> is switched to queue <long> 61, HPC in Life Sciences

Array Job: submit the same job multiple times Motivation/example: My simulation software mysim needs to be executed 20 times Submit a single job rather than 20 individual ones #!/bin/bash Index$in'job'array' #BSUB -L /bin/bash #BSUB -J array[1-20] #BSUB -o array-output-%j-%i.txt #BSUB -e array-error-%j-%i.txt array-job.sh run-mysim --seed=$lsb_jobindex Job'ID$ 62, HPC in Life Sciences

Job arrays (cont.) bjobs JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 832999 user007 RUN normal frt cpt130 array[16] Mar 8 11:55 832999 user007 RUN normal frt cpt101 array[9] Mar 8 11:55 832999 user007 RUN normal frt cpt119 array[2] Mar 8 11:55 832999 user007 RUN normal frt cpt127 array[4] Mar 8 11:55 832999 user007 RUN normal frt cpt106 array[3] Mar 8 11:55 832999 user007 RUN normal frt cpt131 array[1] Mar 8 11:55 832999 user007 RUN normal frt cpt140 array[10] Mar 8 11:55 832999 user007 RUN normal frt cpt138 array[12] Mar 8 11:55 832999 user007 RUN normal frt cpt139 array[15] Mar 8 11:55 Nota bene: The same program will be executed multiple times Be careful when you write output files: Need to be sub-job specific $LSB_JOBINDEX env. var can be used in script $LSB_JOBID for entire job array! 63, HPC in Life Sciences

Pitfalls with LSF (1) bsub./blast.sh If'you'forget'to'use' <,'the'job' output$is$sent$via$eamail!$ ' Correct'command:' bsub <./blast.sh Job <886355> is submitted to default queue <normal>. bjobs 886355 JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 886355 hstocki DONE normal frt cpt187./blast.sh Nov 17 16:34 ls blast.sh p123456.seq Job'output'is'not'available'even'if'the'job' seems'to'have'finished'correctly.'' 64, HPC in Life Sciences

Pitfalls with LSF (2) #!/bin/bash #BSUB -L /bin/bash #BSUB -e blast-error.txt blastall -p blastp -d "swiss" -i p123456.seq blast-woo.sh bsub <./blast-woo.sh If'standard'output'is'not' men:oned,'it'will'not'be'created' in'file'system'but'sent'via'eymail' (with'delay)!'add:' ' #BSUB -o blast-output.txt ' 65, HPC in Life Sciences

Pitfalls with LSF (3) By default, email notifications are sent to mailbox connected to UNIX user id: userid@cptxxx.prdclst.vital-it.ch Need to explicitly mention different e-mail address YN'is'missing'to' explicitly'evoke' no:fica:on!' #!/bin/bash #BSUB -L /bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt #BSUB -u MyEmail@example.org blastall -p blastp -d "swiss" -i p123456.seq blast-with-email2.sh 66, HPC in Life Sciences

Further information LSF commands man pages (man bsub, man bjobs etc.) All commands http://www.vital-it.ch/support/lsf/print/lsf_command_ref.pdf Infrastructure, cluster status, software, support etc. http://www.vital-it.ch 67, HPC in Life Sciences

Vital-IT Helpdesk If you have project-related questions on how to use Vital-IT software etc., please send e-mail to: projects@vital-it.ch Try to be as specific as possible when asking a question/reporting a problem so it can be reproduced. Please specify: Machine/cluster Software package (command you used) + version Input data and directory where you worked Output/error you have received Copy/paste command used + full error message 68, HPC in Life Sciences

Summary: what can you expect from Vital- IT and the team? High performance cluster, i.e. hardware and software infrastructure Wide range of bioinformatics applications New applications can be added on request Expertise in several domains of biology, bioinformatics and computer science (IT) The Vital-IT team Can help you prepare and run your project on the cluster but cannot solve all questions related to all software applications! 69, HPC in Life Sciences

"New applications can be added on request" The Vital-IT team is making every effort to answer all requests as soon as possible. However: creation of accounts may take several days installation of new software takes 1-2 weeks (but can take more if the software is complex) Vital-IT expects you to help testing the application that you requested to install 70, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing 3. Practical usage of life science HPC infrastructure - Vital-IT UNIL/EPFL/UNIGE infrastructure overview - Concrete cluster usage - Using UBELIX + Vital-IT software 4. Vital-IT: Different storage systems and guidelines 71, HPC in Life Sciences

SGE (Sun/Oracle Grid Engine) login node (front-end) submit.unibe.ch SGE client SGE Server cnode01 compute nodes dnode03 compute nodes fnode02 72, HPC in Life Sciences

LSF vs SGE (UBELIX) main difference Task$ LSF$ SGE$ Submit'job' bsub' qsub' Check'status' bjobs' qstat' Cancel/Kill'job' bkill' qdel' 73, HPC in Life Sciences

LSF vs SGE (UBELIX) main difference LSF: bsub < blast.sh #!/bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt module add Blast/ncbi-blast/2.2.29+ blastall -p blastp -d "swiss" -i p123456.seq SGE: qsub sge-blast.sh #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd #$ -o blast-output.txt #$ -e blast-error.txt module load vital-it module add Blast/blast/2.2.26 blastall -p blastp -d "swiss" -i p123456.seq Star:ng'12'February'2015:' module'load 'is'now'mandatory!' 74, HPC in Life Sciences

Compute nodes on UBELIX Note the difference of architecture (Intel/AMD), number of cores, RAM etc. Total: 2288 processing cores ~8 TB RAM ~300 TB disk space (shared file system) disks mentioned above are local disks! 75, HPC in Life Sciences

Storage on UBELIX Not available from compute nodes! *2 TB per user, 15 TB per group may be extended by contacting grid-admin@id.unibe.ch ** quota can be requested when submitting job 76, HPC in Life Sciences

UBELIX SGE queues in detail queue$name$ (me$limit$ max.$jobs$ simultaneously$ max.$cpus$ per$job$ priority$ all.q' default(queue( 360'hours' ='15'days' 150' 8' medium' short.q' 1'hour' 30' 8' high' mpi.q' 360'hours' ='15'days' 200' 128' medium' Beyond'this':me' limit,'jobs'might' be'killed.' 77, HPC in Life Sciences That s'the'max.'number' of'jobs'a'single'user''can' ac:vely'run'at'any'given' :me'(limited'also'by' CPUs/job).' Parallel'execu:ons' per'job.' (MPI:'If'128'CPUs/ job,'only'1'job'is' possible.'if'64' CPUs/job,'max'3' jobs.)' Each'CPU'is'shared' (poten:ally'with'other'users).' One'cannot'reserve'a'single' CPU'for'a'single'job.' Jobs'with'higher'priority'are' treated'first'(preemp:ve' jobs)'

In summary: SGE command line client Interact with SGE queue using the following basic commands: qsub submit job qstat obtain job status (qacct) qdel delete/kill job UBELIX web site: hqp://www.ubelix.unibe.ch/' 78, HPC in Life Sciences

Before we start: let s set the environment Environment on cluster nodes is different to login node Need to explicitly set paths That is particularly required for certain Vital-IT applications and databases (/mnt/local/bin for applications) # Set PATH export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib" for i in /mnt/common/etc/profile.d/*.sh; do if [ -x $i ]; then. $i; fi; done 79, HPC in Life Sciences

Basic SGE example (1) Example command we want to execute: blastall -p blastp -d "swiss" -i p123456.seq Write a shell script (job description) sge-blast.sh sge-blast.sh #!/bin/bash # Set PATH [ ] (see previous slide) #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd CPU':me'requirement'(REQUIRED)$ memory'requirement'(required)$ current'working'directory' blastall p blastp -d "swiss" -i p123456.seq 80, HPC in Life Sciences

Basic SGE example (2) ''Submit'job' ' qsub blast.sh Your job 3754029 ( sge-blast.sh") has been submitted ''Check'status' ' Job'ID'that'uniquely' iden:fies'a'job' qstat job-id prior name user state submit/start at queue -------------------------------------------------------------------------------- 3754030 0.00000 sge-blast.sh userid qw 02/01/2012 11:56:05 qstat ls 3754030.err 3754030.out Result'is'ready'if'job'is' no'longer'displayed.' ' 81, HPC in Life Sciences

Basic SGE example (3) qacct j 870965 qname short.q hostname cnode02.ubelix.unibe.ch group groupid owner userid [ ] qsub_time Wed Feb 1 11:56:05 2012 start_time Wed Feb 1 11:56:18 2012 end_time Wed Feb 1 11:56:20 2012 granted_pe NONE slots 1 failed 0 exit_status 0 ru_wallclock 2 [ ] cpu 2.196 mem 0.428 io 0.000 iow 0.000 maxvmem 320.426M arid 82, HPC in Life Sciences undefined

SGE example define a job name Give a job a meaningful name #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd #$ -N blastp blastall -p blastp -d "swiss" -i p123456.seq sge-blast-with-jobname.sh qstat job-id prior name user state submit/start at queue --------------------------------------------------------------------------------- 3754228 0.00000 blastp userid qw 02/01/2012 12:13:22 83, HPC in Life Sciences

SGE example redirect output/error Write stdout and stderr in specific files #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd #$ -o blast-output.txt #$ -e blast-error.txt standard'output(is'redirected' to'a'file'indicated'by'yo' standard'error'indicated'by'ye' blastall -p blastp -d "swiss" -i p123456.seq sge-blast-redirect.sh ls blast-output.txt blast-error.txt 84, HPC in Life Sciences

SGE example use job ID in output file name Distinguish jobs and files #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd #$ -o $JOB_ID-output.txt #$ -e $JOB_ID-error.txt blastall -p blastp -d "swiss" -i p123456.seq echo "My JobID was $JOB_ID" sge-blast-with-jobid.sh cat 3754473-output.txt My JobID was 3754473 85, HPC in Life Sciences

SGE example e-mail notification Receive an e-mail when job has finished Includes CPU usage information (timing) etc. #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd #$ -M MyEmal@example.org #$ -m e b' 'beginning'of'job' e' 'end' a' 'aborted' s' 'suspended' blastall -p blastp -d "swiss" -i p123456.seq sge-blast-with-email.sh See example e-mail on next slide 86, HPC in Life Sciences

eamail$is$sent$by$sge$server$$ (root,$gridamonitor@id.unibe.ch)$ Job 3755460 (blast-with-email.sh) Complete User = userid Queue = short.q@cnode03.ubelix.unibe.ch Host = cnode03.ubelix.unibe.ch Start Time = 02/01/2012 14:22:33 End Time = 02/01/2012 14:22:35 User Time = 00:00:01 System Time = 00:00:00 Wallclock Time = 00:00:02 CPU = 00:00:02 Max vmem = 320.426M Exit Status = 0 87, HPC in Life Sciences

SGE Array Job: submit the same job multiple times Motivation/example: My simulation software mysim needs to be executed 10 times Submit a single job rather than 10 individual ones #!/bin/bash #$ -t 1-10 #$ -l h_cpu=24:00:00 #$ -l h_vmem=100m #$ -cwd #$ -N array-job Index/Task$in'job'array' echo "Task $SGE_TASK_ID out of 10 mysim --seed $SGE_TASK_ID sge-array-job.sh 88, HPC in Life Sciences

Job arrays (cont.) qstat job-id prior name user state submit/start at queue slots ja-task-id --------------------------------------------------------------------------------- 375 0.94978 array-job userid r 02/01/2012 15:59:18 all.q@cnode45 1 3 375 0.48058 array-job userid t 02/01/2012 15:59:18 all.q@cnode45 1 4 375 0.32416 array-job userid r 02/01/2012 15:59:18 all.q@dnode17 1 5 375 0.24594 array-job userid qw 02/01/2012 15:58:49 1 6-10:1 Same job ID for all tasks! 89, HPC in Life Sciences

Resource requirements Job can explicitly require certain hardware resources such as RAM (main memory), swap space, etc. #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd echo "hostname" hostname xk'(kb),'xm'(mb)','xg'(gb)' ' 90, HPC in Life Sciences

Resource requirements: local disk space Usage of scratch space $TMP #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -l scratch=1 #$ -l scratch_size=1g #$ -l scratch_files=1 mkdir $TMP/hallo cd $TMP/hallo/ pwd ls -l $TMP/hallo xk'(kb),'xm'(mb),'xg'(gb)' sge-scratch-space.sh cat scratch-space.sh.o3756586 /scratch/local/3756586.1.all.q/hallo total 0 91, HPC in Life Sciences

Multi-threaded jobs (1 thread per core) By default, SGE reserves 1 core (CPU) per job Multi-threaded jobs need to request more cores (slots) #!/bin/bash #$ -l h_cpu=01:00:00 #$ -l h_vmem=1g #$ -cwd #$ -pe smp 4./pthread-4 4'CPU'cores'(processors)'requested' ' pe=programming'environment' smp=symmetric'mul:'processing' ' sge-4-threads.sh job-id prior name user state submit/start at queue slots --------------------------------------------------------------------------------------------- 3772866 0.85538 sge- userid r 02/03/2012 10:06:33 mpi.q@enode13.ubelix.unibe.ch 4 92, HPC in Life Sciences

Fribourg Bern: additional cluster in Bern Managed by Interfaculty Bioinformatics unit http://www.biology.unibe.ch/content/bioinformatics Contact: Remy.Brugmann@biology.unibe.ch 8 machines with 240 cores (SGE) 256 512 GB RAM per machine ssh username@binfservms01.unibe.ch 93, HPC in Life Sciences

Bern: additional cluster in Bern (2) /home/username For scripts and other small files (quota 20 GB) Will be backed up soon (daily?) /data3/users/<username> Location to store your data Quota 5TB; not backed up! /scratch (local to node, local disk) (4.8TB on 80 core nodes, 4TB on 16 core nodes) 94, HPC in Life Sciences

Bern: additional cluster in Bern (3) SGE example #!/bin/sh #$ -S /bin/sh #$ -e scriptname-$job_id.err #$ -o scriptname-$job_id.out #$ -M remy.bruggmann@biology.unibe.ch #$ -l h_vmem=50g #$ -l h_rt=540:00:00 #$ -pe smp 8 #$ -q all.q # here starts the command that is executed on the cluster blastall p blastn -a 8 -i seqs.fasta -d blastdatabase -o blastout 95, HPC in Life Sciences

Outline 1. Motivation 2. Background on Scientific Computing 3. Practical usage of life science HPC infrastructure - Vital-IT UNIL/EPFL/UNIGE infrastructure overview - Concrete cluster usage - Using UBELIX + Vital-IT software 4. Vital-IT: Different storage systems and guidelines 96, HPC in Life Sciences

Basic overview /home/<userid> private scripts, small data /scratch/ programs should write results there /archive/... long term storage /db/ public bioinformatics databases http://www.vital-it.ch/support/storage_guidelines.php 97, HPC in Life Sciences

Home directories /home/<userid> Backed up on tape 5 GB quota Only most important files should be stored there Your files we don t support software that you install there! Please do not store large (temporary) results in /home but do so in the /scratch directory (next slide) Check quota with quota s Filesystem blocks quota limit grace files quota limit grace 10.0.0.41:/exports/home 828M 5120M 5632M 2009 0 0 Space'used'' 5'GB'quota' Number'of'files' created' 98, HPC in Life Sciences

Space Limitation for LSF: #!/bin/bash #BSUB -L /bin/bash #BSUB -o blast-output.txt By default, output/error redirection is written into the following directory (note quota on $HOME): $HOME/.lsbatch/ If output is large (>5GB), that will exceed your quota in your home directory so better write to a file in /scratch without using o myprogram > /scratch/cluster/daily/userid/output.txt (-o is only written, once job has finished) 99, HPC in Life Sciences

Scratch directories /scratch No backup! automatically cleaned! 1 TB quota per user (/scratch/cluster) currently 56 TB /scratch/cluster/[daily weekly monthly] Create a subdirectory according to your userid You can work like on a single machine but make sure that different processes don t write into the same file! Once you have finished your computation, please download results from /scratch to your local machine and back up your results /scratch/local/[daily weekly] only 20-50 GB Local scratch on compute node (not shared!) Very fast access! 100, HPC in Life Sciences

LSF Job to use /scratch/ Explicitly cd into /scratch or write files directly there #!/bin/bash #BSUB -L /bin/bash #BSUB -o blast-output.txt #BSUB -e blast-error.txt #BSUB -J myjob Could'also'be'redirected' to'/scratch.'by'default,' local'directory'from'where' you'submiqed'job!' cd /scratch/cluster/daily/userid blastall -p blastp -d "swiss" -i p123456.seq Change'working' directory'to'write' results'directly' into'''/scratch' 101, HPC in Life Sciences

Attention: automatic cleanup in /scratch/cluster/[daily weekly monthly]/ Often, when you retrieve external data in compressed format (e.g. tar.gz) the files are "older" than 1 week, 1 month etc. tar -zxvf mydata.tar.gz (from e.g. from 2012) will preserve file creation time you will loose the data next day! Solution: tar zxvmf mydata.tar.gz Use 'm' option to extract file setting current time (Note: here, the order of the options is important) 102, HPC in Life Sciences

Archive /archive Large storage for scientific data (more than ½ PB) Automatic backup and versioning Hierarchical storage system (HSM) with disk and tape No quota but if disk cache is full, files are truncated from disk and must be retrieved from tape Don t run programs that write directly to archive! Copy data explicitly from/to archive (zip/tarball data!) Avoid copying/archiving many small files, i.e. create larger files! /archive/<entity>/<group>/<userid> $HOME/archive (symbolic link in your home directory) 103, HPC in Life Sciences

Hierarchical Storage System (HSM) Quantum StorNext basics: Clients HSM Clients HSM MDC * SMB/CIFS NFS SAN Network Disk Storage Tape Storage * MetaData Controller Slide by Volker Flegel 104, HPC in Life Sciences

Is your file in disk cache of HSM? ondisk Check, if a file is on the disk cache of the HSM or truncted (max 16 KB on disk) ondisk -h ondisk../authpaper.pdf: on_disk./bigresults.pdf: truncated./ieeetrans.bst: truncated./ocg.sty: on_disk./literatur.bib: on_disk./bigresults.tex: truncated 105, HPC in Life Sciences

Archive: ask LSF to transfer/stage files Before jobs starts, LSF can copy the file to a scratch directory #/bin/bash source'file'on'/archive' #BSUB -L /bin/bash #BSUB -o output.txt #BUSB -e error.txt #BSUB -J stage3 #BSUB -f "/archive/ /file1.seq > /scratch/cluster/ /file1.seq" #BSUB -f "/archive/ /file2.seq > /scratch/cluster/ /file2.seq" #BSUB -f "/archive/ /file3.seq > /scratch/cluster/ /file3.seq" cd /scratch/cluster/ / ls -l tail file1.seq des:na:on'file'on/scratch' 106, HPC in Life Sciences

Data access latency: important change! Hierarchical storage system: Provides access to large amounts of data (/archive) Data might not be always available on disk but need to be fetched from a tape drive access latency storage capacity (increase) RAM disk cache tape (archive) storage cost (increase) Keep'that'hierarchy'in'mind'when'you'plan'to'use'data'in'archive' directory!!!'' 107, HPC in Life Sciences

Summary Vital-IT (UNIL/EPFL/UNIGE) and UBELIX Task$ LSF$ SGE$ Submit'job' bsub' qsub' Check'status' bjobs' qstat' Cancel/Kill'job' bkill' qdel' VitalYIT'soWware'on'all'clusters' 3 clusters at 3 sites Medium and large size memory Disk storage + long term tape archive Single cluster Medium size memory Disk space only 108, HPC in Life Sciences

Number and size of files (per directory) Note that file systems are not good at dealing with thousands of thousands of small files Particularly true for cluster/parallel file systems! Advice: try to organise your data to keep larger files (bigger than 4 MB!) If you store files, create tar balls for smaller files to have less than ~10 000 files per directory 109, HPC in Life Sciences

Conclusion Vital-IT software at 4 sites: UNIL, EPFL, UNIGE and UNIBE Infrastructure summary Submit jobs from front-end nodes Be aware of quotas and different access latencies /scratch for writing data (UNIL/EPFL/UNIGE) Contact us for help etc. Vital-IT is much more than an HPC infrastructure We work closely with biologist and platforms Common research projects, embedded bioinformaticians 110, HPC in Life Sciences

Thank you 111, HPC in Life Sciences