MPI data transfer master-worker

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
JinTonic
Δημοσιεύσεις: 9
Εγγραφή: 11 Ιουν 2010 15:18

MPI data transfer master-worker

Δημοσίευση από JinTonic » 29 Ιουν 2010 16:16

Κώδικας: Επιλογή όλων

 
int *a, *b, *c

Κώδικας: Επιλογή όλων

// master code
  a =(int *)malloc(ms * ms * sizeof(int));
  b =(int *)malloc(ms * ms * sizeof(int));

    count = rows*ms;
    MPI_Send(&a[offset*ms], count, MPI_INT, dest, mtype, MPI_COMM_WORLD);
    count = ms*ms;
    MPI_Send(&b, count, MPI_INT, dest, mtype, MPI_COMM_WORLD);
    offset = offset + rows;

Κώδικας: Επιλογή όλων

//worker code
//kanw maloc kai edw antistixa


  count = rows*ms;
  MPI_Recv(a, count, MPI_INT, source, mtype, MPI_COMM_WORLD, &status);
  printf ("a[0] =%d\n", a[0]);
  count = ms*ms;
  MPI_Recv(b, count, MPI_INT, source, mtype, MPI_COMM_WORLD, &status);
  printf ("b[0] =%d\n b[1]=%d\n", b[0],b[1]);
Τα αποτελεσματα ειναι της μορφης
πινακασ a
3 6 7 5 3
0 9 3 6 0
2 0 2 3 7
3 6 1 2 9
5 0 3 6 1

πινακασ b
6 6 4 9 5
7 2 2 6 1
0 9 1 7 7
7 3 6 5 6
3 9 0 8 8

sending 4 rows to task 1
sending 4 rows to task 2
sending 4 rows to task 3
task 1 has, offset = 0, rows = 2, count =
a[0] =3
b[0] =135070768
το b[0] επρεπε να ειναι 6 και οχι αυτο το μακριναρι
εχω στιψει το μυαλο μου, καμια ιδεα κανεις, χανω κατι?

Ευχαριστώ,
JinTonic

JinTonic
Δημοσιεύσεις: 9
Εγγραφή: 11 Ιουν 2010 15:18

MPI data transfer master-worker

Δημοσίευση από JinTonic » 29 Ιουν 2010 19:34

Να αναφερω απλα οτι βρηκα την το λαθος.
ο μαστερ στελνει με το παρακατω statement

Κώδικας: Επιλογή όλων

 MPI_Recv(b[0], count, MPI_INT, source, mtype, MPI_COMM_WORLD, &status); 

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες