Tutorial - Linux Cluster Ulisse
Transcript
Tutorial - Linux Cluster Ulisse
Documento tratto dal CD multimediale disponibile presso la biblioteca del Dipartimento di Matematica Tutorial Cluster Linux 15-09-2003 Ultimo aggiornamento Ottobre 2004 Istruzioni base CLUSTER LINUX “ULISSE” 72 processori di calcolo RAM 36 Gigabyte 600 GB STORAGE Diagramma del Cluster ACCESSO • dal LIR 1 e 2 – selezionando dal MENU ulisse.mat.unimi.it • dal PC del proprio studio – utilizzando ssh ulisse (Linux) oppure utilizzando un client come putty (Windows) • dall’esterno del dipartimento – mediante sistema di accesso basato su Firewall ed ssh Monitoraggio Ulisse Per monitorare lo stato della macchina dirigere il browser su https://ulisse.mat.unimi.it/monitor/ Documentazione I manuali dei compilatori istallati possono essere consultati online alla pagina – Https://ulisse.mat.unimi.it/doc/PGI/ Come utilizzare il Cluster • Ogni utente ha una directory personale /gpfs_home/nomeutente per i propri file • Un’area di scratch di 30 Gbyte è utilizzabile per file temporanei /scratch • Ogni nodo del cluster ha visibilità di entrambe le directory Area di scratch • I file dell’area di scratch non vengono salvati a scopo di backup • /scratch viene utilizzata per file temporanei • periodicamente viene ripulita MPI • Sono disponibili le librerie per lo scambio di messaggi MPI-CH ottimizzate per Rete Myrinet. I Programmi: • mpicc ed mpiCC compilano ed effettuano il link dei programmi scritti in C e C++ • mpif77,mpif90 compilano ed effettuano il link dei programmi in fortran Posizione delle Librerie MPI Compilate con i compilatori GNU • MPIdir = /usr/local/mpi1.2.5..9/gm1.5.2.1_Linux-2.4.18-24.7.xsmp/smp/gnu/ssh • MPinc = -I$(MPIdir)/include • MPlib = $(MPIdir)/lib/libmpich.a Posizione delle Librerie MPI Compilate con i compilatori PGI • MPIdir = /usr/local/mpich/1.2.5..9/gm1.5.2.1_Linux-2.4.18-24.7.xsmp/smp/pgi/ssh • MPinc = -I$(MPIdir)/include • MPlib = $(MPIdir)/lib/libmpich.a Code batch • Il cluster utilizza PBS (Portable batch system ) e Maui per la gestione delle risorse e la schedulazione dei job utenti • I programmi degli utenti possono essere suddivisi in 2 categorie: sequenziali e paralleli Per lanciare un programma seriale usando PBS Esempio di file script.pbs che richiede 1 nodo ed 1 processore • • • • #PBS -N serial-job #PBS -j oe #PBS -l nodes=1:ppn=1 #PBS -l walltime=10:00:00 Nome del job Merge stder/stout 1 nodo 1 cpu al più 10 ore richieste • cd /gpfs_home/myusername • ./a.out > /gpfs_home/myusername/results.txt comandi Sottomissione job qsub • • • • • • • • • • • -e errfile (ridirige standard error al file errfile) -I avvia un job interattivo -j oe (combina standard input e standard output) -l cput=hh:mm:ss (tempo cpu richiesto) -l mem=N (memoria richiesta) (es. 36MB) -l nodes=N:ppn=M (nodi e proc per nodo) -o outfile ridirige standard output al file outfile -S shell usa la shell al posto della login shell (es. /bin/ksh) -V eredita l’ambiente compreso il DISPLAY -N nome_del_job -m a (mail all’utente in caso di abort del job) Sottomissione del job $ qsub script.pbs 1234.ulisse.mat.unimi.it $ qstat 1234 job id Name 1234.ulisse script.pbs User Time S Queue mario 00:00:00 Q serial Comandi PBS • • • • • • • qalter modifica gli attributi del job qdel cancella un job qhold mantieni il job in hold (non schedulare) qmove cambia la coda assegnata al job qstat -f visualizza lo stato del lavoro qsub sottomette un job xpbs visualizza le code e i job Per lanciare un programma parallelo usando PBS Esempio di file batch che richiede 10 nodi e 2 processori per nodo (20 processori) #PBS -N parallel-job #PBS -s /bin/sh #PBS -e test.err #PBS -o test.log #PBS -l nodes=10:ppn=2 #PBS -l walltime=10:00:00 cd /gpfs_home/myusername Nome del Job /usr/local/bin/mpiexec ./a.out \> /gpfs_home/myusername/results.txt MPIEXEC • mpiexec [option] executable [args] – -n numproc usa il numero specificato di processi – -tv Usa il Debugger totalview-pgdbg – -perif alloca solo un processo per interfaccia myrinet – -pernode alloca solo un processo per nodo di calcolo xpbsmon XPBSMON -monitor del cluster Compilazione Semplice esempio Filmato Opzioni di ottimizzazione CCFLAGS = -fomit-frame-pointer -O3 LAPACK e BLAS Lapack • link con -llapack Blas • link con -lblas Disponibile per maggiori performance la libreria ATLAS LAdir = /usr/local/ATLAS LAinc = -I $(LAdir)/include/linux_gcc F LAlib = -L$(LAdir)/lib/linux_gcc -lf77blas -latlas C LAlib = -L$(LAdir)/lib/linux_gcc -lcblas -latlas Link con ScaLAPACK • -Mscalapack – pgf77 myprog.f -Mscalapack Performance del cluster HPL benchmark 130 120 110 100 90 80 70 60 50 40 30 20 10 0 Serie1 Serie2 20 00 40 00 80 00 10 00 0 20 00 0 37 00 0 40 00 0 52 00 0 Gflops Performance N DEBUG • Debugger PGI – totalview per programmi seriali – mpiexec -tv my_programme mediante sottomissione interattiva dei JOB (qsub -V -I) Manuale d’uso del PBS E’ possibile scaricare il manuale del PBS dal sito WEB https://ulisse.mat.unimi.it/doc/ GPROF Profiler •Analisi dei dati •Miglioramento della performance I 3 passi del profiling • Compilazione del programma -Mprof=func -Mprof=lines • Esecuzione del programma il file pgprof.out viene generato • Analisi dei dati $ pgprof [options] pgprof.out PGPROF X-Windows Statistiche •Count •Time •Cost •Messages •Bytes Avvio di programmi interattivi e visualizzazione di finestre X sui nodi di Calcolo del Cluster Esempio: pc1421.mat.unimi.it 159.149.2.76 SSH X terminal Passo2 Sessione Master node Pc studio Xserver qsub -I Nodo di calcolo Passo3 Master node ssh tramite qsub -I ssh Pc studio Nodo di calcolo Master node ssh $ ssh -l alessio ulisse.mat.unimi.it password: ************* mgtnode-> pwd Pc studio /gfps_home/alessio sessione X Pc studio mgtnode-> mgtnode-> portforward portforward 6080 6080 pcstudio.mat.unimi.it pcstudio.mat.unimi.it 6000 6000 Porta in ascolto su mgtnode Porta in ascolto su pcstudio 6080 sessione X nuova shell Pc studio mgtnode-> qsub -I opzioni node26-> export DISPLAY= mgtnode:80 node26-> my-X-application …. ….. Node26 -> exit mgtnode -> exit Crediti Il presente Tutorial è stato realizzato nell’ambito dell’attività di sperimentazione delle nuove tecnologie per la didattica. Gli strumenti utilizzati per la registrazione sono disponibili presso la nuova aula multimediale del dipartimento di matematica. Consultare gli aggiornamenti presenti nella sezione News del sito: http://cluster.mat.unimi.it Autore: Alessio Alessi E-mail: [email protected]