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

         

Ранг текущего процесса int ProcNum;


// Программа 10.1. — Алгоритм Флойда int ProcRank; // Ранг текущего процесса int ProcNum; // Количество процессов
// Функция вычисления минимума int Min(int A, int B) { int Result = (A < B) ? A : B;
if((A < 0) && (B >= 0)) Result = B; if((B < 0) && (A >= 0)) Result = A; if((A < 0) && (B < 0)) Result = -1;
return Result; }
// Главная функция программы int main(int argc, char* argv[]) { int *pMatrix; // Матрица смежности int Size; // Размер матрицы смежности int *pProcRows; // Строки матрицы смежности текущего процесса int RowNum; // Число строк для текущего процесса
MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &ProcNum); MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
// Инициализация данных ProcessInitialization(pMatrix, pProcRows, Size, RowNum);
// Распределение данных между процессами DataDistribution(pMatrix, pProcRows, Size, RowNum);
// Параллельный алгоритм Флойда ParallelFloyd(pProcRows, Size, RowNum);
// Сбор результатов работы алгоритма ResultCollection(pMatrix, pProcRows, Size, RowNum);
// Завершение вычислений процесса ProcessTermination(pMatrix, pProcRows);
MPI_Finalize(); return 0; }
Пример 10.1.
Закрыть окно



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







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