wiki:FermeLocale

Version 71 (modified by /C=FR/L=Paris/O=Centre national de la recherche scientifique/CN=MELOT Frederic, 5 years ago) ( diff )

--

Machines communes

Serveurs de calcul

Des serveurs de calcul sont mis à la disposition des utilisateurs du LPSC. Certains sont réservés à l'usage de groupe alors que d'autres sont à usage général. La liste de ces serveurs et leur fonction est donnée sur la page ServeursLpsc. Pour se logger sur ces serveurs, utilisez vos login et mot de passe habituels.



Ferme de machines communes

Le LPSC est doté d'une ferme de machines communes locales, dénommées lpsc-c* (de c0 à c12 en juillet 2018). Ces machines ont été installées dans 3 pools de versions différentes de Linux : SL6, Centos7 ou Fedora30. Chaque pool est composé de machines installées de façon identique (via le logiciel QUATTOR). Toutes mises à jour ou ajouts de paquets sur une machine seront répercutés sur le pool.

Ces machines toutes presque toutes identiques. Il s'agit de poweredge 1950 à 8 processeurs et 15 Go de RAM, excepté :

  • lpsc-2 et lpsc-c8 : deux poweredge R620 à 32 processeurs et 125 Go de RAM
  • lpsc-c0 : un poweredge 1950 à 24 processeurs et 94 Go RAM
  • lpsc-c12 : un poweredge R410 à 4 processeurs et 7 Go de RAM


L'accès à ces machines s'effectue par ssh -X avec votre login/mot de passe habituel. Il est possible de les utiliser en mode interactif ou en batch.

Monitoring disponible sur https://lpsc-monitoring.in2p3.fr

Sur toutes ces machines, voilci les applications recommandées pour les différents types de fichiers (n'hésitez pas à nous contacter pour agrandir cette liste) :

  • images => display
  • pdf => evince
  • texte => vi, emacs, gedit, nedit

Pour toutes ces machines, certains logiciels sont utilisables quelque soit le pool utilisé :

  • Matlab est installé dans /utils/MATLAB/latest. Il existe d'autres versions de ce logiciel dans /utils/MATLAB.
  • IDL est installé dans /utils/IDL/latest (export IDL_DIR=/utils/IDL/latest ; /utils/IDL/latest/bin/idl). Il existe d'autres versions de ce logiciel dans /utils/IDL.


  • Pour les serveurs en SL6 (3 machines : lpsc-c5 => lpsc-c7), voici la liste des logiciels installés (visible en interne seulement) :


  • Pour les serveurs en Centos7 (7 machines : lpsc-c0 => lpsc-c4, lpsc-c8 => lpsc-c11), voici la liste des logiciels installés (visible en interne seulement) :


  • Pour les serveurs en Fedora (1 machine : lpsc-c12), voici la liste des logiciels installés (visible en interne seulement) :


IMPORTANT :

Pour toutes les machines, CVMFS est installé et vous permet d'utiliser toutes les releases de logiciels du CERN. Pour cela, vous devez exécuter :

export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source $ATLAS_LOCAL_ROOT_BASE/user/atlasLocalSetup.sh

Par exemple pour connaitre toutes les versions de gcc disponibles :

showVersions gcc

Pour utiliser la version 6.200 de gcc :

lsetup  "gcc gcc620_x86_64_slc6"

La même méthode peut être utilisée pour choisir une version de root.




Utilisation de MPI sur la ferme locale

En premier vous devez ajouter /opt/mpich-1.2.7p1/bin à votre PATH.

Essayer ensuite de d'utiliser un des deux codes d'exemple suivants (en fonction du language désiré) :

c  Fortran example  
      program hello
      include 'mpif.h'
      integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
   
      call MPI_INIT(ierror)
      call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
      call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
      print*, 'node', rank, ': Hello world'
      call MPI_FINALIZE(ierror)
      end

ou

#include <stdio.h>
#include <mpi.h>

int main(int argc, char** argv){
  int rank, size;

  MPI_Init (&argc, &argv);	/* starts MPI */
  MPI_Comm_rank (MPI_COMM_WORLD, &rank);	/* get current process id */
  MPI_Comm_size (MPI_COMM_WORLD, &size);	/* get number of processes */
  char processor_name[MPI_MAX_PROCESSOR_NAME];
  int name_len;
  MPI_Get_processor_name(processor_name, &name_len);
  printf( "Hello world from process %d of %d executed on %s\n", rank, size, processor_name );
  MPI_Finalize();
  return 0;
}

Pour compiler : mpif77 code.f ou mpicc code.c

Pour exécuter : mpirun -np 4 a.out ( => lance sur 4 processeurs)

Lors de l'exécution, une connexion ssh sera effectuée sur chacun des noeuds. Afin de faciliter ces connexions, vous pouvez mettre au point une clé privée/publique, afin de ne pas toujours devoir saisir votre mot de passe.

De nombreuses options existent pour configurer le nombre de processeurs, les machines à utiliser, ... N'hésitez pas à lire l'aide de mpirun : mpirun -help.



Utilisation du batch HT-Condor sur la ferme locale

Pour soumettre un job en batch sur la ferme de calcul , il faudra le lancer depuis lpsc-c2 qui est la machine de soumission. Pour pouvoir soumettre un job avec HTCondor il est nécessaire d’avoir un fichier de soumission et le fichier de description de soumission. Le fichier de description de soumission sera lu par HTCondor pour qu’il puisse soumettre le fichier de soumission(job).

exemple d'un fichier de soumission :

 more testprog01.sh
#! /bin/sh
echo "HT-condor testprog01"
echo "I'm process id $$ on" `hostname`
echo "This is sent to standard error" 1>&2
date
echo "Running as binary $0" "$@"
echo "My name (argument 1) is $1"
echo "My sleep duration (argument 2) is $2"
sleep $2
echo "Sleep of $2 seconds finished.  Exiting"
exit 0

exemple d'un fichier de description de soumission:

more testprog01.submit
executable=testprog01.sh
universe=vanilla
arguments=Example.$(Cluster).$(Process) 100
output=results.output.$(Process)
error=results.error.$(Process)
log=results.log
notification=never
should_transfer_files=YES
when_to_transfer_output = ON_EXIT
queue

Soumettre un job en batch : condor_submit

condor_submit testprog01.submit

Voir l'avancement de nos jobs avec la commande : condor_q

[chris@lpsc-c2:~/HT-CONDOR]> condor_q


-- Schedd: lpsc-c2.in2p3.fr : <134.158.40.121:30703?...
 ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD               
  12.0   chris           8/28 10:23   0+00:00:02 R  0   0.0  testprog01.sh Exam

1 jobs; 0 completed, 0 removed, 0 idle, 1 running, 0 held, 0 suspended

suppression de nos jobs de la file d'attente(idle): condor_rm

condor_rm -all supprime tous nos jobs de la file d'attente(idle)


Quelques liens intéressants

Note: See TracWiki for help on using the wiki.