Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

MPI_File_open problemi

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
PROBLEMI
Gost





PostPostano: 16:42 čet, 24. 1. 2013    Naslov: MPI_File_open problemi Citirajte i odgovorite

Može li mi itko pomoći sa MPI_File_open.
Iz nekog razloga, non stop mi se program ruši na tom djelu, izradio sam jedan jednostavan program, pa ako bi netko mogao pogledati?

[code:1]
#include <mpi.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <math.h>
#include <complex>

using namespace std;

int main(int argc, char *argv[])
{
MPI_Fint handleA, handleB;
int node, p, q, dim[2], period[2], reorder=0, coord[2], nproc, n, dima[4], nb, nr, nc, dims[2], distribs[2], dargs[2], locsize, elem, rc;
complex <double> *MatA;
char nat[]="native", at[]="temp";
MPI_Comm comm;
MPI_File cFile;
MPI_Status *status;
MPI_Offset disp;
MPI_Datatype darray;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &node);
printf("Hello World, hello Antony, my rank is: %d \n", node);
rc=MPI_File_open(MPI_COMM_WORLD, at, MPI_MODE_RDONLY, MPI_INFO_NULL, &cFile);
if(rc){cout<<"Failed to open file! Error: "<<rc<<endl;MPI_Finalize(); exit(-1);}
else {
MPI_File_read_all(cFile, dima, 4, MPI_INT, status);
MPI_File_close(&cFile);}

MPI_Comm_size(MPI_COMM_WORLD, &nproc);
printf("Stvaramo mrezu :D");
dim[1]=0;
dim[0]=0;
MPI_Dims_create(nproc, 2, dim);
MPI_Cart_create(MPI_COMM_WORLD, 2, dim, period, reorder, &comm);
MPI_Cart_coords(comm, node, 2, coord);
printf("Rank %d coordinates are %d %d\n", node, coord[0], coord[1]);
MPI_Finalize();
return 0;
}

[/code:1]

Ovo je file temp:

4 5 3 2
(1,0) (1,1) (1,2) (1,3) (1,4)
(2,0) (1,1) (1,2) (1,3) (1,4)
(3,0) (3,1) (4,2) (1,3) (1,4)
(4,0) (4,1) (3,2) (2,3) (1,4)
(5,0) (4,1) (4,2) (2,3) (1,4)
Može li mi itko pomoći sa MPI_File_open.
Iz nekog razloga, non stop mi se program ruši na tom djelu, izradio sam jedan jednostavan program, pa ako bi netko mogao pogledati?

Kod:

#include <mpi.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <math.h>
#include <complex>

using namespace std;

int main(int argc, char *argv[])
{
   MPI_Fint handleA, handleB;
   int node, p, q, dim[2], period[2], reorder=0, coord[2], nproc, n, dima[4], nb, nr, nc, dims[2], distribs[2], dargs[2], locsize, elem, rc;
   complex <double> *MatA;
   char nat[]="native", at[]="temp";
   MPI_Comm comm;
   MPI_File cFile;
   MPI_Status *status;
   MPI_Offset disp;
   MPI_Datatype darray;
   MPI_Init(&argc, &argv);
   MPI_Comm_rank(MPI_COMM_WORLD, &node);
   printf("Hello World, hello Antony, my rank is: %d \n", node);
   rc=MPI_File_open(MPI_COMM_WORLD, at, MPI_MODE_RDONLY, MPI_INFO_NULL, &cFile);
   if(rc){cout<<"Failed to open file! Error: "<<rc<<endl;MPI_Finalize();  exit(-1);}
   else {
   MPI_File_read_all(cFile, dima, 4, MPI_INT, status);
   MPI_File_close(&cFile);}
   
   MPI_Comm_size(MPI_COMM_WORLD, &nproc);
   printf("Stvaramo mrezu :D");
   dim[1]=0;
   dim[0]=0;
   MPI_Dims_create(nproc, 2, dim);
   MPI_Cart_create(MPI_COMM_WORLD, 2, dim, period, reorder, &comm);
   MPI_Cart_coords(comm, node, 2, coord);
   printf("Rank %d coordinates are %d %d\n", node, coord[0], coord[1]);
   MPI_Finalize();
   return 0;
}



Ovo je file temp:

4 5 3 2
(1,0) (1,1) (1,2) (1,3) (1,4)
(2,0) (1,1) (1,2) (1,3) (1,4)
(3,0) (3,1) (4,2) (1,3) (1,4)
(4,0) (4,1) (3,2) (2,3) (1,4)
(5,0) (4,1) (4,2) (2,3) (1,4)


[Vrh]
Gino
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 17:35 čet, 24. 1. 2013    Naslov: Citirajte i odgovorite

Nisi alocirao memoriju za [tt]status[/tt]. Najbolje je da to napravis ovako:
[tt]MPI_Status status;[/tt]
[tt]MPI_File_read_all(cFile, dima, 4, MPI_INT, &status);[/tt]

Onda ti se program nece rusiti, ali isto tako mislim da nece radit ono sto zelis. Mislim da bi file trebao biti u binarnom formatu...
Nisi alocirao memoriju za status. Najbolje je da to napravis ovako:
MPI_Status status;
MPI_File_read_all(cFile, dima, 4, MPI_INT, &status);

Onda ti se program nece rusiti, ali isto tako mislim da nece radit ono sto zelis. Mislim da bi file trebao biti u binarnom formatu...



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
PROBLEMI
Gost





PostPostano: 17:59 čet, 24. 1. 2013    Naslov: Citirajte i odgovorite

Hvala na pomoći. Sad sam tek skužio tu grešku (uvijek zaboravim tu alokaciju, osim ako ne radim s poljima)... imao si pravo za ovo s binarnim, ovo uistinu ne funkcionira :S
Hvala na pomoći. Sad sam tek skužio tu grešku (uvijek zaboravim tu alokaciju, osim ako ne radim s poljima)... imao si pravo za ovo s binarnim, ovo uistinu ne funkcionira :S


[Vrh]
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan