wiki:FermeLocale

Version 20 (modified by /C=FR/O=CNRS/OU=UMR5821/CN=Frederic Melot/emailAddress=frederic.melot@…, 6 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.
  • Sur ces serveurs les applications sont installées dans /utils.
  • Setup de ROOT (a data Analysis Framework) :
    setenv ROOTSYS /utils/SLC4/ROOT/root_v5.28.00/root
    setenv PATH $ROOTSYS/bin:$PATH
    setenv LD_LIBRARY_PATH $ROOTSYS/lib
    



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 Linux : SL6, Centos7 ou Fedora25. 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.

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

Pour les serveurs en SL6, voici la liste des logiciels installés (visible en interne seulement) :

Pour les serveurs en Centos7, voici la liste des logiciels installés (visible en interne seulement) : pour bientôt

Pour les serveurs en Fedora, voici la liste des logiciels installés (visible en interne seulement) : pour bientôt



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.

Note: See TracWiki for help on using the wiki.