I have a simple inp file (cube with force on one side, fixed on the other) and I’m trying to solve this with calculix and the mkl pardiso solver. I linked mkl pardiso in the makefile as shown below
LIBS = \ $(DIR)/MT/src/spoolesMT.a \ $(DIR)/spooles.a \ ../../../ARPACK/libarpack_INTEL.a \ -L/home/intel/compilers_and_libraries_2020.3.279/linux/mkl/lib/intel64_lin/ -lmkl_rt ccx_2.17_MT: $(OCCXMAIN) ccx_2.17_MT.a ./date.pl; $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC) -fopenmp -Wall -O2 -g -o $@ $(OCCXMAIN) ccx_2.17_MT.a $(LIBS)
and I put the path to the possible library search paths, otherwise I get runtime errors. It compiles without errors and I get the correct frd result file, if I use
But if I use 2 or more threads, I get often segmentation faults, and even if the calculation is finished without seg faults, the result is of course wrong. Obviously there is concurrent data access, but why? This is intel code…
Can maybe someone who has installed mkl pardiso confirm this behaviour or has someone an idea what I’m doing wrong?
PS: The calculation is quite fast, and takes less than a second