MPI output write 2d block cyclic distribution in C using some of MPI_File_write -



MPI output write 2d block cyclic distribution in C using some of MPI_File_write -

i have problems writing 2d block cyclic distributed array in file.

i've tried things:

rc=mpi_file_open(mpi_comm_world, rez, mpi_mode_wronly, mpi_info_null, &cfile); if(rc){printf("failed open file! error: %d \n", rc);mpi_finalize(); fflush(stdout);} else { mpi_file_write_all(cfile, matc, loccc*locrc, compa, &status); }

...

rc=mpi_file_open(mpi_comm_world, rez, mpi_mode_wronly, mpi_info_null, &cfile); if(rc){printf("failed open file! error: %d \n", rc);mpi_finalize(); fflush(stdout);} else { mpi_file_write_ordered(cfile, matc, loccc*locrc, compa, &status); }

...

rc=mpi_file_open(mpi_comm_world, rez, mpi_mode_wronly, mpi_info_null, &cfile); if(rc){printf("failed open file! error: %d \n", rc);mpi_finalize(); fflush(stdout);} else { mpi_file_write_shared(cfile, matc, loccc*locrc, compa, &status); }

i couldn't find nil in post (but how read file , format 2d block cyclic distributed array (which i've succeeded using post)): mpi io reading , writing block cyclic matrix

sorry terrible english language :(

you told have used post: mpi io reading , writing block cyclic matrix. must assume things - such dimensions of matrix matc: let's assume ther m rows , n columns. dimensions of block in matc, let's assume m_b , n_b. let's assume number of processors nproc, , rank of proc saved in variable node. also, must know dimensions of 2d-torus (processor grid), our illustration p , q. here's how that:

int dims[]={m, n}, dargs[]={m_b, n_b}, distribs[]={mpi_distribute_cyclic, mpi_distribute_cyclic}, nproc, dim[]={p, q}; char nat[]="native"; mpi_datatype dcarray, compa; //don't know type compa ... mpi_type_create_darray(nproc, node, 2, dims, distribs, dargs, dim, mpi_order_c, compa, &dcarray); mpi_type_commit(&dcarray); rc=mpi_file_open(comm, rez, mpi_mode_create | mpi_mode_wronly, mpi_info_null, &cfile); if(rc){printf("failed open file! error: %d \n", rc);mpi_finalize(); fflush(stdout);} else { mpi_file_set_view(cfile, 0, compa, dcarray, nat, mpi_info_null); mpi_file_write_all(cfile, matc, locrc*loccc, compa, &status); } mpi_file_close(&cfile);

c 2d mpi block cyclic

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -