Corsi tenuti da Giuseppe Levi
  • Home
  • Informatica per Fisici
    • Lezioni Video
    • Riferimenti Utili
    • Esempi discussi nel corso
    • Blog Lezioni
    • Trasparenze
    • Esami
  • Linguaggi Visuali
    • Blog Lezioni Fisica e LabView
  • CORSO HPC
    • Risorse utili
    • Blog Lezioni
    • Game of Life
    • Insieme Mandelbrot
    • Come lanciare un job sul cluster
  • Servizi Web Utili
  • Contatti
  • Appunti di Matematica Vedica Elementare

Lezioni del 4 e 5 Aprile 2011 [DRAFT]

5/4/2011

0 Comments

 
Presentazione  di alcuni concetti di I/O parallelo. In particolare abbiamo scritto e letto un file in modo non contiguo usando un datatype appositamente creato.
#define BUFSIZ 12
#define INTS_PER_BLK 3 
int main(int argc, char* argv[])
{
int my_id, numprocs,length;
int sendb[BUFSIZ],receiveb[BUFSIZ];
MPI_Status status;
MPI_File ilfile;
MPI_Datatype filetype;
[...];
MPI_File_open(com,"Test",MPI_MODE_CREATE|MPI_MODE_RDWR,MPI_INFO_NULL, &ilfile);
// Quante righe 4, di quanti interi 3 , di quanto spaziate 3*numprocs
MPI_Type_vector(BUFSIZ/INTS_PER_BLK,INTS_PER_BLK,INTS_PER_BLK*numprocs,MPI_INT,&filetype);

for (int i=0;i<BUFSIZ;i++) sendb[i]=i+1000*my_id;
MPI_File_set_view(ilfile,INTS_PER_BLK*my_id*sizeof(int),MPI_INT,filetype,"native",MPI_INFO_NULL);
MPI_File_write_all(ilfile,sendb,BUFSIZ,MPI_INT,&status);
MPI_Barrier(com);
Notare come settando una view diversa il file venga letto in modo sequenziale.

MPI_File_set_view(ilfile,BUFSIZ*my_id*sizeof(int),MPI_INT,MPI_INT,"native",MPI_INFO_NULL);
MPI_File_read_all(ilfile,receiveb,BUFSIZ,MPI_INT,&status);I file con i programmi presentati sono scaricabili:Programma 1.
Programma 2.
0 Comments

    Author

    Giuseppe Levi
    Blog delle lezioni del corso di PPSD 2012.

    Archives

    January 2015
    May 2012
    April 2012
    March 2012
    May 2011
    April 2011
    March 2011

    Categories

    All
    Cluster
    Mpi
    Openmp

    RSS Feed

Powered by Create your own unique website with customizable templates.