Как включить флаг многопоточности в openmpi в Linux?

Я пробовал использовать опцию MPI_THREAD_MULTIPLE в openmpi. Чтобы это работало, я обнаружил, что мне нужно включить опцию многопоточности в конфигурации openmpi. Я не знаю, как это сделать? Может ли кто-нибудь помочь мне в этом. Заранее спасибо. Я проверил настройки openmpi в своей системе. Настройки для потоков следующие:

Thread support: posix (MPI_THREAD_MULTIPLE: no, OPAL support: yes, OMPI progress: no, ORTE progress: yes, Event lib: yes) FT Checkpoint support: no (checkpoint thread: no)

Как включить флаг MPI_THREAD_MULTIPLE?


person Murali krishna    schedule 08.07.2016    source источник
comment
Вам необходимо перекомпилировать Open MPI. Проконсультируйтесь с выводом ./configure --help, выполненного из корня исходного дерева Open MPI.   -  person Hristo Iliev    schedule 08.07.2016
comment
Не могли бы вы упомянуть, как перекомпилировать openmpi. Где взять файл конфигурации? @HristoIliev   -  person Murali krishna    schedule 09.07.2016
comment
Ссылаясь на мой предыдущий комментарий: проконсультируйтесь с выводом ./configure --help, выполненного из корня исходного дерева Open MPI. Исходный код Open MPI доступен на его веб-сайте. Параметр, включающий полную поддержку потоковой передачи, - --enable-mpi-threads.   -  person Hristo Iliev    schedule 09.07.2016


Ответы (2)


В openMPI 2.0.1 это ./configure --enable-mpi-thread-multiple. Используйте это для перекомпиляции openmpi и используйте int ret = MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &prov); assert(ret == 0 && prov == MPI_THREAD_MULTIPLE); для инициализации MPI.

person HY G    schedule 29.12.2016

Открытая главная ветка MPI по умолчанию находится в MPI_THREAD_MULTIPLE, поэтому вы не увидите эту опцию в ./configure --help

Если вы хотите настроить это, попробуйте перейти на v2.x или аналогичный и перекомпилировать с опцией

  • ./configure --help | поток grep -> --enable-mpi-thread-multiple
person user2008020    schedule 11.05.2017