Skip to content

vinsan/pcpc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pcpc

SANTORO VINCENZO MATR. 0522500487

Il progetto è stato testato su un Cluster Amazon di dimensione 8 con macchine M4.xlarge generato tramite lo script aws-build-cluster-script di Sergio Guastaferro: https://github.com/isislab-unisa/aws-build-cluster-script

Nella cartella Debug è presente il makefile per compilare il progetto. Una volta compilato è possibile eseguire il programma digitando mpirun -np x --hostfile myhostfile_x pi param con x numero di nodi con i quali si vuole eseguire il programma e param il numero di iterazioni totali da eseguire. param è un parametro opzionale, se non viene fornito il programma effettuerà 1E7 iterazioni per Tapezoid e 1E7 iterazioni per Montecarlo. Il numero totale di iterazioni è memorizzato in una variabile di tipo long.

MPI: le funzioni MPI utilizzate sono MPI_Init(&argc, &argv), MPI_Comm_rank(MPI_COMM_WORLD, &my_rank), e MPI_Comm_size(MPI_COMM_WORLD, &num_procs) per l'inizializzazione; MPI_Wtime() per calcolare il tempo di esecuzione e MPI_Reduce come funzione di comunicazione collettiva.

OUTPUT: il programma stampa a video il valore di Pi Greco calcolato con la Tapezoid rule e il relativo tempo di esecuzione, poi stampa a video il valore di Pi Greco calcolato con il metodo Montecarlo e il relativo tempo di esecuzione per poi terminare.

LIBRERIE e DATI: oltre alla libreria di MPI, non sono richieste librerie esterne per eseguire il programma. Non si utilizzano dati esterni in quanto l'unico valore necessario è fornito in input dall'utente oppure viene utilizzato un valore di default.

TEST E GRAFICI: I test di Strong Scaling sono stati effettuati impostando come come valore di param fisso 2147483647 (il valore massimo per una variabile di tipo long). I test di Weak Scaling sono stati effettuati incrementando in maniera lineare param di 1E8 per ogni nodo secondo il seguente schema: 1 - 1E8 2 - 2E8 3 - 3E8 4 - 4E8 5 - 5E8 6 - 6E8 7 - 7E8 8 - 8E8 Per come è strutturata la distribuzione del carico, questo significa che ogni nodo eseguirà 1E8 calcoli per la Tapezoid Rule e 1E8 calcoli per il metodo Montecarlo.

I grafici sono stati realizzati con Excel. Non ci sono segnalazioni particolari per quanto riguarda i 2 grafici dei tempi. Per quanto riguarda i grafici del Pi greco, si segnala che sono stati realizzati in 3D anzicchè 2D per garantire una maggiore leggibilità ed il confronto con il Pi Greco Reale e che, date le limitazioni di Excel, i valori di Pi Greco calcolati dal progetto sono stati arrotondati (per difetto o per eccesso a seconda dei casi) da 16 cifre decimali a 14 cifre decimali. I valori completi dei test sono forniti nel pdf allegato.

Compressione del progetto: tar -cvf solution.tar.gz *

Estrazione del Progetto: tar -xvf solution.tar.gz

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 50.4%
  • C 49.6%