如何同时使用intel并行studio和openmpi?

如何同时使用intel并行studio和openmpi?,mpi,intel,Mpi,Intel,在ubuntu中,默认的MPI运行是openmpi,如下所示 mpirun --version mpirun (Open MPI) 1.10.2 但在安装intel parallel studio并将以下行添加到~/.bashrc . /opt/intel/parallel_studio_xe_2017.4.056/psxevars.sh intel64 MPI运行变为 mpirun --version Intel(R) MPI Library for Linux* OS, Version

在ubuntu中,默认的MPI运行是openmpi,如下所示

mpirun --version
mpirun (Open MPI) 1.10.2
但在安装intel parallel studio并将以下行添加到
~/.bashrc

. /opt/intel/parallel_studio_xe_2017.4.056/psxevars.sh intel64
MPI运行变为

mpirun --version
Intel(R) MPI Library for Linux* OS, Version 2017 Update 3 Build 20170405 (id: 17193)
Copyright (C) 2003-2017, Intel Corporation. All rights reserved.

但是,如果我想使用英特尔ifort,但要使用openmpi,该怎么办?如何设置?

我假设ubuntu上的默认MPI是使用GNU编译器编译的OpenMPI。 GNU和英特尔Fortran编译器之间没有二进制兼容性,因此必须使用
ifort

然后,您必须为
$path
$LD\u LIBRARY\u路径
预先添加安装路径。

Hi,@Gilles gouailladet。非常感谢你的回答。我试过你的方法。使用intel构建openmpi,然后向bashrc添加path和ld_library_path,但是
mpirun--version
仍然显示intelwhat做“哪个mpirun”表示?您需要将新位置预先添加到您的环境中,导出变量('export'或'setenv'),并且您可能还需要'rehash'哦,您是对的。我走错了路。现在它起作用了。但有一个新问题。我必须链接scalapack,所以我根据linkadvisor添加了
-lmkl\u scalapack\u lp64-lmkl\u blacs\u openmpi\u lp64
。但是我有很多未定义的引用,有什么问题吗?确保mkl lib在mpi lib之前。我假设您使用mpif90或mpifort来链接您的应用程序,因此您可以使用“mpifort--showme…”来获取完整的命令行。它应该类似于“-lmkl_scalapack_lp64-lmkl_blacs_openmpi_lp64-lmpi”