ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
          
        
        
          
            77
          
        
        
          Для
        
        
          
            n
          
        
        
          -мерной декартовой решетки значение аргумента direction должно нахо-
        
        
          диться в пределах от 0 до
        
        
          
            n
          
        
        
          -1. Подпрограмма MPI_Cartdim_get позволяет определить
        
        
          размерность (ndims) декартовой топологии, связанной с коммуникатором comm:
        
        
          int MPI_Cartdim_get (MPI_Comm comm, int *ndims)
        
        
          MPI_CARTDIM_GET(COMM, NDIMS,  IERR)
        
        
          
            Топология графа
          
        
        
          Мы ограничимся обзором основных подпрограмм MPI, предназначенных для
        
        
          работы с топологией графа. Подпрограмма MPI_Graph_create создает новый комму-
        
        
          никатор comm_graph, наделенный топологией графа:
        
        
          int MPI_Graph_create(MPI_Comm comm, int nnodes, int *index, int
        
        
          *edges, int reorder, MPI_Comm *comm_graph)
        
        
          MPI_GRAPH_CREATE(COMM, NNODES, INDEX, EDGES, REORDER, COMM_GRAPH,
        
        
          IERR)
        
        
          Входные параметры:
        
        
          •
        
        
          comm — "исходный" коммуникатор, не наделенный топологией;
        
        
          •
        
        
          nnodes — количество вершин графа;
        
        
          •
        
        
          index — целочисленный одномерный массив, содержащий порядок каждого
        
        
          узла (количество связанных с ним ребер);
        
        
          •
        
        
          edges — целочисленный одномерный массив, описывающий ребра графа;
        
        
          •
        
        
          reorder — значение "истина" разрешает изменение порядка нумерации про-
        
        
          цессов.
        
        
          Подпрограмма MPI_Graph_neighbors возвращает соседние с данной вершины
        
        
          графа:
        
        
          int MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneigh-
        
        
          bors, int *neighbors)
        
        
          MPI_GRAPH_NEIGHBORS(COMM, RANK, MAXNEIGHBORS, NEIGHBORS, IERR)
        
        
          Ее входные параметры:
        
        
          •
        
        
          comm — коммуникатор с топологией графа;
        
        
          •
        
        
          rank — ранг процесса в группе коммуникатора comm;
        
        
          •
        
        
          maxneighbors — размер массива neighbors.
        
        
          Выходным параметром является массив neighbors, содержащий ранги процес-
        
        
          сов, соседних с данным. Количество соседей (nneighbors) узла, связанного
        
        
          с топологией графа, можно определить с помощью подпрограммы
        
        
          MPI_Graph_neighbors_count: