Sie sind auf Seite 1von 2

Openmp is for shared memory.

Attenzione a che lo stesso dato non venga usato da piu processi


mpi ogni processo ha una propria memoria. Ogni dato e privato. Il problema e inviare I dati ad altri
processori. Quando invio un dato ad un altro processore il dato viene modificato solo localmente nel
processore. Il processore madre non vede la modifica.

Il codice deve essere pensato direttamente in parallelo.

Only 6 routines are needed for a simple mpi code.


Shared: se sto modificando un dato un altro processore non puo leggerlo-→ semafori

segnali di sincronizzazione can be implicit or explicit . La sincronizzazione ci fa perdere tempo. Il


processore piu veloce deve aspettare la sincronizzazione del processore piu lento. Ogni volta che
sincornizzo c’e un degrado della performance, quindi si fanno meno sincronizzazioni possibili. MPI
puo essere utilizzato ovunque e openmp puo solo essere utilizzato su un nodo.
E meglio limitare le comunicazioni al minimo possibile, since they require sinchronization.

Il filesystem (area disco ) e visibile a tutti I processori (tutti in nodi di calcolo)

I numeri di processi possono essere maggiori del numero di processori, ma non e conveniente. E
meglio tot processi such as tot processori (per un nodo di calcolo )

per piu nodi di calcolo ho bisogno degli ip di tutti I diversi nodi.

Machinefile is the adress ip of the pc.


Demone mpi e un processo silenziono sul nodo di calcolo che aspetta un segnale. Quando il segnale
gli arriva si sveglia e esegue qualcosa.

Always inizia e finisci mpi


l-inizializzazione di mpi si mette sempre dopo le dichiarazioni di variabili

viene aperto un comunicatore. Ogni processo ha un suo numero identificativo fino a n-1 n numero
di processi. Mpi comm world dice il numero comunicativo di ogni processo
my rank e variabile locale.

Mpi comm rank serve a stabilire l’identificatico dei processi.


Sapendo myrank posso distinguere I vari processi.

Processo 0 fa tutti le attivita da input/output legge una cosa da e tutti la scriv

quanti sono I processi coinvolti? → Mpi comm size

il processo 0 spedisce e basta senza ricevere

processo 0 manda a 1
processo 1 manda a 2
processo 3 manda a 4

codice di errore : valore che possiamo vedere per capire se c’e qualche errore nella subroutine,

grupo e un gruppo ordinato di processi


il comunicatore di default e mpi comm world
mpi comm world e il communicatore di default.
Un singolo processo puo appartenere a gruppi diversi

bloccanti → finoa quando non ho finito di ricevere inviare non continuo il codice. Molto sicura
devo sincronizzare quindi degrado prestazioni

Non bloccante incomincio a ricevere dati e poi continuo con le istruzioni successive. (con le
cointoindicazioni) piu veloce piu performante ma piu pericoloso (I dati potrebbero essere sbaglaiti).
Per ovviare a questi problemi esistonoo mpi wait and test.

Ci sono diverse funzioi per spedire


mpi wait . Wait until all the data are received.

La spedizione puo avvenire in 4 modi diversi (send is recommended)

messaggi molto grandi verranno ricevuti prima di piccoli messaggi spediti dopo

esistono anche due tipologie di dati che non esistiono normalmente: mpi byte e mpi

come facciamo a capire a chi dare certi dati?


negli hpc non so quanti

metterse sempre init my rcomm ank and comm size

day 3

in una struttura dati I dati devono essere allineati a 64 bit.

Fileopen ()

Das könnte Ihnen auch gefallen