
CVS :
=====

Branche : BR_MEDPARA : MED_SRC
setenv CVSROOT :pserver:rahuel@cvs.opencascade.com:/home/server/cvs/MED   
cvs login
...

Repertoires :
=============

Sources : /home/rahuel/MEDPARAsynch
Construction sur awa : /data/tmpawa/rahuel/MEDPARAsynch/MED_Build
Intallation sur awa : /data/tmpawa/rahuel/MEDPARAsynch/MED_Install


Environnement :
===============

source /home/rahuel/MEDPARAsynch/env_products.csh

On utilise :
/data/tmpawa/vb144235/valgrind-3.2.1/valgrind_install/bin
/data/tmpawa/adam/Salome3/V3_2_7_AWA_OCC/Python-2.4.1
/data/tmpawa/vb144235/med_231_install
/data/tmpawa2/adam/omniORB/omniORB-4.0.7
/data/tmpawa/vb144235/lam_install
/data/tmpawa/vb144235/cppunit_install
/data/tmpawa/vb144235/fvm_install_lam
/data/tmpawa/vb144235/bft_install
/home/rahuel/MEDPARAsynch/ICoCo
/data/tmpawa2/adam/Salome3/V3_2_0_maintainance/KERNEL/KERNEL_INSTALL


Build_Configure et Configure :
==============================

MEDMEM est en "stand-alone" sans KERNEL ni IHM.

cd $MED_BUILD_DIR
${MED_SRC_DIR}/build_configure --without-kernel --without-ihm
rm ${MED_SRC_DIR}/adm_local_without_kernel/adm_local_without_kernel
rm -fR $MED_BUILD_DIR/adm_local_without_kernel/adm_local_without_kernel 

cd $MED_BUILD_DIR
${MED_SRC_DIR}/configure --without-kernel --without-ihm --with-lam=/data/tmpawa/vb144235/lam_install --prefix=${MED_ROOT_DIR} --with-med2=/data/tmpawa/vb144235/med_231_install --with-python=/data/tmpawa/adam/Salome3/V3_2_7_AWA_OCC/Python-2.4.1 --with-cppunit=/data/tmpawa/vb144235/cppunit_install --with-cppunit_inc=/data/tmpawa/vb144235/cppunit_install/include --with-fvm=/data/tmpawa/vb144235/fvm_install_lam
rm ${MED_SRC_DIR}/adm_local_without_kernel/adm_local_without_kernel
rm -fR $MED_BUILD_DIR/adm_local_without_kernel/adm_local_without_kernel 


Construction :
==============

cd $MED_BUILD_DIR
make
make install

Problemes de construction :
===========================

Liste des fichiers modifies et differents de la base CVS pour pouvoir
effectuer la construction et l'installation :

M MED_SRC/configure.in.base :
-----------------------------
CHECK_MPICH
CHECK_LAM
CHECK_OPENMPI mis en commentaire (redefinit le resultat de CHECK_LAM)
CHECK_CPPUNIT a ete ajoute

M MED_SRC/adm_local_without_kernel/unix/config_files/check_lam.m4 :
-------------------------------------------------------------------
Debugs pour trouver la bonne configuration de LAM

M MED_SRC/src/INTERP_KERNEL/Makefile.in :
-----------------------------------------
Problemes de construction des tests

M MED_SRC/src/ParaMEDMEM/Makefile.in :
--------------------------------------
. Construction de libParaMEDMEM.a pour gcov (link statique)
. Ajout d'options de compilations :  -fprofile-arcs -ftest-coverage -pg (gcov) ==>
  instrumentation du code

C MED_SRC/src/ParaMEDMEM/Test/Makefile.in :
-------------------------------------------
. Construction de libParaMEDMEMTest.a pour gcov (link statique)
. Ajout d'options de compilations :  -fprofile-arcs -ftest-coverage -pg (gcov) ==>
  instrumentation du code
. Prise en compte de $(MED_WITH_KERNEL) avec :
  ifeq ($(MED_WITH_KERNEL),yes)
    LDFLAGSFORBIN += $(LDFLAGS) -lm $(MED2_LIBS) $(HDF5_LIBS) $(MPI_LIBS) \
                   -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -lmed_V2_1 -lparamed -lmedmem \
                   ${KERNEL_LDFLAGS} -lSALOMELocalTrace -lSALOMEBasics \
                   $(CPPUNIT_LIBS) \
                   -lParaMEDMEMTest 
  endif
  ifeq ($(MED_WITH_KERNEL),no)
  LDFLAGSFORBIN += $(LDFLAGS) -lm $(MED2_LIBS) $(HDF5_LIBS) $(MPI_LIBS) \
                   -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -lmed_V2_1 -lparamed -linterpkernel -lmedmem \
                   ${KERNEL_LDFLAGS} ${FVM_LIBS} ${CPPUNIT_LIBS} -L/data/tmpawa/vb144235/bft_install/lib -lbft\
                  -lParaMEDMEMTest
  endif

M MED_SRC/src/ParaMEDMEM/Test/ParaMEDMEMTest.hxx :
--------------------------------------------------
Mise en commentaire du test manquant :
CPPUNIT_TEST(testNonCoincidentDEC_3D); 

U MED_SRC/src/ParaMEDMEM/Test/ParaMEDMEMTest_NonCoincidentDEC.cxx :
-------------------------------------------------------------------
Manque dans CVS

Pour forcer la reconstruction des tests :
=========================================

cd $MED_BUILD_DIR
rm src/ParaMEDMEM/*o
rm src/ParaMEDMEM/*.la
rm src/ParaMEDMEM/test_*
rm src/ParaMEDMEM/.libs/*
rm src/ParaMEDMEM/Test/*o
rm src/ParaMEDMEM/Test/*.la
rm src/ParaMEDMEM/Test/.libs/*
rm core.*
rm vgcore.*
cd $MED_BUILD_DIR/src/ParaMEDMEM/Test
make
make install
cd $MED_BUILD_DIR


Probleme avec lam :
===================

jr[1175]> mpirun -np 5 -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} TestParaMEDMEM
21508 TestParaMEDMEM running on n0 (o)
21509 TestParaMEDMEM running on n0 (o)
21510 TestParaMEDMEM running on n0 (o)
21511 TestParaMEDMEM running on n0 (o)
21512 TestParaMEDMEM running on n0 (o)
- Trace /home/rahuel/MEDPARAsynch/MED_SRC/src/MEDMEM/MEDMEM_Init.cxx [54] : Med Memory Initialization with $SALOME_trace = local
- Trace /home/rahuel/MEDPARAsynch/MED_SRC/src/MEDMEM/MEDMEM_Init.cxx [54] : Med Memory Initialization with $SALOME_trace = local
- Trace /home/rahuel/MEDPARAsynch/MED_SRC/src/MEDMEM/MEDMEM_Init.cxx [54] : Med Memory Initialization with $SALOME_trace = local
- Trace /home/rahuel/MEDPARAsynch/MED_SRC/src/MEDMEM/MEDMEM_Init.cxx [54] : Med Memory Initialization with $SALOME_trace = local
- Trace /home/rahuel/MEDPARAsynch/MED_SRC/src/MEDMEM/MEDMEM_Init.cxx [54] : Med Memory Initialization with $SALOME_trace = local
-----------------------------------------------------------------------------
The selected RPI failed to initialize during MPI_INIT.  This is a
fatal error; I must abort.

This occurred on host awa (n0).
The PID of failed process was 21508 (MPI_COMM_WORLD rank: 0)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
One of the processes started by mpirun has exited with a nonzero exit
code.  This typically indicates that the process finished in error.
If your process did not finish in error, be sure to include a "return
0" or "exit(0)" in your C code before exiting the application.

PID 21510 failed on node n0 (127.0.0.1) with exit status 1.
-----------------------------------------------------------------------------
jr[1176]> 


Contournement du probleme lam :
===============================

mpirun -np 5 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} TestParaMEDMEM


Valgrind :
==========
. Les tests avec valgrind indiquent des erreurs dans MPI_Init et
  MPI_Finalize ainsi que dans des programmes appeles "below main".
. De plus on obtient un "Segmentation Violation" accompagne d'un
  fichier "vgcore.*" (plantage de valgrind)
. Mais on a " All heap blocks were freed -- no leaks are possible."
  et on n'a aucune erreur de malloc/free new/delete dans ParaMEDMEM et
  dans les tests.

. Cependant si on execute les tests sans valgrind, il n'y a pas
  d'erreur ni de fichier "core.*".


Tests avec CPPUNIT de $MED_BUILD_DIR/src/ParaMEDMEM/Test :
==========================================================

L'appel a MPI_Init n'est fait qu'une seule fois.
Il est suivi par l'execution de toute la suite des tests regroupes
dans les trois executables TestParaMEDMEM, TestMPIAccessDEC et
TestMPIAccess
On a enfin un seul appel a MPI_Finalize.

Si un des tests d'une suite de tests comporte une anomalie cela
peut avoir des implications sur l'execution des tests suivants.

Lors de la mise au point de la suite de tests de TestMPIAccessDEC
cela etait le cas : il restait des messages postes dans lam mais
non lus. Le test suivant s'executait de plus en plus lentement
sans donner d'erreur (probleme difficile a identifier).


Lancement des tests de TestParaMEDMEM avec CPPUNIT et TotalView (option -tv) :
==============================================================================

mpirun -np 5 -ssi rpi tcp C -tv -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} TestParaMEDMEM

Il arrive qu'on ne puisse pas utiliser totalview par manque de
license.



Lancement des tests de TestParaMEDMEM avec CPPUNIT et Valgrind avec "memory leaks" :
====================================================================================

mpirun -np 5 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full TestParaMEDMEM


Lancement des tests fonctionnels de MPI_AccessDEC avec CPPUNIT :
================================================================

mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full TestMPIAccessDEC


Lancement des tests unitaires de MPI_Access avec CPPUNIT :
==========================================================

mpirun -np 3 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full TestMPIAccess


TestMPIAccess/TestMPIAccessDEC/TestParaMEDMEM et gcov :
=======================================================

Les resultats sont dans les repertoires suivants de $MED_BUILD_DIR/src/ParaMEDMEM/Test :
-------------

    TestParaMEDMEM-gcov/
    TestMPIAccessDEC-gcov/
    TestMPIAccess-gcov/

Je n'y ai pas trouve d'anomalies.

compilation : -fprofile-arcs -ftest-coverage
-------------

$MED_BUILD_DIR/src/ParaMEDMEM/makefile.in : LIB=libparamedar.a \
-------------------------------------------     libparamed.la

$MED_BUILD_DIR/src/ParaMEDMEM/Test/makefile.in : LIB = libParaMEDMEMTestar.a \
------------------------------------------------       libParaMEDMEMTest.la

links statiques manuels :
-------------------------

g++  -g -D_DEBUG_ -Wno-deprecated -Wparentheses -Wreturn-type -Wunused -DPCLINUX -I/data/tmpawa/vb144235/cppunit_install/include -I/data/tmpawa/vb144235/lam_install/include -ftemplate-depth-42 -I/home/rahuel/MEDPARAsynch/MED_SRC/src/ParaMEDMEM -fprofile-arcs -ftest-coverage -o TestMPIAccess TestMPIAccess.lo -L../../../lib64/salome -lstdc++ -L../../../lib64/salome -lstdc++ -lm -L/data/tmpawa/vb144235/med_231_install/lib -lmed -lhdf5 -lhdf5 -L/data/tmpawa/vb144235/lam_install/lib -llam -lmpi -L../../../lib64/salome -lmed_V2_1 --whole-archive    -linterpkernel -lmedmem -L/data/tmpawa/vb144235/fvm_install_lam/lib -lfvm -L/data/tmpawa/vb144235/cppunit_install/lib -lcppunit -L/data/tmpawa/vb144235/bft_install/lib -lbft  -lutil -lm -lrt -ldl -Bstatic -L./ -lParaMEDMEMTestar -L../ -lparamedar -L./ -lParaMEDMEMTestar

g++  -g -D_DEBUG_ -Wno-deprecated -Wparentheses -Wreturn-type -Wunused -DPCLINUX -I/data/tmpawa/vb144235/cppunit_install/include -I/data/tmpawa/vb144235/lam_install/include -ftemplate-depth-42 -I/home/rahuel/MEDPARAsynch/MED_SRC/src/ParaMEDMEM -fprofile-arcs -ftest-coverage -o TestMPIAccessDEC TestMPIAccessDEC.lo -L../../../lib64/salome -lstdc++ -L../../../lib64/salome -lstdc++ -lm -L/data/tmpawa/vb144235/med_231_install/lib -lmed -lhdf5 -lhdf5 -L/data/tmpawa/vb144235/lam_install/lib -llam -lmpi -L../../../lib64/salome -lmed_V2_1 --whole-archive    -linterpkernel -lmedmem -L/data/tmpawa/vb144235/fvm_install_lam/lib -lfvm -L/data/tmpawa/vb144235/cppunit_install/lib -lcppunit -L/data/tmpawa/vb144235/bft_install/lib -lbft  -lutil -lm -lrt -ldl -Bstatic -L./ -lParaMEDMEMTestar -L../ -lparamedar -L./ -lParaMEDMEMTestar

g++  -g -D_DEBUG_ -Wno-deprecated -Wparentheses -Wreturn-type -Wunused -DPCLINUX -I/data/tmpawa/vb144235/cppunit_install/include -I/data/tmpawa/vb144235/lam_install/include -ftemplate-depth-42 -I/home/rahuel/MEDPARAsynch/MED_SRC/src/ParaMEDMEM -fprofile-arcs -ftest-coverage -o TestParaMEDMEM TestParaMEDMEM.lo -L../../../lib64/salome -lstdc++ -L../../../lib64/salome -lstdc++ -lm -L/data/tmpawa/vb144235/med_231_install/lib -lmed -lhdf5 -lhdf5 -L/data/tmpawa/vb144235/lam_install/lib -llam -lmpi -L../../../lib64/salome -lmed_V2_1 --whole-archive    -linterpkernel -lmedmem -L/data/tmpawa/vb144235/fvm_install_lam/lib -lfvm -L/data/tmpawa/vb144235/cppunit_install/lib -lcppunit -L/data/tmpawa/vb144235/bft_install/lib -lbft  -lutil -lm -lrt -ldl -Bstatic -L./ -lParaMEDMEMTestar -L../ -lparamedar -L./ -lParaMEDMEMTestar

Ne pas oublier le make install apres ...

execution et gcov :
-------------------

Pour pouvoir traiter les .cxx de ${MED_BUILD_DIR}/src/ParaMEDMEM et de
${MED_BUILD_DIR}/src/ParaMEDMEM/Test, on execute deux fois gcov.

cd ${MED_BUILD_DIR}/src/ParaMEDMEM/Test

mpirun -np 3 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} TestMPIAccess

gcov TestMPIAccess.cxx test_MPI_Access_Send_Recv.cxx \
                       test_MPI_Access_Cyclic_Send_Recv.cxx \
                       test_MPI_Access_SendRecv.cxx \
                       test_MPI_Access_ISend_IRecv.cxx \
                       test_MPI_Access_Cyclic_ISend_IRecv.cxx \
                       test_MPI_Access_ISendRecv.cxx \
                       test_MPI_Access_Probe.cxx \
                       test_MPI_Access_IProbe.cxx \
                       test_MPI_Access_Cancel.cxx \
                       test_MPI_Access_Send_Recv_Length.cxx \
                       test_MPI_Access_ISend_IRecv_Length.cxx \
                       test_MPI_Access_ISend_IRecv_Length_1.cxx \
                       test_MPI_Access_Time.cxx \
                       test_MPI_Access_Time_0.cxx \
                       test_MPI_Access_ISend_IRecv_BottleNeck.cxx \
                       ../MPI_Access.cxx
gcov -o ../ TestMPIAccess.cxx test_MPI_Access_Send_Recv.cxx \
                              test_MPI_Access_Cyclic_Send_Recv.cxx \
                              test_MPI_Access_SendRecv.cxx \
                              test_MPI_Access_ISend_IRecv.cxx \
                              test_MPI_Access_Cyclic_ISend_IRecv.cxx \
                              test_MPI_Access_ISendRecv.cxx \
                              test_MPI_Access_Probe.cxx \
                              test_MPI_Access_IProbe.cxx \
                              test_MPI_Access_Cancel.cxx \
                              test_MPI_Access_Send_Recv_Length.cxx \
                              test_MPI_Access_ISend_IRecv_Length.cxx \
                              test_MPI_Access_ISend_IRecv_Length_1.cxx \
                              test_MPI_Access_Time.cxx \
                              test_MPI_Access_Time_0.cxx \
                              test_MPI_Access_ISend_IRecv_BottleNeck.cxx \
                              ../MPI_Access.cxx


cd ${MED_BUILD_DIR}/src/ParaMEDMEM/Test
mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} TestMPIAccessDEC

gcov TestMPIAccessDEC.cxx test_AllToAllDEC.cxx \
                          test_AllToAllvDEC.cxx \
                          test_AllToAllTimeDEC.cxx \
                          test_AllToAllvTimeDEC.cxx \
                          test_AllToAllvTimeDoubleDEC.cxx \
                          ../TimeInterpolator.cxx \
                          ../LinearTimeInterpolator.cxx \
                          ../MPI_Access.cxx \
                          ../MPI_AccessDEC.cxx
gcov -o ../ TestMPIAccessDEC.cxx test_AllToAllDEC.cxx \
                                 test_AllToAllvDEC.cxx \
                                 test_AllToAllTimeDEC.cxx \
                                 test_AllToAllvTimeDEC.cxx \
                                 test_AllToAllvTimeDoubleDEC.cxx \
                                 ../TimeInterpolator.cxx \
                                 ../LinearTimeInterpolator.cxx \
                                 ../MPI_Access.cxx \
                                 ../MPI_AccessDEC.cxx

cd ${MED_BUILD_DIR}/src/ParaMEDMEM/Test
mpirun -np 5 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} TestParaMEDMEM

gcov TestParaMEDMEM.cxx ParaMEDMEMTest.cxx \
	                      ParaMEDMEMTest_MPIProcessorGroup.cxx \
	                      ParaMEDMEMTest_BlockTopology.cxx \
	                      ParaMEDMEMTest_InterpKernelDEC.cxx \
                        ../BlockTopology.cxx \
                        ../ComponentTopology.cxx \
                        ../DEC.cxx \
                        ../ElementLocator.cxx \
                        ../InterpolationMatrix.cxx \
                        ../InterpKernelDEC.cxx \
                        ../MPIProcessorGroup.cxx \
                        ../MxN_Mapping.cxx \
                        ../ParaFIELD.cxx \
                        ../ParaMESH.cxx \
                        ../ParaSUPPORT.cxx \
                        ../ProcessorGroup.cxx \
                        ../TimeInterpolator.cxx \
                        ../LinearTimeInterpolator.cxx \
                        ../MPI_Access.cxx \
                        ../MPI_AccessDEC.cxx

gcov -o ../ TestParaMEDMEM.cxx ParaMEDMEMTest.cxx \
	                             ParaMEDMEMTest_MPIProcessorGroup.cxx \
	                             ParaMEDMEMTest_BlockTopology.cxx \
	                             ParaMEDMEMTest_InterpKernelDEC.cxx \
                               ../BlockTopology.cxx \
                               ../ComponentTopology.cxx \
                               ../DEC.cxx \
                               ../ElementLocator.cxx \
                               ../InterpolationMatrix.cxx \
                               ../InterpKernelDEC.cxx \
                               ../MPIProcessorGroup.cxx \
                               ../MxN_Mapping.cxx \
                               ../ParaFIELD.cxx \
                               ../ParaMESH.cxx \
                               ../ParaSUPPORT.cxx \
                               ../ProcessorGroup.cxx \
                               ../TimeInterpolator.cxx \
                               ../LinearTimeInterpolator.cxx \
                               ../MPI_Access.cxx \
                               ../MPI_AccessDEC.cxx





Lancement des tests unitaires sans CPPUNIT :
============================================

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Send_Recv

mpirun -np 3  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Cyclic_Send_Recv

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_SendRecv

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_ISend_IRecv

mpirun -np 3  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Cyclic_ISend_IRecv

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_ISendRecv

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Probe

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_IProbe

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Cancel

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Send_Recv_Length

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_ISend_IRecv_Length

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_ISend_IRecv_Length_1

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Time

mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_Time_0 2 1


#AllToAllDEC
mpirun -np 4 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllDEC 0

mpirun -np 4 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllDEC 1


#AllToAllvDEC
mpirun -np 4 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvDEC 0

mpirun -np 4 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvDEC 1


#AllToAllTimeDEC
mpirun -np 4 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllTimeDEC 0

mpirun -np 4 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllTimeDEC 1


#AllToAllvTimeDEC
mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvTimeDEC 0 1

mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvTimeDEC 0

mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvTimeDEC 1



#AllToAllvTimeDoubleDEC
mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvTimeDoubleDEC 0

mpirun -np 11 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_AllToAllvTimeDoubleDEC 1



mpirun -np 2  -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH} valgrind --leak-check=full test_MPI_Access_ISend_IRecv_BottleNeck

