2016-05-06 4 views
3

У меня есть программа MPI, которая переназначает/переустанавливает свои процессоры. То есть: существует намного больше процессов, чем процессоров.Предотвращение MPI от цикла занятости

Однако только некоторые из этих процессов активны в данный момент, поэтому не должно быть конкуренции за вычислительные ресурсы.

Но, как стадо чаек от Нахождение Nemo, когда эти процессы ждут общения, все они заняты циклом, спрашивая «Моя шахта? Моя?»

                                                                            Nemo Seagulls

Я использую как Intel MPI и OpenMPI (для разных машин). Как я могу убедить их как не в занятом цикле?

Моим быстрым и грязным решением было использовать MPI_Iprobe в петле с командой спящего режима (см. here).

+0

Выполняете ли вы все процессы на одном хосте? –

+0

Нет, они могут быть распределены по нескольким хостам. – Richard

+0

Какая сеть соединяет хосты? –

ответ

1

Его было немного, так как это было задано, но у этого post может быть ответ, который вы ищете.

Помимо этого, если ваши процессы MPI ждут на MPI-барьерах, вы можете установить I_MPI_WAIT_MODE = 1, чтобы предотвратить цикл занятости в MPI INTEL. для OpenMPI см. связанный пост.

Смежные вопросы