==== Esempio - Example ==== ---- Dopo aver effettuato l'accesso via ssh all'indirizzo della User Interface dedicata al cluster Zefiro localui3.pi.infn.it mediante: ssh username@localui3.pi.infn.it ---- **DEBUG**\\ Per agevolare un utente che non volesse effettuare un bsub indicando tutti i parametri in modo manuale come mostrato nella sezione di spiegazione delle code, è stato previsto lo script bash chiamato mpiSubmit.sh dove vanno specificati come parametri il nome della coda da utilizzare (in questo caso **debug** o **longDebug**), il numero dei jobslot, l'eseguibile mpi ed eventuali parametri; così facendo verrà eseguito in automatico il file precedentemente compilato sulla coda appositamente prevista **compilation**. E' possibile scaricare lo script dall'indirizzo [[https://www.dropbox.com/s/7fjs1617koy942o/mpiSubmit.sh|mpiSubmit.sh]] e dovrà essere copiato nella propria home directory /home/users/username insieme al file del job su cui fare il Debug. Il comando per far partire il debug di un file eseguibile a.out (generato da una compilazione precedente) su una delle due code preveiste (in questo caso la coda debug), riservando 2 jobslot, (lo stesso potrebbe essere fatto su longDebug) e comunque stabilendo un numero di jobslot massimo consentito secondo quanto stabilito nella pagine di definizione delle code, sarà ./mpiSubmit.sh debug 2 a.out In questo caso verranno stampato su monitor: Job <4234> is submitted to queue <**debug**>\\ Job /home/users/**nomeutente**/a.out submitted!\\ Per conoscere ulteriori informazioni su proprio job: bjobs -l nel nostro caso bjobs -l 4234 Nella home directory dell'utente verranno generati il file a.out.err (elenco errori nella esecuzione), a.out.out(tutte le informazioni di output della esecuzione). ---- **COMPILAZIONE**\\ Per agevolare un utente che non volesse effettuare un bsub indicando tutti i parametri in modo manuale come mostrato nella sezione di spiegazione delle code, è stato previsto lo script bash mpiCompile.sh che riceve come parametri il nome della coda (come coda va ovviamente specificata "compilation" che è l'unica presente) , il numero dei jobslot, l'eseguibile mpi ed eventuali parametri; lo script punta in automatico al compilatoreMPI mpicc presente su tutti i nodi del cluster e permette quindi con un singolo comando di poter lanciare alla code dedicata la compilazione del proprio job. E' possibile scaricarlo dall'indirizzo [[https://www.dropbox.com/s/erlu4nkzhq8k2pp/mpiCompile.sh|mpiCompile.sh]] e deve essere copiato nella propria home directory /home/users/username insieme al file del job su cui fare la compilazione. Supponendo di voler sottomettere la compilazione del proprio job, in questo caso un semplice programma scritto in linguaggio C, chiamato prova.c ovviamente alla coda **compilation** riservando implicitamente 1 jobslot (che è il numero massimo consentito secondo quanto indicato nella sezione di spiegazione della coda).Lo script in linguaggio C è un semplice 'Hello World from' con indicazione di tutti i nodi dal quale viene lanciato. Anche questo file è scaricabile dall'indirizzo [[https://www.dropbox.com/sh/g9ieoxq45n4mgw4/AR1zmpiyaG|prova.c]] Nello specifico sarà: /*The Parallel Hello World Program*/ #include \\ #include \\ main(int argc, char * *argv)\\ {\\ int node;\\ MPI_Init(&argc,&argv);\\ MPI_Comm_rank(MPI_COMM_WORLD, &node);\\ printf("Hello World from Node %d\n",node);\\ MPI_Finalize();\\ }\\ Il comando da lanciare sarà: ./mpiCompile.sh compilation prova.c In questo caso verranno stampati su monitor il numero assegnato al job e la coda a cui è stato sottomesso, nel nostro caso: Job <2400> is submitted to queue <**compilation**>. Per conoscere ulteriori informazioni su proprio job: bjobs -l nel nostro caso bjobs -l 2400 Nella home directory dell'utente verranno generati il file prova.c.err(elenco errori), prova.c.out(tutte le informazioni di output) ed il file a.out(il file eseguibile di prova.c). ---- **SOTTOMISSIONE**\\ Per agevolare un utente che non volesse effettuare un bsub indicando tutti i parametri in modo manuale come mostrato nella sezione di spiegazione delle code, è stato previsto lo script bash chiamato mpiSubmit.sh dove vanno specificati come parametri il nome della coda da utilizzare, in questo **parallel**(lo stesso può essere fatto indicando gli opportuni parametri anche per la coda **longparallel** e **neparallel**), il numero dei jobslot, l'eseguibile mpi ed eventuali parametri; così facendo verrà eseguito in automatico il file precedentemente compilato sulla coda appositamente prevista **compilation**. E' possibile scaricare lo script dall'indirizzo [[https://www.dropbox.com/s/7fjs1617koy942o/mpiSubmit.sh|mpiSubmit.sh]] e dovrà essere copiato nella propria home directory /home/users/username insieme al file del job su cui fare la sottomissione. Il comando per far partire la sottomissione di un file eseguibile a.out (generato da una compilazione precedente) su una delle due code preveiste (in questo caso la coda Parallel, riservando 6 jobslot, (lo stesso potrebbe essere fatto su longparallel e neparallel) e comunque stabilendo un numero di jobslot massimo consentito secondo quanto stabilito nella pagine di definizione delle code, sarà ./mpiSubmit.sh parallel 6 a.out In questo caso verranno stampato su monitor: Job <4234> is submitted to queue <**parallel**>\\ Job /home/users/**nomeutente**/a.out submitted!\\ Per conoscere ulteriori informazioni su proprio job: bjobs -l nel nostro caso bjobs -l 4234 Nella home directory dell'utente verranno generati il file a.out.err (elenco errori nella esecuzione), a.out.out(tutte le informazioni di output della esecuzione). ---- \\ Per annullare un job attivo (in coda o running) si puo' usare bkill bkill ---- === Assistenza === Per qualsiasi dubbio o informazione potete mandare una mail all'IT Division all'indirizzo: localq-support@lists.pi.infn.it Verrete contattati al più presto dal gruppo. ---- ---- ---- ---- \\ english version ==== Example ==== ---- After ssh access to the dedicated interface localui3.pi.infn.it by: ssh username@localui3.pi.infn.it ---- **DEBUG**\\ In order to facilitate users who does not wish to make a bsub indicating all of the parameters manually, it was predicted a script called mpiSubmit.sh which must be specified as parameters the name of the queue to be used(**Debug** or **longDebug**), the number of jobslot, the executable mpi and any parameters. The script can be downloaded from [[https://www.dropbox.com/s/7wo0jg9wls0iii6/mpiSubmit.sh|mpiSubmit.sh]] and must be copied into your home directory /home/users/username with the file to debug. The command to start the debug of an executable file a.out (generated from a previous build) on one of the two queues available (in this case the Debug queue), reserving 2 jobslot, (the same could be done on longDebug) and however, establishing a number of jobslot maximum allowed, it will be ./mpiSubmit.sh Debug 2 a.out In this case will be printed the number assigned to the job and the queue used: Job <4234> is submitted to queue <**debug**>\\ Job /home/users/**nameofuser**/a.out submitted!\\ To find more information about the job: bjobs -l In this case: bjobs -l 4234 In the user's home directory the files generated will be called a.out.err (list of errors) and a.out.out (all output information of the running phase). ---- **COMPILATION**\\ In order to facilitate users who does not wish to make a bsub indicating all of the parameters manually, it was predicted a script called mpiCompile.sh which receives as parameters the name of the queue ("compilation" that is the only available at the moment), the number of jobslot, the mpi executable and any parameters, the script automatically use the mpicc MPI compiler present on all of nodes. The script can be downloaded from [[https://www.dropbox.com/s/eomt3sxu00ss00h/mpiCompile.sh|mpiCompile.sh]] and must be copied into your home directory /home/users/username with the file to compile. For example, if user want to compile a simple C program called prova.c on **compilation** queue, using 1 jobslot (which is the only one availble for the queue). The C program is a simple 'Hello World from' which indicates all the nodes from which it is started. The C program can be downloaded from [[https://www.dropbox.com/sh/g9ieoxq45n4mgw4/AR1zmpiyaG|prova.c]] The Parallel Hello World Program: /*The Parallel Hello World Program*/ #include \\ #include \\ main(int argc, char * *argv)\\ {\\ int node;\\ MPI_Init(&argc,&argv);\\ MPI_Comm_rank(MPI_COMM_WORLD, &node);\\ printf("Hello World from Node %d\n",node);\\ MPI_Finalize();\\ }\\ The command to run must be: ./mpiCompile.sh compilation prova.c In this case will be printed the number assigned to the job and the queue used: Job <2400> is submitted to queue <**compilation**>. To find more information about the job: bjobs -l In this case: bjobs -l 2400 In the user's home directory the files generated will be called prova.c.err(list of errors), prova.c.out(output informations) and a.out(the executable files). ---- **SUBMISSION**\\ In order to facilitate users who does not wish to make a bsub indicating all of the parameters manually, it was predicted a script called mpiSubmit.sh which must be specified as parameters the name of the queue to be used, in this case the queue **parallel**(the same can be done by indicating the appropriate parameters for **longparallel** and **neparallel** queues), the number of jobslot, the mpi executable and any other parameters. The script can be downloaded from [[https://www.dropbox.com/s/7wo0jg9wls0iii6/mpiSubmit.sh|mpiSubmit.sh]] e dovrà essere copiato nella propria home directory /home/users/username insieme al file del job su cui fare la sottomissione. The command to start an executable file a.out (generated from a previous build) on one of the two queues available (in this case the Parallel queue, reserving 6 jobslot, (tha same can be to do on the longparallel and neparallel queues) establishing a number of jobslot maximum allowed, it will be: ./mpiSubmit.sh Parallel 6 a.out In this case will be printed the number assigned to the job and the queue used: Job <4234> is submitted to queue <**parallel**>\\ Job /home/users/**nameofuser**/a.out submitted!\\ To find more information about the job: bjobs -l In this case: bjobs -l 4234 In the user's home directory the files generated will be called a.out.err (list of errors) and a.out.out (all output information of the running phase). ---- \\ __To kill a job can be used the bkill command__ bkill ---- === to request help === For any questions or information users can send an email to the IT Division: localq-support@lists.pi.infn.it You'll be contacted asap by a member's group.