UTILISATEURS DE L'UNIVERSITÉ DE SHERBROOKE


Table des matières

1- Courrier électronique
2- Utilisation de plus d'une machine à la fois
3- Impression d'un document
4- Compilation et soumission
    A- Utilisation des machines
    B- Utilisation de la "grappe"
    C- Utilisation de l'ordinateur parallèle
5- Tracer un graphique
6- Compression de fichiers
7- Dévermineur
8- Propriétés des fichiers
9- Génération d'un profil


1- Courrier électronique

Votre courrier électronique se trouve sur pauli.  Pour y avoir accès, vous devez taper pine.
 

2- Utilisation de plus d'une machine à la fois

Il se peut que vous ayez à travailler sur plus d'une machine à la fois (les différentes applications ne fonctionnent pas sur toutes les machines).  Si c'est le cas, suivez la procédure suivante:

a)       xhost machine_désirée
b)        rlogin machine_désirée
c)        export TERM=vt100
d)        export DISPLAY=machine utilisée:0
Pour des applications simples (e.g. destruction de fichiers), seule l'étape b) est nécessaire.
 

3- Impression d'un document

L'utilisation de l'imprimante se trouvant dans la salle de calculs se fait grâce à la commande suivante:

          lpr -Pps2 nom_fichier
 

4- Compilation et soumission

Il est possible de faire fonctionner les programmes sur les machines (dirac, pauli, ...), sur la "grappe" (i.e. sur les "elix") ou sur l'ordinateur parallèle.  Dans chaque cas, les commandes à utiliser ne sont pas les mêmes.  Notez que si vous faites une soumission, un fichier nohup.out sera automatiquement créé.  Si votre soumission échoue, ce fichier vous en indiquera souvent la cause.  Il est très important de ne pas soumettre plus de programme qu'il n'y a de processeurs sur une quelconque "ressource informatique".  Par exemple, chaque noeud de la grappe comporte deux processeurs; veuillez donc toujours vous assurer qu'il n'y a pas plus de deux programmes qui tournent simultanément sur le même noeud.
 

A- Utilisation des machines

* Compilation: vous pouvez utiliser le compilateur xlf90 ou  le compilateur f90.  En général, les programmes compilés avec xlf90 doivent avoir l'extension .f et les programmes compilés avec f90 l'extension .f90.  Il y a néanmoins certaines exceptions.  Pour être certains, vous pouvez aller voir les manuels présents sur le système Unix (taper man f90).  Pour créer un exécutable, vous devez taper:

         xlf90 [-O] -o nom.out nom_prog.f

    N.B.  Il s'agit de la lettre O et non pas du chiffre zéro.  Il existe aussi d'autres options de compilation (e.g. -O3).

* Soumission: vous n'avez qu'à entrer la commande: nohup nom.out &
 

B- Utilisation de la "grappe"

Lorsque vous êtes sur la grappe, vous pouvez vous liez aux différents noeuds par la commande: rlogin elixXX, où XX représente un nombre compris entre 01 et 16.

* Compilation: cette fois, vous devez avoir utilisé le compilateur f90 (ou absoft_f90).  Il vous faut compiler sur maxwell si vous utilisez f90.  Pour compiler, vous devez taper:

         f90 [-O -free] -o nom.out nom_prog.f90

N.B.  Il existe plusieurs compilateurs (e.g. absoft_f90, f77, ...); il se peut que la license d'exploitation de certains de ceux présentés ne soit pas renouvellée lorsque vous voudrez les utiliser.  Informez-vous!

* Soumission: vous devez entrer la ligne de commande suivante:

        nohup nom.out &

N.B.  Si vous désirez soumettre sur elix en tant que tel (et non pas sur un des 16 noeuds), vous devez plutôt taper:

        nohup /home/nom_utilisateur/.../nom.out &

où /.../ représente le chemin nécessaire pour parvenir à nom.out.  Veuillez prendre note qu'il n'est généralement pas recommandé de soumettre sur elix en tant que tel (cela surcharge le système).  Cependant, si toute la grappe est prise et que vous avez un petit calcul à soumettre...

* Utilisation de qsoumet

La soumission de programmes sur la queue de la grappe se fait grâce à la commande qsoumet.  Il vous sera alors posé différentes questions (nombre de processeurs utilisés, temps de calcul, mémoire requise, nom du calcul et ligne de commande à exécuter).  Pour éviter d'avoir à répondre à toutes ces questions une par une à chaque fois, vous pouvez vous faire un fichier qsoum que vous soumettrez par la commande:

       qsoumet <qsoum

Voici deux autres commandes utlies pour la queue:

qstat ==> indique les statistiques concernant l'état d'utilisation de la queue
qdel ==> permet de terminer le calcul numéro N par la commande:

        qdel N.elix.physique.usherb.ca

Il existe aussi une version qsoumet2 qui est plus souple et vous permet de soumettre sur un noeud précis (utile pour répartir des calculs demandant beaucoup de mémoire).  Ainsi, pour soumettre l'exécutable nom.out sur le noeud elix12, il vous suffit d'entrer la commande:

        qsoumet2 -o elix12 ./nom.out
 

 
C- Utilisation de l'ordinateur parallèle (SP)

NOTE: les répertoires sur l'ordinateur parallèle ne sont pas les mêmes que sur votre autre compte.  Il vous faudra donc créer vos répertoires sur le sp, auquel vous pouvez vous connecter par la commande telnet udes-ibm01.rqchp.qc.ca, puis transférer tous les fichiers qui vous seront nécessaires (par exemple, le script nom_prog.cmd ).

Modification: il est tout d'abord nécessaire de modifier le programme de simulations MCQ.  Pour cela, cherchez les indications || apparaissant dans le code.  Vous devrez mettre en commentaires la ligne suivante:

 CHARACTER(LEN=*),PARAMETER   :: FICREF='tampin.dat'

Puis, il vous faudra également mettre en commentaires les trois lignes suivantes:

OPEN(UNIT=13,FILE=FICREF,STATUS='OLD',ERR=111)
REWIND(UNIT=13)
...
CLOSE(UNIT=13)

sans oublier de remplacer le chiffre 13 par le symbole * dans toutes les lignes se trouvant entre le REWIND et le CLOSE.

* Compilation: il vous faut à présent compiler votre programme sur l'ordinateur parallèle lui-même.  En fait, il vous faut compiler dans le répertoire temporaire du sp (le répertoire /tmp).  Pour compiler, entrez la commande:

        xlf90 nom_prog.f -O5 -qarch=auto -o nom.out

* Soumission: il suffit de taper llsubmit nom_prog.cmd

Commandes utiles:       llcancel       ==> équivalent de kill
                                            llq                 ==> donne l'état de la queue (file d'attente)
                                           llstatus       ==> donne l'état d'utilisation

Voir le site du centre de calcul scientifique relatif à l'utilisation de l'ordinateur parallèle (section sur le LoadLeveler)

5- Tracer un graphique

Il faut tout d'abord aller placer le symbole # devant chaque ligne de texte du fichier (pour transformer en commentaire tout ce qui n'est pas les données qui serviront à tracer le graphique).

Il faut ensuite entrer dans gnuplot, grâce à la commande:  gnuplot
Puis, il s'agit d'entrer les lignes de commande suivantes:

a) set term postscipt                 ! pour que le fichier résultant puisse être vu par ghostview
                                                et  puisse être imprimé
b) set output 'nom_fichier'      ! où l'on nomme le fichier résultant
c) plot '.......gi.dat' using 3:4:5 with errorbars  ! le graphique de .........gi.dat en postscript se trouve maintenant dans nom_fichier; on a tracé le graphique en utilisant les colonnes 3 et 4 (résultats), ainsi que la colonne 5 (barres d'erreurs)
d) exit
Il est maintenant possible de voir le graphique sur ghostview (tapez gv &) ou de l'imprimer
 

6- Compression de fichiers

Pour comprimer des fichiers, voici la marche à suivre:

         gzip [option] noms_fichiers

Les fichiers comprimés comporteront l'extension .gz et vos fichiers sources seront détruits.  Si vous voulez lier ensemble plusieurs fichiers comprimés, vous devez taper:

         tar -c -f - nom_fichiers.gz > nom_futur.z

Pour "délier" ces fichiers, il suffit de taper:    tar -x -f nom_futur.z

Pour "décomprimer" les fichiers .gz, entrez la commande:          gzip -d noms_fichiers.gz

NOTE: Il est plus efficace de commencer par lier les fichiers avant de les comprimer.
 

7- Dévermineur

Dans la salle de calculs, il y a un dévermineur de disponible pour le FORTRAN90 sur dirac ainsi que sur pauli.  Pour y avoir accès, cliquez sur l'icône des applications (avant-dernière à droite); puis cliquez sur XL Fortran et finalement sur Program Debugger.  La façon la plus simple de procéder est la suivante:

Commencer par faire une copie du programme et de tous les fichiers reliés à celui-ci (e.g. tampin.dat) directement sur dirac (pauli).  Ensuite, il vous faut compiler votre programme avec l'option -g sur dirac (pauli):

          xlf90 -g nom_prog.f -o nom_prog.out

Lorsque le dévermineur vous demandera quel programme vous désirez utiliser, vous devez indiquer l'exécutable.  Autrement dit le chemin sera:

          /home/dirac(pauli)/nom_prog.out

N'oubliez pas de vous assurer que tampin.dat indique le bon répertoire de travail (même chose pour la variable WORKDIR du code source)!

Voici un petit manuel des commandes de base du dévermineur:

-Continue: si vous cliquer avec la souris sur une ligne du programme, la commande "continue" vous permettra d'arrêter l'exécution du programme à la ligne ainsi choisie
-Next: progresse ligne par ligne, en restant toujours dans le programme ou la sous-routine d'origine (exécution de type organigramme)
-Step: progresse ligne par ligne, en entrant dans les éventuelles sous-routines appelées (exécution réelle du programme)
-Restart: la fonction de cette commande est exactement celle que suggère son nom
 

8- Propriétés des fichiers

Si vous tapez la commande ls -l, vous aurez la liste de ce que nous nommerons les "propriétés des fichiers".  Par exemple, vous pourriez obtenir:

-rw-r--r--       1      nom_usager  nom_groupe   41955     Feb 11 15:54         bryan_51.f90
-rwxr-xr-x     1       nom_usager  nom_groupe  331260    Feb 16 16:08         bryf.out
-rw-r--r--       1      nom_usager  nom_groupe   126         Feb 16 15:48         constantes.mod
drwxr-xr-x     2      nom_usager  nom_groupe   4096       Mar  8 10:24          data
-rw-r--r--       1      nom_usager  nom_groupe      5          Feb 16 16:01         dseed.dat
drwxr-xr-x     2      nom_usager  nom_groupe   4096       Feb 11 19:02          enter
drwxr-xr-x     3      nom_usager  nom_groupe   4096       Mar  8 10:23           grafik

- La dernière colonne donne le nom du fichier ou du répertoire

- La pénultième colonne donne la date de la dernière modification du fichier

- L'antépénultième colonne indique la taille du fichier en bytes

- La seconde colonne indique le nombre d'embranchement à partir du répertoire courant

Exemples:
a) pour dseed.dat, ce chiffre est 1; cela signifie que ce fichier est dans le répertoire courant
b) pour grafik, ce chiffre est 3; cela signifie que ce répertoire est dans un répertoire qui est lui-même dans le répertoire courant
- La première colonne indique les propriétés du fichier ou du répertoire:
a) - pour un fichier; d pour un répertoire
b) les trois symboles suivants réfèrent à l'usager
c) les trois symboles suivants réfèrent au groupe
d) les trois derniers symboles réfèrent à tous les usagers

Signification des symboles:

r signifie que l'on a la permission de lire le fichier (répertoire)
w signifie que l'on a la permission d'écrire dans le fichier (répertoire)
x signifie que l'on peut exécuter ce fichier (répertoire)


Si vous désirez modifier les propriétés d'un fichier, utilisez la commande chmod, puis précisez pour qui est destiné ce changement de propriétés (u: usager, g: groupe, a: all) et quelles propriétés vous désirez ajouter (+) ou supprimer (-).  Il faut bien sûr indiquer le nom du fichier à modifier.

Par exemple, si je désire le groupe ne puisse plus lire le fichier bryan_51.f90, je tape:

        chmod g-r bryan_51.f90

Si je désire plutôt que le fichier dseed.dat devienne exécutable seulement pour moi (l'usager), la ligne de commande appropriée est:

        chmod u+x dseed.dat

9- Génération d'un profil

Le profil d'un programme est un relevé très informatif sur le déroulement du programme.  Vous y trouverez entre autres la liste des sous-routines appelées par le programme principal, le pourcentage de temps passé dans chaque sous-routine, le nombre de fois qu'une sous-routine est appelée et par qui (programme principal, autre sous-routine) elle est appelée, etc.

Pour générer un profil, il est tout d'abord nécessaire de compiler le programme dont on désire obtenir le profil avec l'option -pg avec f90, sans optimisation :

            f90 -pg nom_prog.f90 -o nom_profil.out

Ensuite, vous devez soumettre le programme nom_profil.out.  Vous obtiendrez alors un autre exécutable, se nommant gmon.out.  Pour obtenir le profil dans le fichier fich_profil, entrez la ligne suivante:

            gprof nom_profil.out gmon.out >fich_profil