Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Log in to Marconi cluster
  2. Prepare $MODULEPATH thus the imasenv module can be found and loaded: 

    Code Block
    module use /marconi/home/userexternal/msmukows/public/modules


  3. Load imasenv/3.36.0/intel/2020-test module

    Code Block
    module load imasenv/3.36.0/intel/2020-test


  4. Navigate to the directory with example code:

    Code Block
    cd /marconi_work/FUSIO_HLST/testdir/tests/blitz_pthread_issue_intel_2020


  5. There should be a file named: "test_pulse_create.cpp":


    Code Block
    .
    └── test_pulse_create.cpp


  6. Now execute compilation command:

    Code Block
    icpc `pkg-config blitz --cflags` -I/marconi_work/FUSIO_HLST/msmukows/IMAS_INSTALLER/intel_installer/src/3.36.0/ual/4.10.1/cppinterface/src -I/marconi_work/FUSIO_HLST/msmukows/IMAS_INSTALLER/intel_installer/src/3.36.0/ual/4.10.1/lowlevel -g -O0 -fPIC -shared-intel -c test_pulse_create.cpp

    You should see the very same error message as above .Blitz -pthread error

 Solution

After a long search a solution has been found, however it is not very elegant. Requires editing pkg-config for Blitz, which by default is prepared by SPACK. 

...

Vanilla Blitz's pkg-config - provided by SPACKChanged pkg-config for Blitz


Code Block
# generated by configure / remove this line to disable regeneration
prefix=/marconi_work/FUSIO_HLST/switmdir/libs-intel/blitz/1.0.1/intel/19.1.3.304/hftjglypfr4ovoej6dkxwuedupjqez3m
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: blitz
Description: blitz Library
Version: 0.10
Requires:
Libs: -L${libdir} -lblitz
Cflags: -I${includedir}



Code Block
# generated by configure / remove this line to disable regeneration
prefix=/marconi_work/FUSIO_HLST/switmdir/libs-intel/blitz/1.0.1/intel/19.1.3.304/hftjglypfr4ovoej6dkxwuedupjqez3m
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: blitz
Description: blitz Library
Version: 0.10
Requires:
Libs: -L${libdir} -lblitz
Cflags: -I${includedir} -pthread


The above solution acts the same way as adding the -pthread flag explicitly to the compilation command in point 6 at 2.1 How to reproduce issue, something like below: 

Code Block
icpc `pkg-config blitz --cflags` -I/marconi_work/FUSIO_HLST/msmukows/IMAS_INSTALLER/intel_installer/src/3.36.0/ual/4.10.1/cppinterface/src -I/marconi_work/FUSIO_HLST/msmukows/IMAS_INSTALLER/intel_installer/src/3.36.0/ual/4.10.1/lowlevel -g -O0 -fPIC -shared-intel -c -pthread test_pulse_create.cpp