Скажите, пожалуйста, есть ли на Blue Gene/P возможность выделения двумерных циклических процессорных решеток(например 16*16*1) и как это можно осуществить ?
Из того что я прочитал в разделе "Размещение процессов" кажется, что области выделяются только трехмерными порциями.
Циклическую двумерную решетку можно получить лишь перенумерацией процессов (я не могу с уверенностью сказать, всегда ли это возможно). Для этого нужно будет составить файл с отображением (см. приложение "E. Mapping" книги IBM System Blue Gene Solution: Blue Gene/P Application Development).
Небольшой пример. Допустим у нас есть 16 процессоров, связанный в трехмерный тор:
Объединяем первые две "плоскости" и к ним снизу прицепляем другие две: Теперь дело за тем, чтобы обобщить этот алгоритм и автоматизировать процесс генерации файла.Спасибо за интересный вопрос!
Насколько я понимаю,это автоматически можно сделать с помощью MPI_CART_CREATE().
Функция сама перенумерует процессы "оптимальным образом".
Хочется надеяться, что она это сделает, если указать параметр
reorder=true
.Но я бы не стал надеяться, что так и будет (в документации об этом не написано); нужно проверять.