Per compilare il codice spostarsi nella directory project ed eseguire il comando
./CMakeCaller.sh
I file eseguibili saranno prodotti nella directory out
Spostarsi nella directory out
Per eseguire un singolo test con MPI eseguire il comando
mpiexec -np <numProc> ./MpiSingleTest.out -m <mValue> -k <kValue> -n <nValue> -mb <mBlockSize> -nb <nBlockSize>
In questo caso il test è eseguito di default con delle matrici inizializzate nel seguente modo:
M[i][j] = i * numRows + j
Per eseguire più test di seguito con diverse dimensioni e con matrici generate randomicamente eseguire:
mpiexec -np <numProc> ./MpiTest.out
In questo caso l'esecuzione scriverà i tempi in file nella directory project/Results/MPI/Tests: assicurarsi quindi che la direcory esista prima di eseguire.
Diverse configurazioni di esecuzione al variare del numero di processi possono essere eseguite con il comando eseguito dalla directory project:
./RunMpiTests.sh
Per eseguire un singolo test con CUDA eseguire il comando
./CudaSingleTest.out -m <mValue> -k <kValue> -n <nValue> -v <kernelVersion>
Se la versione del kernel non è specificata di default si usa il kernel 4.
In questo caso il test è eseguito di default con delle matrici inizializzate nel seguente modo:
M[i][j] = i * numRows + j
Per eseguire più test di seguito con diverse dimensioni e con matrici generate randomicamente eseguire:
./CudaTest.out -v <kernelVersion>
In questo caso l'esecuzione scriverà i tempi in file nella directory project/Results/CUDA/Tests: assicurarsi quindi che la direcory esista prima di eseguire.
Diverse configurazioni di esecuzione al variare della versione del kernel possono essere eseguite con il comando eseguito dalla directory project:
./RunCudaTests.sh