ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
108
{
A[0][j] = 10.0;
}
m = m - 1;
}
if(iam == nprocs-1)
{
for(j=0;j<n;j++)
{
A[m][j] = 10.0;
}
m = m - 1;
}
// Определение номеров процессоров слева и справа. Если таковые
// отсутствуют, то им присваивается значение MPI_PROC_NULL
// (для них коммуникационные операцииа игнорируются)
if(iam == 0)
{
left = MPI_PROC_NULL;
}
else
{
left = iam - 1;
}
if(iam == nprocs-1)
{
right = MPI_PROC_NULL;
}
else
{
right = iam + 1;
}
tag = 100;
itcnt = 0;
// Цикл по итерациям
for(k=1;k<itmax;k++)
{
diffnorm = 0.0;
itcnt = itcnt + 1;
// Вычисление новых значений функции по 5-точечной схеме
diffnorm = 0;
for(i=1;i<=m;i++)
{
for(j=1;j<n-1;j++)
{
B[i][j] = 0.25*(A[i-1][j]+A[i+1][j]+A[i][j-
1]+A[i][j+1]);
if((B[i][j] - A[i][j]) > diffnorm)
1...,100,101,102,103,104,105,106,107,108,109 111,112,113,114,115,116,117,118,119,120,...180