Вопрос про топологию

Скажите, пожалуйста, есть ли на Blue Gene/P возможность выделения двумерных циклических процессорных решеток(например 16*16*1) и как это можно осуществить ?

Из того что я прочитал в разделе "Размещение процессов" кажется, что области выделяются только трехмерными порциями.

Можно считать, что физически процессоры расположены в узлах трехмерной решетки. Для разделов, состоящих из 512 и более вычислительных узлов, она замкнута в трехмерный тор.

Циклическую двумерную решетку можно получить лишь перенумерацией процессов (я не могу с уверенностью сказать, всегда ли это возможно). Для этого нужно будет составить файл с отображением (см. приложение "E. Mapping" книги IBM System Blue Gene Solution: Blue Gene/P Application Development).

Небольшой пример. Допустим у нас есть 16 процессоров, связанный в трехмерный тор:

0 1
2 3

4 5
6 7

8 9
10 11

12 13
14 15
Объединяем первые две "плоскости" и к ним снизу прицепляем другие две:
 5  4 |  0  1
 7  6 |  2  3
-- -- + -- --
11 10 | 14 15
 9  8 | 12 13
Теперь дело за тем, чтобы обобщить этот алгоритм и автоматизировать процесс генерации файла.

Спасибо за интересный вопрос!

Насколько я понимаю,это автоматически можно сделать с помощью MPI_CART_CREATE().

Функция сама перенумерует процессы "оптимальным образом".

Хочется надеяться, что она это сделает, если указать параметр reorder=true.
Но я бы не стал надеяться, что так и будет (в документации об этом не написано); нужно проверять.