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]