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

         

и инициализации исходных данных void


// Функция для выделения памяти и инициализации исходных данных void ProcessInitialization (double* &pAMatrix, double* &pBMatrix, double* &pCMatrix, double* &pAblock, double* &pBblock, double* &pCblock, double* &pTemporaryAblock, int &Size, int &BlockSize ) { if (ProcRank == 0) { do { printf("\nВведите размер матриц: "); scanf("%d", &Size);
if (Size%GridSize != 0) { printf ("Размер матриц должен быть кратен размеру сетки! \n"); } } while (Size%GridSize != 0); } MPI_Bcast(&Size, 1, MPI_INT, 0, MPI_COMM_WORLD);
BlockSize = Size/GridSize;
pAblock = new double [BlockSize*BlockSize]; pBblock = new double [BlockSize*BlockSize]; pCblock = new double [BlockSize*BlockSize]; pTemporaryAblock = new double [BlockSize*BlockSize];
for (int i=0; i<BlockSize*BlockSize; i++) { pCblock[i] = 0; } if (ProcRank == 0) { pAMatrix = new double [Size*Size]; pBMatrix = new double [Size*Size]; pCMatrix = new double [Size*Size]; RandomDataInitialization(pAMatrix, pBMatrix, Size); } }
Пример 7.3.
Закрыть окно




// Функция для выделения памяти и инициализации исходных данных
void ProcessInitialization (double* &pAMatrix, double* &pBMatrix,
double* &pCMatrix, double* &pAblock, double* &pBblock,
double* &pCblock, double* &pTemporaryAblock, int &Size,
int &BlockSize ) {
if (ProcRank == 0) {
do {
printf("\nВведите размер матриц: ");


scanf("%d", &Size);

if (Size%GridSize != 0) {
printf (" Размер матриц должен быть кратен размеру сетки! \n");
}
}
while (Size%GridSize != 0);
}
MPI_Bcast(&Size, 1, MPI_INT, 0, MPI_COMM_WORLD);
BlockSize = Size/GridSize;
pAblock = new double [BlockSize*BlockSize];
pBblock = new double [BlockSize*BlockSize];
pCblock = new double [BlockSize*BlockSize];
pTemporaryAblock = new double [BlockSize*BlockSize];
for (int i=0; i
pCblock[i] = 0;
}
if (ProcRank == 0) {
pAMatrix = new double [Size*Size];
pBMatrix = new double [Size*Size];
pCMatrix = new double [Size*Size];
RandomDataInitialization(pAMatrix, pBMatrix, Size);
}
}

Содержание раздела