Strumenti Utente

Strumenti Sito


roberto.depietri:pub:grid_it_tests

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
roberto.depietri:pub:grid_it_tests [04/07/2012 13:18] roberto.depietriroberto.depietri:pub:grid_it_tests [24/09/2012 10:13] (versione attuale) roberto.depietri
Linea 1: Linea 1:
  
 +File are in 
 +  cd /work/staff/roberto.depietri/GRIDIT_test
 +To start
 +   voms-proxy-init -voms gridit
 +   myproxy-init -d -n  -c 3880
 +
 +====== LOGIN ======
 +
 +  Requirements=(other.GlueCEUniqueID=="voms-proxy-init -voms gridit");
 +
 +In this way we are connected to the test virtual organization that we use
 +for testing. The specific requirements that one has to specify to 
 +run on one of the participating nodes are list below.
 +
 +The basic test we first execute is a test the we are able to allocate two whole
 +nodes and we are able to compile and run a very basic MPI program. 
 +
 +=== Test results ===
 +
 +Up to now we successfully run this test on the PARMA and NAPOLI nodes. On the PISA nodes 
 +we are in queue. On the PERUGIA node we are able to compile but mpi-start
 +fails with the error
 +
 +  ....omissis...
 +  + /usr/lib64/openmpi/1.4-gcc/bin/mpiexec -wdir /home/gridit009/home_crcex_576377136/CREAM576377136 \
 +      -x X509_USER_PROXY -x OMP_NUM_THREADS --prefix -4_PATH -machinefile /tmp/tmp.qNoqU31285 \
 +      -npernode 1 ./GETINFO
 +  bash: -4_PATH/bin/orted: No such file or directory
 +  ....omissis...
 + 
 +
 +
 +====== Nodes that are participating ======
 +
 +===== Generic =====
 +
 +  requirements=(other.GlueCEImplementationVersion=="1.13.4") &&
 +    Member("MPI-START",other.GlueHostApplicationSoftwareRunTimeEnvironment);
 +
 +===== Parma =====
 +
 +
 +  Requirements=(other.GlueCEUniqueID=="emi-ce.pr.infn.it:8443/cream-pbs-parallel");
 +
 +
 +===== INFN-Pisa =====
 +
 +
 +  Requirements=(other.GlueCEUniqueID=="gridce4.pi.infn.it:8443/cream-lsf-gridmpi");
 +
 +===== UNI-NA =====
 +
 +  Requirements=(other.GlueCEUniqueID=="emi-ce01.scope.unina.it:8443/cream-pbs-hpc");
 +
 +===== INI-PG =====
 +
 +
 +  Requirements=(other.GlueCEUniqueID=="cex.grid.unipg.it:8443/cream-pbs-grid");
 +
 +
 +MPI_START errr: 
 +mpi-start [DEBUG  ]: using user supplied mpiexec: '/usr/lib64/openmpi/1.4-gcc/bin/mpiexec'
 +/etc/mpi-start/openmpi.mpi: line 39: opal_info: command not found
 +/etc/mpi-start/openmpi.mpi: line 40: opal_info: command not found
 +/etc/mpi-start/openmpi.mpi: line 41: opal_info: command not found
 +
 +executed with message
 +
 +  declare -x PBS_NP="2"
 +  declare -x PBS_NUM_NODES="1"
 +  declare -x PBS_NUM_PPN="2"
 +  There are [1] MPI Process on this job !
 +  --Process rank [0] with nthreads=1 Executing on node: nx02.grid.unipg.it
 +
 +
 +
 +
 +====== Files used for the tests ======
 +
 +===== JDL  =====
 +
 +The main JDL to be used are made like this
 +
 +  JobType = "Normal";
 +  Executable    = "TestMPI.bash";
 +  Arguments     = "-vv -d MPI_USE_AFFINITY=1";
 +  StdOutput     = "std.out";
 +  StdError      = "std.err";
 +  InputSandbox  = {"TestMPI.bash"}; 
 +  OutputSandbox = {"std.out", "std.err"};
 +  MyProxyServer = "myproxy.cnaf.infn.it";
 +  WholeNodes = True;
 +  HostNumber = 2;
 +  Requirements=(other.GlueCEUniqueID=="emi-ce.pr.infn.it:8443/cream-pbs-parallel");
 +
 +
 +
 +
 +
 +
 +
 +===== .BASH =====
 +
 +The behavior is controlled by the configuration file of mpi-start 
 +was rule are defined [[http://grid.ifca.es/wiki/Middleware/MpiStart/SiteConfiguration|here]]
 +
 +  #!/bin/bash
 +  cat > pre_run_hook.sh <<EOF
 +  pre_run_hook () {
 +      echo "******************************************"
 +      echo "** pre run hook called "
 +      echo "******************************************"
 +      env|grep MPI_
 +      echo "******************************************"
 +      echo "** compile Programm "
 +      echo "******************************************"
 +      echo "COMMANDS: \$MPI_MPICC \$MPI_MPICC_OPTS -fopenmp mpi_getinfo.c -o GETINFO"
 +      \$MPI_MPICC \$MPI_MPICC_OPTS -fopenmp mpi_getinfo.c -o GETINFO
 +      ls -lth 
 +      echo "******************************************"
 +      echo "** END of compilation "
 +      echo "******************************************"
 +      return 0
 +  }
 +  EOF
 +  cat > mpi_getinfo.c <<EOF
 +  /*********************************/
 +  /* mpi_getinfo.c                 */
 +  /*********************************/
 +  #include <omp.h>
 +  #include <stdio.h>
 +  #include "mpi.h"
 +  int main(int argc, char **argv)
 +  {
 +     int        rank, np, tot_threads;
 +     char       name[MPI_MAX_PROCESSOR_NAME];
 +     int        resultlen;
 +     int        i;
 +     int        nthreads;
 +     MPI_Status status;
 +     MPI_Init(&argc, &argv);
 +     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 +     MPI_Comm_size(MPI_COMM_WORLD, &np);
 +     MPI_Get_processor_name(name, &resultlen);
 +     #pragma omp parallel
 +     nthreads=omp_get_num_threads();
 +  
 +     if(rank == 0)
 +     {
 +       printf("There are [%d] MPI Process on this job !\n",np);
 +        printf("-- MPI process [%2d of %d] with %d nthreads is executing on node: %s\n", rank,np, nthreads,name);
 +        tot_threads = nthreads;
 +        for(i = 1; i < np; i++)
 +        {
 +           MPI_Recv(&nthreads, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &status);
 +           MPI_Recv(&resultlen, 1, MPI_INT, i, 0, MPI_COMM_WORLD, &status);
 +           MPI_Recv(name, resultlen+1, MPI_CHAR, i, 0, MPI_COMM_WORLD, &status);
 +           printf("-- MPI process [%2d of %d] with %d nthreads is executing on node: %s\n",i,np, nthreads,name);
 +           tot_threads += nthreads;
 +        }
 +        printf("The total number of threads for this run is %d !\n",tot_threads);
 +     }
 +     else
 +     {
 +        MPI_Send(&nthreads, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
 +        MPI_Send(&resultlen, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
 +        MPI_Send(name, resultlen+1, MPI_CHAR, 0, 0, MPI_COMM_WORLD);
 +     }
 +    MPI_Finalize();
 +    return 0;
 +  }
 +  EOF
 +  
 +  echo "****************************************"
 +  echo "* Print the execution ENVINRONMENT     *"
 +  echo "****************************************"
 +  export
 +  echo "****************************************"
 +  echo " MPI start -- no opt with compiler PREHOOK  "
 +  echo "****************************************"
 +  mpi-start -t openmpi -pre ./pre_run_hook.sh  -- ./GETINFO 
 +  echo "****************************************"
 +  echo " MPI start PSOCKET "
 +  echo "****************************************"
 +  mpi-start -t openmpi -psocket $@ -- ./GETINFO 
 +  echo "****************************************"
 +  echo " MPI start PCORE  "
 +  echo "****************************************"
 +  mpi-start -t openmpi -pcore   $@ -- ./GETINFO 
 +  echo "****************************************"
 +  echo " MPI start PNODE  "
 +  echo "****************************************"
 +  mpi-start -t openmpi -pnode   $@  -- ./GETINFO

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki