Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
19.04.2015
Размер:
709 Кб
Скачать

// вывод результатов с других процессов

23for (int i=1; i<ProcNum; i++)

{

if (ProcRank == i)

{

printf("\nProcRank = %d \n", ProcRank); printf(" Matrix Stripe:\n");

PrintMatrix(pProcRows, RowNum, Size);//самостоятельно printf(" Vector: \n");

PrintVector(pVector, Size);//самостоятельно

}

MPI_Barrier(MPI_COMM_WORLD);//ждем всех

}

}

24// освобождение памяти на всех процессах

void ProcessTermination (double* pMatrix, double* pVector, double* pResult, double* pProcRows, double* pProcResult)

{

if (ProcRank == 0)

delete [] pMatrix;// матрица А только на процессе 0 //на всех процессах

delete [] pVector; delete [] pResult; delete [] pProcRows; delete [] pProcResult;

}

25 Замечания

Разделение (по функциям) действий генерации исходных данных и их рассылки процессам не подходит для больших объемов данных.

Лучше сразу после генерации передавать процессам предназначенные им данные,

Всегда ли вычислительные узлы одинаковы по памяти и быстродействию???

Соседние файлы в папке Параллельное программирование (лекции)