Я использую MPI для решения PDE. Для этого я разбиваю 2D-домен на разные ячейки (размер каждой из этих ячеек равен «xcell,ycell
» с xcell = size_x_domain/(number of X subdomains)
и ycell = size_y_domain/(number of Y subdomains)
.
Итак, я запускаю код с number of processes = (number of X subdomains)*(number of Y subdomains)
Преимущество последовательной версии состоит в том, что я общаюсь между каждым процессом, представляющим поддомены.
Вот рисунок, иллюстрирующий мою разбивку с 8 процессами (2 поддомена для X и 4 для Y):
(xs,xe
) представляют x_start
и x_end
ячейки, (ys,ye
) представляют y_start
и y_end
ячейки
Я хотел бы знать, нужно ли мне устанавливать в массив x(i,j)
i индекс как индекс строки и j как индекс столбца?
Является ли общим правилом ставить первый индекс для строки, а второй - для столбца? (например, на языке C, Fortran и Matlab или, может быть, больше)
Спасибо за вашу помощь.
x(i,j)
i
- всегда строка, аj
- всегда столбец. Фортран является главным столбцом, что означает, что в памятиx(1,0)
находится рядом сx(0,0)
. С другой стороны, C является основной строкой, что означает, что вreal x[2][2]
x(0,1)
находится в памяти рядом сx(0,0)
. - person Gilles Gouaillardet   schedule 08.09.2017