我正在尝试编译的Fortran代码仅适用于英特尔Fortran,并且由于Fortran 2008的某些功能,因此最新版本。
我正在使用SSH在集群上完成所有这些工作。
我曾经加载模块
module load compilers/intel/15.1/
使用ifort
。但是,15.1版本不足以编译该程序。因此,我加载了群集中唯一可用的最新版本,
module load compilers/intel/17.0.3/
该程序编译。
但是,在运行时我收到以下错误:
./myprogram: relocation error: ./myprogram: symbol kmp_aligned_malloc, version VERSION not defined in file libiomp5.so with link time reference
./myprogram: relocation error: ./myprogram: symbol kmp_aligned_malloc, version VERSION not defined in file libiomp5.so with link time reference
./myprogram: relocation error: ./myprogram: symbol kmp_aligned_malloc, version VERSION not defined in file libiomp5.so with link time reference
./myprogram: relocation error: ./myprogram: symbol kmp_aligned_malloc, version VERSION not defined in file libiomp5.so with link time reference
--------------------------------------------------------------------------
mpirun has exited due to process rank 0 with PID 22573 on
node splinter-login.local exiting improperly. There are two reasons this could occur:
1. this process did not call "init" before exiting, but others in
the job did. This can cause a job to hang indefinitely while it waits
for all processes to call "init". By rule, if one process calls "init",
then ALL processes must call "init" prior to termination.
2. this process called "init", but exited without calling "finalize".
By rule, all processes that call "init" MUST call "finalize" prior to
exiting or it will be considered an "abnormal termination"
This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
图书馆之间似乎存在冲突。我对吗?我打印了
echo $LD_LIBRARY_PATH
:/share/apps/intel/l_ics_2015.1.133/composer_xe_2015.1.133/ipp/../compiler/lib/intel64/:/lib:/lib64:/share/apps/intel/l_ics_2015.1.133/composer_xe_2015.1.133/compiler/lib/intel64:/share/apps/intel/l_ics_2015.1.133/composer_xe_2015.1.133/compiler/lib/intel64/:/share/apps/intel/l_ics_2015.1.133/composer_xe_2015.1.133/ipp/../compiler/lib/intel64
所以在我看来,在LD_LIBRARY_PATH
中仍然存在英特尔15库。我应该用17个替换它们吗?问题是在/share/apps/intel/
中没有17个库...
更新:我做了
module purge
module load compilers/intel/17.0.3/
recompiled and rerun
并获取评论中提到的.sh
文件
我仍然得到同样的错误