#include "mpi.h" #include #include #define NEIGHBOUR_COUNT 2 int main(int argc, char *argv[]) { int errs = 0, i, k; int size, topo_type; int *degreeIndices, *edges, *dupDegreeIndices, *dupEdges; MPI_Comm comm1, comm2; MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &size ); // Napravi graf, dohvati njegove karakteristike, dupliraj ga // i proveri da li novi komunikator ima iste karakeristike if (size >= 3) { // po jedan član niza indeksa, za svaki proces degreeIndices = (int*)malloc(size * sizeof(int) ); // svaki proces ima dva suseda, otud dvostruka veličina prethodnog niza edges = (int*)malloc(size * NEIGHBOUR_COUNT * sizeof(int) ); // ako alokacija ne uspe, kraj sveta if (!degreeIndices || !edges) { printf( "Unable to allocate %d words for degreeIndices or edges\n", 3 * size );fflush(stdout); MPI_Abort( MPI_COMM_WORLD, 1 ); } // stepen svakog čvora određen je formulom iz standarda degreeIndices[0] = NEIGHBOUR_COUNT; for (i=1; i