[[FaqLpscToc]]
= Serveurs et Ferme locale de calcul =
== 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 [wiki:ServeursLpsc#Serveursdecalcul].
* 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 locale ==
Le LPSC est doté d'une ferme de calcul locale. Les serveurs de calculs sont installés avec trois versions différentes Linux : SL6, Centos7 ou Fedora25. Les même logiciels sont installés sur tous les serveurs.
Pour les serveurs en SL6 voici la liste des logiciels installés (visible en interne seulement) :
{{{
#!html
}}}
L'accès à ces serveurs de calcul se fait par `ssh` avec votre login/mdp habituel. La liste de ces serveurs (`lpsc-c*`) est donnée sur la page [wiki:ServeursLpsc#Serveursdecalcul].
== 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
#include
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.