5 x Slot 1U HP Proliant DL360 - CPU: 2 x Intel Xeon 2.8 GHz / 512 Kb L2 Cache - RAM: 3 GB - HDD: 1 x 18 GB @ 15.0000 rpm SCSI U320 - LAN: 1 x GigabitEthernet 10/100/1000
Scientific Linux 3.04 ASIS ATLAS BLAS high perf lib by K.Goto Blacs Boost CERNLIB CMT Clhep F90gl F95 Fluka Ftncheck Garfield Geant4 Glut Glut-3.7.1 Gnuplot4 Grace Intel C/C++ Compiler Intel Debugger Intel Eclipse Intel Fortran Compiler Intel JRockit JVM Intel MKL (Math Kernel Library) Kdiff3 Mathematica Mercury Mesa Mpich Nail OpenDx Pgplot Plusfort Ppower4 Root Scalapack - Openpbs 2.3.13 4 code: small max.cput = 1 H medium max.cput = 8 H long max.cput = 24 H verylong max.cput = 72 H max_user_run = 2 max_group_run = 6 resources_max.file = 2047 MB resources_max.vmem = 2047 MB - Mathematica 5 Per la versione grafica si deve aggiungere fontserver.lnf.infn.it nei fontserver del server/emulatore X11 ed eseguire `mathematica` - Geant4.6.2 Prima di utilizzare le librerie Geant4 del Cern, eseguire `geant4.env.setup`, che impostera' le variabili d'environment. - Aree di storage temporaneo disponibili: /scratch/nfs/<nomegruppo>/<nomeutente> ($scratchnfs) /scratch/local/<nomegruppo>/<nomeutente> ($scratchlocal) /tmp (quota 30 MB)
[dmaselli@lxcalc4:~]> qdel <JobID>
[dmaselli@lxcalc4:~]> qstat Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----- 431.lxcalc1 test dmaselli 0 E long 432.lxcalc1 test dmaselli 0 R verylong 433.lxcalc1 test dmaselli 0 R verylong 434.lxcalc1 test dmaselli 0 R small 435.lxcalc1 test dmaselli 0 R verylong 436.lxcalc1 test dmaselli 0 R verylong 437.lxcalc1 test dmaselli 0 Q verylong 438.lxcalc1 test dmaselli 0 Q verylong 439.lxcalc1 test dmaselli 0 Q verylongIl campo S indica lo stato del job, e puo' essere
[dmaselli@lxcalc4:~]> qstat -f Job Id: 440.lxcalc1.lnf.infn.it Job_Name = test Job_Owner = dmaselli@lxcalc4.lnf.infn.it job_state = R queue = verylong server = lxcalc1.lnf.infn.it Checkpoint = u ctime = Mon Sep 13 13:21:28 2004 Error_Path = lxcalc4.lnf.infn.it:/scratch/nfs/calcolo/dmaselli/test.err exec_host = lxcalc3/0 Hold_Types = n Join_Path = n Keep_Files = n Mail_Points = abe mtime = Mon Sep 13 13:21:29 2004 Output_Path = lxcalc4.lnf.infn.it:/scratch/nfs/calcolo/dmaselli/test.log Priority = 0 qtime = Mon Sep 13 13:21:28 2004 Rerunable = False Resource_List.cput = 72:00:00 Resource_List.file = 2047mb Resource_List.nodect = 1 Resource_List.nodes = Linux Resource_List.vmem = 512mb session_id = 14031 Variable_List = PBS_O_HOME=/afs/lnf/user/d/dmaselli, PBS_O_LANG=en_US.iso885915,PBS_O_LOGNAME=dmaselli, PBS_O_PATH=.:/afs/lnf/user/d/dmaselli/bin:/usr/lnf/bin:/usr/afsws/bin: /usr/afsws/etc:/usr/kerberos/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/cus tom/openssh/bin:/usr/X11R6/bin:/usr/local/bin:/usr/sbin:/usr/local/bin/ X11:/cern/pro/bin:/usr/sbin:/usr/lnf/root/bin, PBS_O_MAIL=/var/mail/dmaselli,PBS_O_SHELL=/bin/tcsh, PBS_O_HOST=lxcalc4.lnf.infn.it, PBS_O_WORKDIR=/scratch/nfs/calcolo/dmaselli,PBS_O_QUEUE=default comment = Job started on Mon Sep 13 at 13:21 etime = Mon Sep 13 13:21:28 2004 Job Id: 441.lxcalc1.lnf.infn.it Job_Name = test Job_Owner = dmaselli@lxcalc4.lnf.infn.it job_state = R queue = verylong server = lxcalc1.lnf.infn.it Checkpoint = u ctime = Mon Sep 13 13:21:30 2004 Error_Path = lxcalc4.lnf.infn.it:/scratch/nfs/calcolo/dmaselli/test.err exec_host = lxcalc2/0 Hold_Types = n Join_Path = n Keep_Files = n Mail_Points = abe mtime = Mon Sep 13 13:21:30 2004 Output_Path = lxcalc4.lnf.infn.it:/scratch/nfs/calcolo/dmaselli/test.log Priority = 0 qtime = Mon Sep 13 13:21:30 2004 Rerunable = False Resource_List.cput = 72:00:00 Resource_List.file = 2047mb Resource_List.nodect = 1 Resource_List.nodes = Linux Resource_List.vmem = 512mb session_id = 14049 Variable_List = PBS_O_HOME=/afs/lnf/user/d/dmaselli, PBS_O_LANG=en_US.iso885915,PBS_O_LOGNAME=dmaselli, PBS_O_PATH=.:/afs/lnf/user/d/dmaselli/bin:/usr/lnf/bin:/usr/afsws/bin: /usr/afsws/etc:/usr/kerberos/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/cus tom/openssh/bin:/usr/X11R6/bin:/usr/local/bin:/usr/sbin:/usr/local/bin/ X11:/cern/pro/bin:/usr/sbin:/usr/lnf/root/bin, PBS_O_MAIL=/var/mail/dmaselli,PBS_O_SHELL=/bin/tcsh, PBS_O_HOST=lxcalc4.lnf.infn.it, PBS_O_WORKDIR=/scratch/nfs/calcolo/dmaselli,PBS_O_QUEUE=default comment = Job started on Mon Sep 13 at 13:21 etime = Mon Sep 13 13:21:30 2004
[dmaselli@lxcalc4:~]> qstat -Q Queue Max Tot Ena Str Que Run Hld Wat Trn Ext Type ---------------- --- --- --- --- --- --- --- --- --- --- ---------- verylong 6 0 yes yes 0 0 0 0 0 0 Execution long 8 0 yes yes 0 0 0 0 0 0 Execution medium 10 0 yes yes 0 0 0 0 0 0 Execution small 14 0 yes yes 0 0 0 0 0 0 Execution default 0 0 yes yes 0 0 0 0 0 0 Route [dmaselli@lxcalc4:~]> qstat -B Server Max Tot Que Run Hld Wat Trn Ext Status ---------------- --- --- --- --- --- --- --- --- ---------- lxcalc1.lnf.infn 0 0 0 0 0 0 0 0 Active
[dmaselli@lxcalc4:~]> pbsnodes -a lxcalc1 state = free np = 2 properties = Linux,lxcalc1 ntype = cluster lxcalc2 state = free np = 2 properties = Linux,lxcalc2 ntype = cluster lxcalc3 state = free np = 2 properties = Linux,lxcalc3 ntype = cluster lxcalc4 state = free np = 2 properties = Linux,lxcalc4 ntype = cluster lxcalc5 state = free np = 2 properties = Linux,lxcalc5 ntype = cluster axcalc state = free np = 6 properties = AIX,axcalc ntype = cluster
qsub -<indicare i comandi>
qsub <file.pbs> [-l (Linux|AIX)]dove <file.pbs> e' un job-script che contiene un elenco di direttive per qsub seguito dalle istruzioni vere e proprie del job.
#!/bin/sh
#PBS -N <nome job>Di default il job avra' lo stesso nome del file pbs.
#PBS -e <percorso>Il percorso non e' assoluto, ma relativo alla working dir.
#PBS -o <percorso>Se questo parametro non viene settato, il nome assegnato sara' quello standard che e' <nome del job>.o seguito da un numero identificativo del job.
#PBS -ISe viene selezionata quest'opzione, il job sara' eseguito in maniera interattiva, ovvero lo standard input, lo standard output e il flusso di errori saranno collegati attraverso qsub al terminale da cui e' stato sottoposto il job.
#PBS -k <argument>La k sta per "keep". Stabilische se lo standard output o lo standard error debbano essere trattenuti dal nodo esecutore del job. Gli argomenti possibili sono e (solo standard error), o (solo standard output), eo (entrambi), oe (entrambi), n (nessuno dei due, e' il valore di default). I file vengono salvati con il nome standard.
#PBS -l <resource_list>Ad esempio per indicare quanto tempo di CPU e' necessario al job, lo script sara' del tipo:
#PBS -l cput=01:00:00E' possibile settare altri valori all'interno di uno stesso comando, separandoli con la virgola. Se una risorsa e' indicata senza che le sia indicato nessuno valore, e' settata ad infinito. Esempio:
#PBS -l cput
#PBS -m <mail_options>Le possibili opzioni sono:
#PBS -M <user_list>Se vengono indicati piu' indirizzi email, essi devono essere separati da una virgola. Di default l'e-mail viene inviata al proprietario del job, ovvero colui che lo ha sottomesso.
#PBS -S <path_list>Indica a PBS dove trovare la shell. Di norma puo' essere trovata nella directory /bin/sh.
#PBS -u <user_list>Anche in questo caso il valore di default e' il nome dell'utente che ha lanciato qsub.
#!/bin/sh #Ho appena definito la shell (e' una bash) #PBS -S /bin/sh #PBS -M dmaselli@lnf.infn.it #PBS -m e #PBS -l cput=01:01:00 #PBS -o risultato #PBS -e errori #commento #Questo e' un commento, il prossimo invece e' un comando echo ""Output file 1
DATE=`date` #Attenzione ad usare gli apici giusti e a non mettere spazi!!! echo "$DATE" sleep 5 echo "Ci sono una serie di cose interessanti che ti interessera' sapere" echo "Questo job stato identificato come $PBS_JOBID e si chiama $PBS_JOBNAME" echo "e' stato inserito inizialmente nella coda $PBS_O_QUEUE" echo "ed e' stato eseguito sulla coda $PBS_QUEUE" echo "E' stato sottoposto dalla macchina: $PBS_O_HOST" echo "E' stato eseguito sulla macchina: `hostname`" date echo "" #PBS -o risultato Questa direttiva viene ignorata
Mon Mar 24 16:46:40 CET 2003 Ci sono una serie di cose interessanti che ti interessera' sapere Questo job stato identificato come 56.lxcalc3.lnf.infn.it e si chiama short.pbs e' stato inserito inizialmente nella coda default ed e' stato eseguito sulla coda long E' stato sottoposto dalla macchina: lxcalc5 E' stato eseguito sulla macchina: lxcalc3 Mon Mar 24 16:46:45 CET 2003Output file 2
Mon Mar 24 16:48:07 CET 2003 Ci sono una serie di cose interessanti che ti interessera' sapere Questo job stato identificato come 57.lxcalc3.lnf.infn.it e si chiama short.pbs e' stato inserito inizialmente nella coda default ed e' stato eseguito sulla coda long E' stato sottoposto dalla macchina: lxcalc4 E' stato eseguito sulla macchina: lxcalc2 Mon Mar 24 16:48:12 CET 2003
MPI e' supportato sulla farm linux del calcolo attraverso MPICH. Potete trovare i compilatori, le librerie e gli include files in /usr/lnf/farmsw/mpich/
Nel caso in cui si sottometta un job MPI attraverso PBS, il comando da eseguire all'interno dello script da passare a qsub e' mpiexec e NON mpirun (o mpich.mpirun).
Per impostare il numero di nodi e di cpu-per-nodo si deve invocare qsub con dei
parametri, ad esempio volendo runnare un job su 3 macchine ognuna con 2 cpu:
qsub -l nodes=3:Linux:ppn=2 <script-pbs>
Queste direttive non devono essere impostate all'interno dello script PBS.
MPI is supported on our linux farm via MPICH. You can find compilers, libraries and include files in /usr/lnf/farmsw/mpich/
When you are submitting MPI jobs in PBS you have to use mpiexec into the PBS script, NOT mpirun (or mpich.mpirun).
To specify number of nodes and cpu-per-node you have to add them in qsub command
line. For example to run a job on 3 nodes with 2 cpu-per-node:
qsub -l nodes=3:Linux:ppn=2 <script-pbs>
You must not put these directives into the PBS script.
#!/bin/sh ### Job name #PBS -N testing ### Declare job non-rerunable #PBS -r n ### Output files #PBS -e /scratch/nfs/calcolo/dmaselli/MPI/test.err #PBS -o /scratch/nfs/calcolo/dmaselli/MPI/test.log ### Mail to user #PBS -m ae # ### This job's working directory echo Working directory is $PBS_O_WORKDIR cd $PBS_O_WORKDIR # echo Running on host `hostname` echo Time is `date` echo Directory is `pwd` echo This jobs runs on the following processors: echo `cat $PBS_NODEFILE` ### Define number of processors NPROCS=`wc -l < $PBS_NODEFILE` echo This job has allocated $NPROCS nodes # ### Run the parallel MPI executable mpiexec /scratch/nfs/calcolo/dmaselli/MPI/mpi.exe
Author: Dael Maselli Created on: 13-Sep-2004 Last update: 31-Oct-2005