Se connecter à Colosse



Documents pareils
Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

INFO-F-404 : Techniques avancées de systèmes d exploitation

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Open Source Job Scheduler. Installation(s)

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Déploiement OOo en environnement Windows Terminal Server

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

SSH, le shell sécurisé

Environnements informatiques

Utiliser un proxy sous linux

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Guide d installation de SugarCRM Open Source version 4.5.1

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Projet Administration Réseaux

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

I. Linux/Unix/UnixLike

FÉDÉRATION INTERNATIONALE DE NATATION Diving

Aide-Mémoire unix. 9 février 2009

Les différentes méthodes pour se connecter

SERVEUR DÉDIÉ DOCUMENTATION

Paxton. ins Net2 desktop reader USB

Déploiement de SAS Foundation

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

XtremWeb-HEP Interconnecting jobs over DG. Virtualization over DG. Oleg Lodygensky Laboratoire de l Accélérateur Linéaire

Once the installation is complete, you can delete the temporary Zip files..

La photo numérique et les logiciels libres. Asie Photos

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Tutoriel Cloud IFB - Initiation -

APPENDIX 6 BONUS RING FORMAT

sshgate Patrick Guiran Chef de projet support

NTP (Network Time Protocol)

Gestion de clusters de calcul avec Rocks

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Instructions Mozilla Thunderbird Page 1

IFT Systèmes d exploitation - TP n 1-20%

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Installation d'un TSE (Terminal Serveur Edition)

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Vanilla : Virtual Box

Accès aux ressources informatiques de l ENSEEIHT à distance

ArcGis Server 10 (sur VM CentOS bits) DOCUMENT D INSTALLATION

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Flexible Identity. authentification multi-facteurs. authentification sans token. Version 1.0. Copyright Orange Business Services mai 2014.

Guide d installation de L A TEX

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Open Source Job Scheduler

Travaux Pratiques sur GRID 5000

Direction des Systèmes d'information

Installation et mise en œuvre de OpenSSH sous AIX 5L

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Get Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF

AIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES

DOCUMENTATION - FRANCAIS... 2

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

À propos de l'canon Mobile Scanning MEAP Application

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Client windows Nagios Event Log

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

DOCUMENTATION - FRANCAIS... 2

Installation d'un serveur RADIUS

Sauvegarde sous MAC avec serveur Samba

Comment faire un Mailing A partir d une feuille Calc

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

C.M. 1 & 2 : Prise en main de Linux

CA ARCserve D2D pour Linux

The impacts of m-payment on financial services Novembre 2011

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

Services d impression, Partie 2 : CUPS

Guide d installation JMap 5.0

Guide de récupération de Windows Server 2003 R2 pour serveurs Sun x64

VERSION 64 BITS DE SAS ET VOS FICHIERS MICROSOFT OFFICE 32-BITS

WEB page builder and server for SCADA applications usable from a WEB navigator

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

Détection d'intrusions en environnement haute performance

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

Vue d ensemble de Windows PowerShell

Travailler à l'ensimag avec son matériel personnel

JES Report Broker. Campus Technologies. SAE de CHALEMBERT 1 Rue Blaise PASCAL JAUNAY-CLAN info@campustec.

Vade mecum installation et configuration d une machine virtuelle V5.1.0

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Petit guide pour l installation de CVW sous Linux

POLICY: FREE MILK PROGRAM CODE: CS-4

Service FTP. Stéphane Gill. Introduction 2

Notice Technique / Technical Manual

Tutoriel de formation SurveyMonkey

Transcription:

1 Se connecter à Colosse colosse.calculquebec.ca SSH est un protocole pour ouvrir un terminal sécurisé sur un système distant Sur Linux et Mac OS Intégré au système sous la forme de la commande ssh dans le terminal: $ ssh user1@colosse.calculquebec.ca Sur Windows Télécharger Putty: http://goo.gl/f1wuee

2 Préparation des exercices $ cd fmoab/ $ pwd /home/userx/fmoab

Moab en pratique Maxime Boissonneault, Frédérick Lefebvre & Laurent Duchesne U. Laval - Mars 2014 3

Calcul Haute Performance 101 V1.0 Prérequis 4

5 Pré-requis Formation "Linux 101" Connexion SSH à un système distant Utilisation d'un éditeur texte en ligne de commande La commande module Formation "Linux 201" Commandes de base Lancement d'un programme avec arguments

6 Exécuter une tâche Utilisateur (vous) Tâche (faire un bon vin) + +? Colosse

7 Qu'est-ce que MOAB? Ordonnanceur Gère : Horaire des tâches Priorités Accès aux ressources

8 Horaire des tâches Tâches sont exécutées de manière différée = Doivent être autonomes (mode «batch»)

Calcul Haute Performance 101 V1.0 Politique d ordonnancement Prioriser les accès selon les modalités définies par le Comité d allocation des ressources Plus vous calculez : plus votre priorité diminue, moins vous calculez, plus elle augmente

Calcul Haute Performance 101 V1.0 Les ressources Nombre de coeurs/noeuds/gpus? Temps requis? Mémoire requise? Licences requises?

Calcul Haute Performance 101 V1.0 Sondage Remplir le sondage suivant : http://m.socrative.com/student/ Salle : 824700

- Université Laval 12 Prémisse - Game of Life Any live cell with fewer than two live neighbours dies, as if caused by under-population. Any live cell with two or three live neighbours lives on to the next generation. Any live cell with more than three live neighbours dies, as if by overcrowding. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction. http://bccd.net/

13 Structure des exercices submit.sh fichier de soumission de départ solution.sh solutionnaire data/ données d'entrées output/ données de sorties

14 Exercice 1: soumission de base Répertoire base/ Description Écrire un fichier de soumission de base 1. dans base/, exécuter «msub submit.sh» 2. Qu est-ce que vous observez?

15 Fichier de soumission Un fichier de soumission contient 2 sections Les instructions à l ordonnanceur (précédées par #PBS) La tâche à exécutée (toujours après les instructions) sous forme d un script bash Doit contenir au minimum: #PBS -A <PROJET> : Projet dont l usager fait parti #PBS -l nodes=1:ppn=<nb-coeurs> : Taille de la tâche ppn est toujours un multiple de 8. Donc 1 noeud, 8 coeurs #PBS -l walltime=<nb-secondes> : Durée de la tâche

16 Exercice 1a: soumission de base Répertoire base/ Description Écrire un fichier de soumission de base 1. Compléter le fichier submit.sh 2. Exécuter «msub submit.sh» Astuce 1 On peut trouver son projet avec Note Limitons le walltime à 300 (5 minutes) la commande «colosse-info» sur la ligne commençant par «Your RAP ID is :».

Calcul Haute Performance 101 V1.0 Fichier de soumission 17

18 Fichier de soumission Script "shell" lu et interprété par le gestionnaire de ressources (Torque) et l'ordonnanceur (MOAB) Contient toutes les instructions et commandes nécessaires à l'exécution d'une tâche

19 En-tête du script de soumission Contient #!/bin/bash Type de script #PBS -N MyJob Options de l'ordonnanceur #PBS -A abc-000-xx Options du gestionnaire de ressources #PBS -l walltime=300 #PBS -l nodes=1:ppn=8

20 Corps du script de soumission module load \ Corps compilers/intel/12.0.4 Chargement des modules Préparation de l'environnement module load \ Exécution du logiciel mpi/openmpi/1.4.5_intel mpirun./executable -param

21 En-tête Language "shell" utilisé Type de script #!/bin/bash #PBS -N MyJob #PBS -A abc-000-xx #PBS -l walltime=300 #PBS -l nodes=1:ppn=8 Options de l'ordonnanceur Options du gestionnaire de ressources

22 En-tête Nom de la tâche (alphanumérique) Type de script #!/bin/bash #PBS -N MyJob #PBS -A abc-000-xx #PBS -l walltime=300 #PBS -l nodes=1:ppn=8 Options de l'ordonnanceur Options du gestionnaire de ressources

23 En-tête Projet (RAPI) Type de script #!/bin/bash #PBS -N MyJob #PBS -A abc-000-xx #PBS -l walltime=300 #PBS -l nodes=1:ppn=8 Options de l'ordonnanceur Options du gestionnaire de ressources

24 En-tête Temps estimé en secondes Type de script #!/bin/bash #PBS -N MyJob #PBS -A abc-000-xx #PBS -l walltime=300 #PBS -l nodes=1:ppn=8 Options de l'ordonnanceur Options du gestionnaire de ressources

25 En-tête Nombre de noeuds et de coeurs par noeud Type de script #!/bin/bash #PBS -N MyJob #PBS -A abc-000-xx #PBS -l walltime=300 #PBS -l nodes=1:ppn=8 Options de l'ordonnanceur Options du gestionnaire de ressources

26 Corps module load \ compilers/intel/12.0.4 module load \ mpi/openmpi/1.4.5_intel cd $PBS_O_WORKDIR export SCRATCH=/scratch/... mpiexec./executable -param Chargement des modules Préparation de l'environnement Exécution du logiciel

27 Corps module load \ compilers/intel/12.0.4 module load \ mpi/openmpi/1.4.5_intel cd $PBS_O_WORKDIR export SCRATCH=/scratch/... mpiexec./executable -param Chargement des modules Préparation de l'environnement Exécution du logiciel

28 Corps module load \ compilers/intel/12.0.4 module load \ mpi/openmpi/1.4.5_intel cd $PBS_O_WORKDIR export SCRATCH=/scratch/... mpiexec./executable -param Chargement des modules Préparation de l'environnement Exécution du logiciel

29 Fichier de soumission #!/bin/bash #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=300 #PBS -N TACHE_1 #PBS -o TACHE_1.out #PBS -e TACHE_1.err echo bonjour echo erreur 1>&2 submit.sh

30 Fichier de soumission submit.sh #!/bin/bash #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=300 #PBS -N TACHE_1 #PBS -o TACHE_1.out #PBS -e TACHE_1.err echo bonjour echo erreur 1>&2 Nom de la tâche Fichiers de sortie standard et d'erreur

31 Fichier de soumission $ msub submit.sh 10083679 $ ls -1 submit.sh TACHE_1.out TACHE_1.err $ cat TACHE_1.out bonjour $ cat TACHE_1.err erreur Soumission Fichiers de sortie standard et d'erreur

Calcul Haute Performance 101 V1.0 Diagnostic (débutant) 32

33 Identifiant Trouver ses tâches $ showq -u $USER Temps restant active jobs------------------------ JOBID USERNAME STATE PROCS REMAINING STARTTIME 10083695 laurent Running 8 00:04:50 Fri Oct 19 13:40:59 1 active job 8 of 6904 processors in use by local jobs (0.12%) 678 of 864 nodes active (78.47%) eligible jobs---------------------- JOBID USERNAME STATE PROCS WCLIMIT QUEUETIME 0 eligible jobs blocked jobs----------------------- JOBID USERNAME STATE PROCS WCLIMIT QUEUETIME 10083696 laurent Idle 8 00:05:00 Fri Oct 19 13:41:02 1 blocked job Total jobs: 2 Tâches en erreur ou en surplus

34 checkjob $ checkjob 10083679... État de la tâche AName: TACHE_1 State: Running Creds: user:laurent group:cvt-445-01 account:colosse-users... WallTime: 00:00:04 of 00:05:00 SubmitTime: Fri Oct 19 13:19:41 (Time Queued Total: 00:00:01 Eligible: 00:00:00) StartTime: Fri Oct 19 13:19:42 Nom de la tâche Projet (RAPI) IWD: SubmitDir: Executable: /home/laurent/fmoab/01_base $HOME/fmoab/01_base /opt/moab/spool/moab.job.j9aoqq Temps d'exécution Répertoire d'exécution

- Université Laval 35 États possibles Idle Running Completed Blocked

36 Annuler une tâche $ mjobctl -c <job_id> Si cette commande ne fonctionne pas $ mjobctl -F <job_id> Si cette commande ne fonctionne pas colosse@calculquebec.ca

Calcul Haute Performance 101 V1.0 Environnement 37

- Université Laval 38 Modules Arborescence d'applications à charger dans votre environnement Exemples : module avail module load compilers/intel

- Université Laval 39 Variables Données concernant l'exécution courante de votre fichier de soumission Exemples : $MOAB_JOBID, $MOAB_PROCCOUNT,

Calcul Haute Performance 101 V1.0 Pratique (suite) 40

- Université Laval 41 Concept: &, wait $./ma_commande & $ wait Attente des tâches en Mise en arrière plan arrière plan

- Université Laval 42 Concept: &, wait $./ma_commande & $ wait Utilité : 8 tâches séries Tâches de durées similaires

43 Exercice #2: Tâche série (1) Répertoire serie1/ Description Lancer 8 tâches séries, sur des jeux de données différents. Fichiers data/[1-8].dat d'entrées Fichiers de output/[1-8].out sorties

44 Exercice #2: Tâche série (2) Répertoire Description serie1/ Lancer 8 tâches séries, sur des jeux de données différents. 1. Modifier le fichier submit.sh qui lance actuellement une seule tâche pour la lancer 8 fois en variant les données de 1.dat à 8.dat 2. Exécuter «msub submit.sh» Astuce 2 : Il faut répéter 8 fois la commande et attendre la fin de la dernière

45 Solutions #2: Tâche série (1) #!/bin/bash #PBS -N SERIE_1 #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=00:05:00 cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life ${LIFE_DIR}/Life.c-serial -g 15 -i data/1.dat -o output/1.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/2.dat -o output/2.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/3.dat -o output/3.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/4.dat -o output/4.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/5.dat -o output/5.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/6.dat -o output/6.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/7.dat -o output/7.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/8.dat -o output/8.out & wait

46 Solutions #2: Tâche série (1) ${LIFE_DIR}/Life.c-serial -g 15 -i data/1.dat -o output/1.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/2.dat -o output/2.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/3.dat -o output/3.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/4.dat -o output/4.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/5.dat -o output/5.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/6.dat -o output/6.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/7.dat -o output/7.out & ${LIFE_DIR}/Life.c-serial -g 15 -i data/8.dat -o output/8.out & wait Attente des tâches Mise en arrière en arrière plan

- Université Laval 47 Boucle «for» (rappel) Boucle avec seq for i in $(seq 1 10); do echo $i done Boucle avec accolades for i in {1..10}; do echo $i done Boucle sur les fichiers for file in *.sh; do echo $file done

- Université Laval 48 Boucle «for» (rappel) Boucle "C style" for (( i=1;i<=10; i++ )); do echo $i done

- Université Laval 49 Concept: Lot de tâches #PBS -t [start-end:step] $MOAB_JOBARRAYINDEX Utilité : Un grand nombre de tâches avec des caractéristiques similaires.

- Université Laval 50 Exemple: Lôt de tâches #PBS -t [1-40:8] $MOAB_JOBARRAYINDEX = {1;9;17;25;33}

- Université Laval 51 Exemple: Lôt de tâches en détail job id: 12659 <task id> <LB> <UB> #PBS -t [1-40:8] $MOAB_JOBARRAYINDEX = {1;9;17;25;33} 12659 01 23 17 25 19 16 24 32 8 12659 4 33 41 Idle Running Completed

52 Exercice 3: Tâche série (2) Répertoire Description serie2/ Lancer un lôt de tâches séries pour traiter un bon nombre de fichiers d'entrées. Fichiers data/[1-80].dat d'entrées Fichiers de output/[1-80].out sorties

53 Exercice 3: Tâche série (2) Répertoire Description serie2/ Lancer un lôt de tâches séries pour traiter un bon nombre de fichiers d'entrées. cd ${PBS_O_WORKDIR} Indice 1: boucle for LIFE_DIR=/clumeq/example/life ${LIFE_DIR}/Life.c-serial -g 15 \ -i data/1.dat -o output/1.out & [...] wait Indice 2: boucle de MOAB_JOBARRAYINDEX à (MOAB_JOBARRAYINDEX + 7)

54 Exercice 3: Tâche série (2) - Solution #!/bin/bash #PBS -N SERIE_2 #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=00:05:00 #PBS -t [1-80:8] cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life LB=${MOAB_JOBARRAYINDEX} UB=$(( $LB + 7 )) for (( i=$lb; i<=$ub; i++ )); do ${LIFE_DIR}/Life.c-serial -g 15 -i data/$i.dat \ -o output/$i.out & done wait

55 Exercice 3: Tâche série (2) - Solution #PBS -t [1-80:8] LB=${MOAB_JOBARRAYINDEX} UB=$(( $LB + 7 )) for (( i=$lb; i<=$ub; i++ )); do ${LIFE_DIR}/Life.c-serial -g 15 \ -i data/$i.dat -o output/$i.out & done wait 10 tâches différentes Attente des tâches en arrière plan Boucle de lancement des tâches

- Université Laval 56 Concept: GNU parallel $ module load tools/gnu-parallel $ seq <start> <end> parallel./<ma_tache> {}... $ seq 1 10 parallel echo "valeur={}" Utilité : Lot de tâches de durées variables

57 Exercice 4: Tâche série (3) Répertoire Description serie3/ Lancer une tâche GNU parallel pour traiter un bon nombre de fichiers d'entrées. Fichiers data/[1-80].dat d'entrées Fichiers de output/[1-80].out sorties

58 Exercice 4: Tâche série (3) Répertoire Description serie3/ Lancer une tâche GNU parallel pour traiter un bon nombre de fichiers d'entrées. LB=${MOAB_JOBARRAYINDEX} UB=$(( $LB + 7 )) for (( i=$lb; i<=$ub; i++ )) do ${LIFE_DIR}/Life.c-serial -g 15 -i data/$i.dat \ -o output/$i.out & done wait Indice: remplacer la boucle par une séquence (seq) de 1 à 80

59 Exercice 4: Tâche série (3) - Solution #!/bin/bash #PBS -N SERIE_3 #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=00:05:00 module load tools/gnu-parallel cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life seq 1 80 parallel "${LIFE_DIR}/Life.c-serial -g 15 -i \ data/{}.dat -o output/{}.out"

60 Exercice 4: Tâche série (3) - Solution module load tools/gnu-parallel cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life Chargement du module seq 1 80 parallel "${LIFE_DIR}/Life.c-serial \ -g 15 -i data/{}.dat -o output/{}.out" Boucle de lancement des tâches

61 GNU parallel VS lôt de tâches En général, utilisé pour faire du "parameter sweeping" GNU parallel pour de nombreuses tâches de courtes durées. Lôts de tâches pour de nombreuses tâches de plus longues durées.

- Université Laval 62 Concept: Tâche MPI $ module load compilers/... mpi/openmpi/... $ mpiexec./<ma_tache>... Utilité : Tâche MPI typique

63 Exercice 5: Tâche MPI Répertoire mpi/ Description Lancer une tâche MPI traitant un seul fichier de donnée. Fichier d'entrée data/1.dat Fichier de output/1.out sortie

64 Exercice 5: Tâche MPI Répertoire Description mpi/ Lancer une tâche MPI traitant un seul fichier de donnée. cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life ${LIFE_DIR}/Life.c-mpi -g 5 -i data/1.dat \ -o output/1.out

65 Exercice 5: Tâche MPI - Solution #!/bin/bash #PBS -N MPI_1 #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=00:05:00 module load compilers/intel/12.0.4 \ mpi/openmpi/1.4.5_intel cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life mpiexec ${LIFE_DIR}/Life.c-mpi -g 5 \ -i data/1.dat -o output/1.out

66 Exercice 5: Tâche MPI - Solution module load compilers/intel/12.0.4 \ mpi/openmpi/1.4.5_intel cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life Chargement des modules mpiexec ${LIFE_DIR}/Life.c-mpi -g 5 \ -i data/1.dat -o output/1.out Commande MPI

67 Exercice 5: Tâche MPI - Solution mpiexec [-n -np 8] [-npernode 8] \ ${LIFE_DIR}/Life.c-mpi... Nombre rang total #PBS -l nodes=1:ppn=8 1 * 8 = 8 Nombre de rang par noeud

- Université Laval 68 Concept: Tâche OpenMP $ export OMP_NUM_THREADS=8 $ module load compilers/... $./<ma_tache>... Utilité : Tâche OpenMP typique

69 Exercice 6: Tâche OpenMP Répertoire openmp/ Description Lancer une tâche OpenMP traitant un seul fichier de donnée. Fichier d'entrée data/1.dat Fichier de output/1.out sortie

70 Exercice 6: Tâche OpenMP Répertoire Description openmp/ Lancer une tâche OpenMP traitant un seul fichier de données. $ cd ${PBS_O_WORKDIR} $ LIFE_DIR=/clumeq/example/life $ ${LIFE_DIR}/Life.c-openmp -g 5 -i data/1.dat \ -o output/1.out Indice: il faut utiliser la variable OMP_NUM_THREADS

71 Exercice 6: Tâche OpenMP - Solution #!/bin/bash #PBS -N OPENMP_1 #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=00:05:00 module load compilers/intel/12.0.4 cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life export OMP_NUM_THREADS=8 ${LIFE_DIR}/Life.c-openmp -g 50 \ -i data/1.dat -o output/1.out

72 Exercice 6: Tâche OpenMP - Solution module load compilers/intel/12.0.4 cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life export OMP_NUM_THREADS=8 ${LIFE_DIR}/Life.c-openmp -g 50 \ -i data/1.dat -o output/1.out Chargement du module Nombre de fils d'exécutions

73 Exercice 6: Tâche OpenMP - Question #PBS -l nodes=1:ppn=8 export OMP_NUM_THREADS=8 #PBS -l nodes=2:ppn=8 export OMP_NUM_THREADS=16 16 fils d'exécutions sur le même noeud!

Calcul Haute Performance 101 V1.0 Diagnostic (intermédiaire) 74

75 showq showq -u $USER [-r -i -b] Liste de mes tâches running idle blocked showq -w acct=<projet> Liste des tâches associées à un projet

76 checkjob -v -v <job_id> Informations plus avancées sur une tâche Charge moyenne $ checkjob -v -v 10083679... Average Utilized Procs: 0.02 EnvVariables: MOAB_ACCOUNT=cvt-445-aa,MOAB_BATCH=... Priority Analysis: Job PRIORITY* Cred(Class) FS(Accnt) Weights -------- 1( 1) 10( 10) 10083705 90013 100.0(90000) 0.0( 0.1) Priorité

Calcul Haute Performance 101 V1.0 Application commerciale 77

78 Types d'applications Fortement couplées Non-couplées

79 Application fortement couplée Tâches capables de dialoguer avec le gestionnaire de ressources (Torque) mpiexec [-n -np 8] \ [-npernode 8]...

80 Application non-couplée $ /clumeq/bin/moabhl2hl.py \ --format <format> Formats: ANSYS-CFX ANSYS-FLUENT HP-MPI PDSH GAUSSIAN Permet de convertir un "hostfile" pour une application non-couplée

81 Application non-couplée - SSH $ ssh-keygen -q -t dsa -N "" \ -f $HOME/.ssh/id_dsa Permet la communication SSH entre les noeuds

82 Application non-couplée - SSH Host * StrictHostKeyChecking no UserKnownHostsFile=/dev/null Fichier ~/.ssh/config

83 Application non-couplée - SSH colosse1$ ssh localhost <message du système> colosse1$ Pour tester la clé SSH. Le logiciel ne devrait poser aucune question.

Calcul Haute Performance 101 V1.0 Checkpointing 84

- Université Laval 85 Concept: BLCR $ module load tools/blcr $ source /clumeq/bin/cq_blcr.sh $ CKPT_DELAY=X $ ckpt_run./<ma_tache> $ ckpt_wait Utilité : Checkpointing d'une application série Checkpointing d'une application OpenMP

86 Exercice 7: BLCR Répertoire blcr/ Description Checkpointing d'une application OpenMP. Fichier d'entrée data/1.dat Fichier de output/1.out sortie

87 Exercice 7: BLCR Répertoire blcr/ Description Checkpointing d'une application OpenMP. module load compilers/intel/12.0.4 cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life export OMP_NUM_THREADS=8 ${LIFE_DIR}/Life.c-openmp -g 350 \ -i data/1.dat -o output/1.out

88 Exercice 7: Tâche BLCR - Solution #!/bin/bash #PBS -N BLCR #PBS -A colosse-users #PBS -l nodes=1:ppn=8 #PBS -l walltime=00:01:10 module load apps/blcr compilers/intel/12.0.4 cd ${PBS_O_WORKDIR} LIFE_DIR=/clumeq/example/life source /clumeq/bin/cq_blcr.sh CKPT_DELAY=1 export OMP_NUM_THREADS=8 ckpt_run ${LIFE_DIR}/Life.c-openmp -g 350 \ -i data/1.dat -o output/1.out ckpt_wait

89 Exercice 7: Tâche BLCR - Solution module load apps/blcr \ compilers/intel/12.0.4 source /clumeq/bin/cq_blcr.sh CKPT_DELAY=1 export OMP_NUM_THREADS=8 ckpt_run ${LIFE_DIR}/Life.c-openmp -g 350 \ -i data/1.dat -o output/1.out ckpt_wait Exécution de la Chargement des modules Chargement des Attente de la tâche tâche fonctions BLCR Délais de checkpointing

Calcul Haute Performance 101 V1.0 Options/trucs (avancés) de l'ordonnanceur 90

91 Checkpointing #PBS -l gattr=ckpt #PBS -r

92 Noeud de 48 Go #PBS -l feature='48g'

93 Licence #PBS -l gres=<id1>[:<nblic1>][%<id2>:<nblic2>...] #PBS -l gres=matlab:2

94 Dépendances entre les tâches #PBS -l depend=<jobid> #PBS -l depend=afterok:<jobid1>:<jobid2> jobid1=$(msub script1.sh tail -n 1) jobid2=$(msub script2.sh -l depend=$jobid1 tail -n 1) jobid3=$(msub script3.sh -l depend=$jobid2 tail -n 1) jobid4=$(msub script4.sh -l depend=$jobid4 tail -n 1)

95 Tâches interactives msub -I -A colosse-users -l nodes=1:ppn=8 -l walltime=60:00 Note : une tâche interactive se termine lorsque vous fermez le terminal.

96 SSH sur des noeuds d exécution $ checkjob 10625348 grep -A4 "Allocated Nodes" Allocated Nodes: [r109-n96:8][r106-n53:8][r108-n50:8][r109-n2:8] [r109-n50:8][r109-n69:8][r110-n43:8] $ ssh r109-n96

Calcul Haute Performance 101 V1.0 Outils 97

- Université Laval 98 Outils - Colosse Script Fonction colosse-info jobload.sh <job_id> Informations sur mon utilisation de Colosse. Charge des machines pour une tâche en particulier.

99 Outils - Colosse Conseils dans les courriels de fin de tâche #PBS -M mon_adresse@courriel.com #PBS -m bea Tips: - This job had a large average number of input/output operations per seconds (111) on at least one node. Performing large read/write operations will improve its performance. No more than a few tens of IOPS should usually be required. - The used walltime was significantly lower than the requested walltime. This job could have started earlier if a shorter walltime was requested. Req_walltime: (36000s), Walltime: (21255s) Job report URL: https://portail.calculquebec.ca/common/ report/myjobs/colosse/10472025/0/

100 Outils - Colosse - Portail

101 Outils - Colosse - Portail

Calcul Haute Performance 101 V1.0 Conseils 102

- Université Laval 103 Conseils en vrac Remplir la queue Échéances Bonne estimation Réservations "Checkpointing"

Calcul Haute Performance 101 V1.0 Temps d'attente 10 coeurs années (sans allocation) queue: 20 tâches de 256 coeurs de 24h 256/10 ~= 25 fois l'allocation peut s'attendre à avoir ses résultats finaux dans 25*20 = 500 jours*

Calcul Haute Performance 101 V1.0 Exemple réel 105

Fin 106