Всем привет !
У меня задание.. нужно средствами МРИ реализовать виртуальную топологию графу . Для каждой вершины графа определить количество и номера соседних вершин. Решетка 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)
|
В чем может быть проблема? |