Using UBCluster
Upcoming SlideShare
Loading in...5
×
 

Using UBCluster

on

  • 275 views

How to use UBCluster.

How to use UBCluster.
UBCluster is an HPC machine with 164 processors, 96 Go of RAM and some very known softawre in parallel calculation, like freefem++, octave, NBCR, ...

Statistics

Views

Total Views
275
Slideshare-icon Views on SlideShare
273
Embed Views
2

Actions

Likes
0
Downloads
5
Comments
0

1 Embed 2

http://hpc.univ-bechar.dz 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Using UBCluster Using UBCluster Presentation Transcript

    • Republique Algerienne Démocratique et PopulaireMinistère de lEnseignement Supérieur et de la Recherche ScientifiqueUniversité de Béchar Centre de calcul Laboratoire ENERGARID Equipe SimulIAPrésenté par :M.TAMALI
    • • Plan 1) Présentation Introduction Topologies et procédures daccès Modes dutilisation dUBCluster 2) Etude de cas Etude de séquence génétique Etude de distribution de Boltzmann. Utilisation dOctave Utilisation du calcul parallèle
    • Présentation IntroductionDéfinition du mot CLUSTER, Ensemble de plusieurs machines vues comme une seulepermettant dobtenir de grandes puissances de traitement. C’est un regroupement de deuxserveurs ou plus, en vue de créer un "super serveur virtuel". Un cluster fournit des fonctionsde haute disponibilité et de répartition de charges. Il facilite aussi l’évolutivité de la montéeen charge. Idée apparue à lorigine au milieu des années 80 chez Digital EquipmentCorporation, sous le nom de VAXCluster.En 1995, un accord de partenariat signé entre Microsoft et DEC, donne naissance à WindowsNT 4 Enterprise Server (nom de code : wolfpack); version qui intègre MSCS (MicrosoftCluster Serveur).Il existe aujourd’hui des solutions cluster sous Windows 2000/2003, Linux, Unix, OpenVMS,AS/400. Plusieurs constructeurs proposent des solutions propriétaires (Tandem, Siemens,Veritas, Novell, IBM, Sun...). Lotus fournit également une solution logicielle pour créer uncluster Notes entre des machines dhorizons différents (AS/400, Netware, Windows, Unix,Linux…).
    • Présentation Topologie et procédures daccèsLa topologie adoptée pour lIntranet duCentre de calcul de l‘Université de Bécharporte lavantage dêtre connecté à unestructure mixte (LAN, WLAN) et à Internet(WAN). Il est du type ROCKS Clusterversion 5.4 (2010)
    • Présentation Mode dutilisation dUBClusterUBCluster est accessible à travers une console decommande en ligne, utilisant le programme putty.exe(Gestionnaire de session client à distance)téléchargeable du site http://www.putty.org/.D’autres outils existent, tel que WinSSH …
    • Présentation Mode dutilisation dUBCluster Pour la plupart des cas, les utilisateurs recencés utilisent Microsoft Windows XP ou 7 comme système dexploitation. Pour Linux, on ouvre une fenêtre TERMINAL et on tape SSH et puis les coordonnées (user, pass)Une fois que lutilisateurdonne son username etson password dunemanière correcte, ilaccédera sur laplateforme UBClusteraprès quoi, il pourracommencer à envoyerses requêtes pour calcul.
    • Présentation Mode dutilisation dUBCluster Pour cela, UBCluster pourra être utilisé selon des modes variés. Il est toutefois extensible selon le besoin et la disponibilité du logiciel escompté (GPL ou Licence propriétaire). Les outils déjà intégrés sont : - Octave (équivalent GPL de Matlab) - APBS  (Adaptive Poisson-Boltzmann Solver) - Compilateur pour le calcul parallèle (C/C++, perl ou Fortran) - La suite viendra ...
    • Etude de cas Etude de séquences génétiquesBLAST, ou Basic Local  Alignment Search  Tool, est une  collection doutils qui sont  utilisés  pour  rechercher et trouver des régions de  la  similarité  locale entre  les séquences. Le  programme compare des  séquences  de  nucléotides ou de protéines aux  bases  de  données de  séquences, et calcule la  signification statistique des occurrences matches. Cette suite logiciels a été diffusée par le Centre national de lInformation en Biotechnologie NCBI USA. BLAST peut  être utilisé  pour des  comparaisons protéine-protéine ou des  comparaisons de  nucléotides-+nucléotides. Avant quun exemple dutilisation ne soit présenté, nous devons dabord définir quelques variables denvironnement. $BLASTDB - Cest la variable qui pointe  vers la base  de  données Blast. elle  est  fixé à $HOME/bio/ncbi/db/. Ce répertoire devrait  contenir les bases  de  données que  vous souhaitez rechercher. BLAST, par défaut, contrôle cet endroit et le répertoire  de  travail  courant pour la  présence des  bases  de  données. Cette  variable est  définie lors  de  la connexion par des  scripts de  connexion du  système, et  peut être  modifiée par lutilisateur pour  quelle  pointe  vers son vrai chemin  dans ses scripts de démarrage.•$BLASTMAT - Cette variable pointe vers lemplacement où les matrices score BLAST  sont présents. Elle est définie par /opt/bio/ncbi/data. Encore  une  fois, elle peut être modifiée  pour  pointer  vers un  emplacement désiré sur une base par utilisateur.BLAST nécessite  la présence de  2 ensembles  de  données. Un ensemble  de  données  qui  est la  séquence dentrée que vous souhaitez rechercher, et lautre  ensemble  de  données qui est la base  de  données que vous souhaitez faire une recherche avec. Utilisez la procédure suivante pour exécuter BLAST :Télécharger une base  de  données BLAST que vous souhaitez exécuter la comparaison  avec. Les bases  de données peuvent être obtenues sur  le  site ftp NCBI à ftp://ftp.ncbi.nlm.nih.gov/blast/db/.  Les bases  de données disponibles sur le  site mentionné ci-dessus sont pré-formatés. Il  est recommandé  que  les bases  de données BLAST sont stockés à lemplacement $BLASTDB. Visitez ftp://ftp.ncbi.nlm.nih.gov/blast/db/  dans votre navigateur pour voir la liste des bases de données disponibles préformatées. Télécharger une de  ces bases sur votre session  UBCluster en  utilisant wget.  Nous  allons utiliser  la base  de  données  du nucléotides de la Drosophila melanogaster (mouche)[mtamali@hpc ~]$ wget -q ftp://ftp.ncbi.nlm.nih.gov/blast/db/nt.08.tar.gz [mtamali@hpc ~]$ gunzip -c nt.08.tar.gz | ( cd $BLASTDB/ && tar -xf -)
    • Etude de cas Etude de séquences génétiques Exécutez la commande au format formatdb la base de données au format BLAST. Pour cet exemple, nous allons utiliser la Drosophila melanogaster (mouche) base de données de nucléotides.[mtamali@hpc ~]$ cd $BLASTDB[mtamali@hpc ~]$ wget -q ftp://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/drosoph.nt.gz[mtamali@hpc ~]$ gunzip drosoph.nt.gz[mtamali@hpc ~]$ formatdb -p F -V T -i drosoph.nt[mtamali@hpc ~]$ lsdrosoph.nt* drosoph.nt drosoph.nt.nhr drosoph.nt.nin drosoph.nt.nsq[mtamali@hpc ~]$ cd $HOME Après que la base de données est mise en forme, éditer un fichier dentrée de test :[mtamali@hpc ~]$ cat > test.txt >TestAGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGCTTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAATATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACCATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAGCCCGCACCTGACAGTGCGGGCTTTTTTTTTCGACCAAAGGTAACGAGGTAACAACCATGCGAGTGTTGAAGTTCGGCGGTACATCAGTGGCAAATGCAGAACGTTTTCTGCGTGTTGCCGATATTCTGGAAAGCAATGCCAGGCAGGGGCAGGTGGCCACCGTCCTCTCTGCCCCCGCCAAAATCACCAACCACCTGGTGGCGATGATTGAAAAAACCATTAGCGGCCAGGATGCTTTACCCAATATCAGCGATGCCGAACGTATTTTTGCCGAACTTTT Exécutez le programme blastall sur lentrée de test contre la base de données formatées.blastall -d drosoph.nt -p blastn -i test.txt
    • Etude de cas Etude de séquences génétiquesLe résultat sera alors[mtamali@hpc ~]$ blastall -d drosoph.nt -p blastn -i test.txtBLASTN 2.2.18 [Mar-02-2008] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A.Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLASTand PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res.25:3389-3402.Query= Test (560 letters) Database: drosoph.nt 1170 sequences; 122,655,632 total lettersSearching..................................................doneScore E Sequences producing significant alignments: (bits) Valuegi|10729531|gb|AE002936.2|AE002936 Drosophila melanogaster genom... 36 0.86gi|10728232|gb|AE003493.2|AE003493 Drosophila melanogaster genom... 36 0.86gi|10726497|gb|AE003698.2|AE003698 Drosophila melanogaster genom... 36 0.86gi|10726398|gb|AE003681.2|AE003681 Drosophila melanogaster genom... 36 0.86gi|10729308|gb|AE002665.2|AE002665 Drosophila melanogaster genom... 34 3.4gi|10729264|gb|AE002615.2|AE002615 Drosophila melanogaster genom... 34 3.4gi|7298233|gb|AE003648.1|AE003648 Drosophila melanogaster genomi... 34 3.4gi|7297628|gb|AE003628.1|AE003628 Drosophila melanogaster genomi... 34 3.4gi|10728546|gb|AE003447.2|AE003447 Drosophila melanogaster genom... 34 3.4gi|7290819|gb|AE003441.1|AE003441 Drosophila melanogaster genomi... 34 3.4gi|10728461|gb|AE003431.2|AE003431 Drosophila melanogaster genom... 34 3.4gi|10728241|gb|AE003495.2|AE003495 Drosophila melanogaster genom... 34 3.4gi|7292554|gb|AE003484.1|AE003484 Drosophila melanogaster genomi... 34 3.4gi|10727872|gb|AE003525.2|AE003525 Drosophila melanogaster genom... 34 3.4gi|10727399|gb|AE003587.2|AE003587 Drosophila melanogaster genom... 34 3.4gi|10727114|gb|AE003673.2|AE003673 Drosophila melanogaster genom... 34 3.4gi|10726705|gb|AE003740.2|AE003740 Drosophila melanogaster genom... 34 3.4....
    • Etude de cas Etude de distribution de BolzmannCréer un script de soumission simple appelé blast_sge.sh contenant le texte suivant#!/bin/bash##$ -cwd#$ -S /bin/bash#$ -j yexport BLASTDB=$HOME/bio/ncbi/db/export BLASTMAT=/opt/bio/ncbi/data//opt/bio/ncbi/bin/blastall -d drosoph.nt -p blastn -i $HOME/test.txt -o $HOME/result.txtExécuter avec[mtamali@hpc ~]$ qsub blast_sge.shYour job 10 ("blast_sge.sh") has been submittedC’est fini pour cette exemple et c’est à vous de découvrir la suite !
    • Etude de cas Utilisation de lenvironnement Octave 3Un exemple de produit de matrice ayant été exécuté sous Octave. De même, des système déquations aux dérivées partiellespeuvent aussi être régie
    • Etude de cas Utilisation de lenvironnement Octave 3Un exemple de traçage de fonction 3D exportée utilisant Xming sur une machine Windows 7 pour permettre dafficher lerésultat graphique sur la machine cliente. De même, toute application graphique sur le serveur UBCluster peut être lancéeà distance et visualisée, sous Xming sur la machine du client.
    • Etude de cas Utilisation de lenvironnement Octave 3Un exemple de calcul symbolique, très intéressant, surtout, si on a besoin de calculer dans une espace indéfini desdérivées ou intégrales.octave:1> df = g_diff ( "sin(x)" , "x" ) df = cos(x)octave:2> x = pi; eval ( df ); ans = -1Un exemple de calcul symbolique, très intéressant, surtout, si on a besoin de calculer dans une espace indéfini desdérivées ou des intégrales.octave:1> symbolsoctave:2> x = sym ("x")x = xoctave:3> y = sym ("y");octave:4> (x + 6) * yans = y*(6.0+x)octave:5> differentiate (ans, x)ans = y
    • Etude de cas Utilisation du calcul parallèle Topologie du calcul parallèle dans un cluster. Chaque machine est par défaut à multi-processeurs au même moment que le cluster peut-être Constitué de plusieurs machines (dites NODES) montées ensemble et supervisées par une machine appelée FRONTEND. La topologie d’un programme est la suivante : /*The Parallel Hello World Program*/ #include <stdio.h> #include <mpi.h> main(int argc, char **argv) { int node; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &node); printf("Hello World from Node %dn", node); MPI_Finalize(); } La compilation est lancée par la commande suivante : mpicc hello.c -o hello ↵ Dans le cas d UBCluster on s’attend à une réponse équivalente à ce qui suit : mpirun –hostfile machines hello ↵ Hello World from Node 2 Hello World from Node 0 Hello World from Node 4 Hello World from Node 3 Hello World from Node 7 Hello World from Node 1 Hello World from Node 6 Hello World from Node 5
    • Etude de cas Utilisation du calcul parallèleExemple d’intégration numérique par la régle du point millieu.Soit à determiner la valeur de l’intégrale suivante :Nous substituons à l’integrale sont équivalent selon la régle du point millieu :Le programme c équivalent est le suivant : /* C Example */ #include <mpi.h> #include <math.h> #include <stdio.h> float fct(float x) { return cos(x); } /* Prototype */ float integral(float a, int n, float h); void main(argc,argv) int argc; char *argv[]; {
    • Etude de cas Utilisation du calcul parallèle /*********************************************************************** This is one of the MPI versions on the integration example * * It demonstrates the use of : * * 1) MPI_Init * * 2) MPI_Comm_rank * * 3) MPI_Comm_size * * 4) MPI_Recv * * 5) MPI_Send * * 6) MPI_Finalize * * * **********************************************************************/ int n, p, i, j, ierr,num; float h, result, a, b, pi; float my_a, my_range; int myid, source, dest, tag; MPI_Status status; float my_result; pi = acos(-1.0); /* = 3.14159... */ a = 0.; /* lower limit of integration */ b = pi*1./2.; /* upper limit of integration */ n = 100000; /* number of increment within each process */ dest = 0; /* define the process that computes the final result */ tag = 123; /* set the tag to identify this particular job */
    • Etude de cas Utilisation du calcul parallèle /* Starts MPI processes ... */ MPI_Init(&argc,&argv); /* starts MPI */ MPI_Comm_rank(MPI_COMM_WORLD, &myid); /* get current process id */ MPI_Comm_size(MPI_COMM_WORLD, &p); /* get number of processes */ h = (b-a)/n; /* length of increment */ num = n/p; /* number of intervals calculated by each process*/ my_range = (b-a)/p; my_a = a + myid*my_range; my_result = integral(my_a,num,h); printf("Process %d has the partial result of %fn", myid,my_result); if (myid == 0) { result = my_result; for (i=1;i<p;i++) { source = i; /* MPI process number range is [0,p-1] */ MPI_Recv(&my_result, 1, MPI_REAL, source, tag, MPI_COMM_WORLD, &status); result += my_result; } printf("The result =%fn", result); } else MPI_Send(&my_result, 1, MPI_REAL, dest, tag, MPI_COMM_WORLD); /* send my_result to intended dest.*/ MPI_Finalize(); /* let MPI finish up ... */ }
    • Etude de cas Utilisation du calcul parallèle float integral(float a, int n, float h) { int j; float h2, aij, integ; integ = 0.0; /* initialize integral */ h2 = h/2.; for (j=0;j<n;j++) { /* sum over all "j" integrals */ aij = a + j*h; /* lower limit of "j" integral */ integ += fct(aij+h2)*h; } return (integ); } Le résultat est par conséquent : [guest@hpc ~]$ nano integrale.c [guest@hpc ~]$ mpicc -o integrale integrale.c [guest@hpc ~]$ mpirun -np 8 integrale Process 1 has the partial result of 0.187593 Process 2 has the partial result of 0.172887 Process 0 has the partial result of 0.195090 Process 4 has the partial result of 0.124363 Process 3 has the partial result of 0.151537 Process 5 has the partial result of 0.092410 Process 7 has the partial result of 0.019215 Process 6 has the partial result of 0.056906 The result =1.000000 [guest@hpc ~]$ mpirun -np 8 --hostfile machines integrale Process 0 has the partial result of 0.195090 Process 3 has the partial result of 0.151537 Process 1 has the partial result of 0.187593 Process 6 has the partial result of 0.056906 Process 4 has the partial result of 0.124363 Process 7 has the partial result of 0.019215 Process 2 has the partial result of 0.172887 Process 5 has the partial result of 0.092410 The result =1.000000
    • Etude de cas Utilisation du calcul parallèle Exemple d’envoi de JOB par la commande qsub. Editer un fichier JOB, nommé taches.sh dont le contenu est : #!/bin/bash #$ -M mtamali@mail.univ-bechar.dz #$ -cwd #$ -S /bin/bash mpirun -np 8 -machinefile machines integrale On lance la tâche de la façon suivante : [mtamali@hpc ~]$ qsub -pe orte 8 taches.sh 8 étant le nombre de processeurs à allouer à mon JOB [mtamali@hpc ~]$ nano taches.sh [mtamali@hpc ~]$ qsub taches.sh 4.hpc.univ-bechar.dz [mtamali@hpc ~]$ qstat Job id Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 4.hpc taches.sh mtamali 0 R default [mtamali@hpc ~]$