У меня проблема с разбросом и разбросом. Допустим, у меня есть одна таблица [tableSize]. В этой таблице я хочу сделать некоторые вычисления для каждых 25 элементов. Я хочу разделить его между всеми процессами, которые у меня есть в моем MPI. Я пытаюсь что-то вроде этого
MPI_Scatter(table, 25, MPI_INT, tmpTable, 25, MPI_INT, 0, MPI_COMM_WORLD);
tmpTable[12] = doTheCalculation(tmpTable);
MPI_Gather(tmpTable, 25, MPI_INT, table, 25, MPI_INT, 0, MPI_COMM_WORLD);
Но это работает, только если это 25 * число процессов = tableSize правильно. Как мне поступить, если я хотел бы, чтобы tableSize составлял 125, но выполнялись только 3 процесса? Моей целью было бы, чтобы процессы 0 и 1 учитывались дважды (процесс 0, элементы 1-25, а затем 75-100 и процесс 1 для подсчета 25-50 и 100-125). Разве можно собрать и собрать? Должен ли я посмотреть на что-то еще? Заранее спасибо