Теория и практика параллельных вычислений

         

в виде двумерной квадратной решетки


// Создание коммуникатора в виде двумерной квадратной решетки // и коммуникаторов для каждой строки и каждого столбца решетки void CreateGridCommunicators() { int DimSize[2]; // Количество процессов в каждом измерении // решетки int Periodic[2]; // =1 для каждого измерения, являющегося // периодическим int Subdims[2]; // =1 для каждого измерения, оставляемого // в подрешетке DimSize[0] = GridSize; DimSize[1] = GridSize; Periodic[0] = 0; Periodic[1] = 0;
// Создание коммуникатора в виде квадратной решетки MPI_Cart_create(MPI_COMM_WORLD, 2, DimSize, Periodic, 1, &GridComm);
// Определение координат процесса в решетке MPI_Cart_coords(GridComm, ProcRank, 2, GridCoords);
// Создание коммуникаторов для строк процессной решетки Subdims[0] = 0; // Фиксация измерения Subdims[1] = 1; // Наличие данного измерения в подрешетке MPI_Cart_sub(GridComm, Subdims, &RowComm);
// Создание коммуникаторов для столбцов процессной решетки Subdims[0] = 1; Subdims[1] = 0; MPI_Cart_sub(GridComm, Subdims, &ColComm); }
Пример 7.2.
Закрыть окно



Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий