2016-12-29 2 views
2

Сегодня утром я обновил свои gfortran (от 4.7 до 6.1.0) и компиляторы OpenMPI (от 1.10 до 2.0.1). Я написал эту простую программу:openmpi проигнорирована ошибка: интерфейс mca не распознается

program main                        
    use mpi_f08                       
    implicit none                       
    integer :: ierror                      

    call mpi_init(ierror)                     
    call mpi_finalize(ierror)                    
end program main 

Когда я компилирую непосредственно (без mpirun, просто ./a.out), я получаю следующие сообщения (они не очень ошибок, так как программа работает, как ожидалось):

[username:79762] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex 
    Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so 
    Expected in: flat namespace 
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored) 
[username:79761] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex 
    Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so 
    Expected in: flat namespace 
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored) 
[username:79761] mca_base_component_repository_open: unable to open mca_pml_bfo: dlopen(/usr/local/lib/openmpi/mca_pml_bfo.so, 9): Symbol not found: _ompi_free_list_item_t_class 
    Referenced from: /usr/local/lib/openmpi/mca_pml_bfo.so 
    Expected in: flat namespace 
in /usr/local/lib/openmpi/mca_pml_bfo.so (ignored) 
[username:79761] mca_base_component_repository_open: coll "/usr/local/lib/openmpi/mca_coll_hierarch" uses an MCA interface that is not recognized (component MCA v2.0.0 != supported MCA v2.1.0) -- ignored 
[username:79761] mca_base_component_repository_open: unable to open mca_coll_ml: dlopen(/usr/local/lib/openmpi/mca_coll_ml.so, 9): Symbol not found: _mca_bcol_base_components_in_use 
    Referenced from: /usr/local/lib/openmpi/mca_coll_ml.so 
    Expected in: flat namespace 
in /usr/local/lib/openmpi/mca_coll_ml.so (ignored) 

Я помню, как получал подобные предупреждения, когда компилировал свой код с помощью openmpi и запускал его с версией mpirun mpich или intel. Сейчас это явно не так, но я думал, что упомянул об этом.

Любая идея, что вызывает эти предупреждения?

Edit:

Чтобы убедиться, что мои библиотеки времени выполнения OpenMPI действительно был 2.0.1, я добавил эту строку кода, показанному выше:

print'(3(A,I1))', "OpenMPI version = ", OMPI_MAJOR_VERSION, ".", OMPI_MINOR_VERSION, ".",& 
    8      OMPI_RELEASE_VERSION 

который дал следующий результат:

OpenMPI version = 2.0.1 

следуя совету VladimirF, я побежал mpirun -v который выводимый следующее:

[username:02210] mca_base_component_repository_open: unable to open mca_grpcomm_bad: dlopen(/usr/local/lib/openmpi/mca_grpcomm_bad.so, 9): Symbol not found: _orte_grpcomm_base_modex 
    Referenced from: /usr/local/lib/openmpi/mca_grpcomm_bad.so 
    Expected in: flat namespace 
in /usr/local/lib/openmpi/mca_grpcomm_bad.so (ignored) 
-------------------------------------------------------------------------- 
No executable was specified on the mpirun command line. 

Aborting. 

Кроме того, mpirun --version возвращается: mpirun (Open MPI) 2.0.1

+0

@VladimirF Нет я не знал, я должен был. Я думал, что пошел по openMPI. Если библиотека MPI была несовместима с openMPI, не возникла бы она во время установки? Я сделал несколько быстрых поисков в Интернете, но приходят только ссылки на загрузку/установку openMPI. – solalito

+0

MPI - это стандарт. OpenMPI - фактическая библиотека mado в соответствии с этим стандартом. Но если вы впервые обновили GCC, а затем установили OpenMPI, все должно быть хорошо. В следующий раз сообщите о типе и версии библиотеки MPI, а не о «версии mpif90» *. –

+0

@ VladimirF Я повторно установил OpenMPI версии 2.0.1, чтобы убедиться, что он был основан на правильной версии GCC, но предупреждения сохраняются – solalito

ответ

1

Я понял, проблема, благодаря помощи Жиля Gouaillardet на форумах OpenMPI.

Проблема:

Я установил новую версию 2.0.1 без удаления 1.10. Поскольку я установил его в том же месте, некоторые файлы mca были перезаписаны, а другие были удалены или переименованы в более новую версию и поэтому они все еще присутствуют в каталоге. В конце концов, эти файлы модулей не были распознаны версией 2.0.1, что привело к вышеуказанным предупреждениям. не

Решение:

  1. Удалить все файлы pluging: rm -rf /usr/local/lib/openmpi
  2. Переустановка OpenMPI: make install
+0

Я подозревал что-то подобное. –

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