sst-elements
sst-elements copied to clipboard
Python Modules Error with Intel 19 Compiler on Cray
Error when compiling SST on Cray environment (Cray-MPI). Using devel branch on core and elements.
Compiler version:
CC --version
icpc (ICC) 19.0.4.243 20190416
Copyright (C) 1985-2019 Intel Corporation. All rights reserved.
SST Output:
sst ./allreduce.py
FATAL: SSTPythonModel: Execution of model construction function failed
Succeeded in loading library for merlin but library does not contain a Python module
SST Fatal Backtrace Information:
0 : /home/sdhammo/sst/2021026/core/bin/sst(_ZNK3SST6Output5fatalEjPKcS2_iS2_z+0x7ab) [0x2010936b]
1 : /home/sdhammo/sst/2021026/core/bin/sst(_ZN3SST4Core24SSTPythonModelDefinition17createConfigGraphEv+0x146) [0x201ff876]
2 : /home/sdhammo/sst/2021026/core/bin/sst(main+0x5a3) [0x2008ba83]
3 : /lib64/libc.so.6(__libc_start_main+0xea) [0x2aaaad3b234a]
4 : /home/sdhammo/sst/2021026/core/bin/sst(_start+0x2a) [0x2008b42a]
Rank 0 [Fri Feb 26 12:22:39 2021] [c0-0c0s5n0] application called MPI_Abort(MPI_COMM_WORLD, 1) - process
That looks like the ELI isn’t loading correctly. Do we ever get the ELI static loading working with the Intel compiler?
Can confirm GCC 9.3.0 (PrgEnv-gnu
) does not encounter this issue.
This was mostly addressed in commit: 66a3e5953fa216fe8ffc8b44b5b2df767f521740
There is a comment in that commit that there is a problem with classes defined entirely in a source file. The Intel compiler decides that because a symbol can't be accessed outside the translation unit it just won't instantiate it at all - leading to no registration of the type.
The pymerlin stuff is entirely contained within a source file. You need to add a SST_ELI_EXPORT(cls)
in the source file for whichever type you want registered in the ELI.
Okay, I can add that to both merlin and ember.
Not to insinuate that you should have noticed a brief offhand comment in the commit : )