Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > MPI_Graph_create


Автор: kolorimage 12.5.2011, 19:06
Всем привет smile!

У меня задание..
нужно средствами МРИ реализовать виртуальную топологию графу . Для каждой вершины графа определить количество и номера соседних вершин.
Решетка 2х3 с одной циклической связью.
Что и сделал:
Код

#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[])
{
 int i,
     rank,
nnodes = 6, / / кол-во вершин графа
index [6] = {3,6,13,21,28,35}, / / ​​и-й элемент показывает сумму степеней вершин графа от 0-вой к i-1 вершины
      edges [16] = {1,2,4, 0,3, 0,3,4, 1,2,5, 0,2,5, 3,4}, / / перечень соседних вершин
       nneighbors,
      neighbors [6],
       reorder = 1; / / параметр допустимости изменения нумерации процессов
MPI_Comm graph_comm;
MPI_Init(&argc, &argv);

MPI_Graph_create(MPI_COMM_WORLD, nnodes, index, edges, reorder, &graph_comm);

MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Graph_neighbors_count(graph_comm, rank, &nneighbors);
MPI_Graph_neighbors(graph_comm,  rank,  nneighbors, neighbors);

printf("I'm process #%i. I've got %i neighbors. They are: ", rank, nneighbors);

for(i=0;i<nneighbors;i++) printf(" %i",neighbors[i]);

printf(" \n");
fflush(stdout);

MPI_Finalize();
 return 0;
}

Но по какой то причине оно не работает...
Код
Fatal error in MPI_Graph_create: Invalid argument, error stack:
MPI_Graph_create(353): MPI_Graph_create(MPI_COMM_WORLD, nnodes=6, index=0x7ffff9e6b760, edges=0x7ffff9e6b700, reorder=1, comm_graph=0x7ffff9e6b778) failed
MPI_Graph_create(278): Edge index edges[34] is 4196512 but must be nonnegative and less than 6
APPLICATION TERMINATED WITH THE EXIT STRING: Hangup (signal 1)


В чем может быть проблема?

Автор: borisbn 13.5.2011, 10:19
Цитата(kolorimage @  12.5.2011,  19:06 Найти цитируемый пост)
index [6] = {3,6,13,21,28,35}

если у тебя в index лежат такие значения, то в edges должно быть
3 + (6-3) + 13 - (13-6)... элементов, а у тебя там всего 16. Вот ф-ция MPI_Graph_create и ругается:
Цитата(kolorimage @  12.5.2011,  19:06 Найти цитируемый пост)
MPI_Graph_create(278): Edge index edges[34] is 4196512 but must be nonnegative and less than 6

http://mpi.deino.net/mpi_functions/MPI_Graph_create.html

Автор: kolorimage 13.5.2011, 14:22
borisbn, лучшего ответа я еще не видел))  smile 
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)