Skip to content

Installation using Intel OneAPI #112

@davidscn

Description

@davidscn

While trying to install CalculiX and the adapter on the computer cluster ITO using Intel's OneAPI, we faced some issues I would like to summarize here. We used the GCC standard library v9.2 and the Intel OneAPI v2021.3.

  • First of all, the adapter was only compatible with libyaml-cpp-0.7.0. Our documentation proposes to download and install version 0.6.2, which lead to link-time errors. Installing v0.7.0 worked fine.
  • After installing the dependencies, building the adapter lead to a link-time error undefined reference to MAIN__. As described in this Intel forum post the solution was to add an additional flag to the Fortran compiler
    FFLAGS = -Wall -O3 -fopenmp $(INCLUDES) ${ADDITIONAL_FFLAGS}
-FFLAGS = -Wall -O3 -fopenmp $(INCLUDES) ${ADDITIONAL_FFLAGS}
+FFLAGS = -Wall -O3 -fopenmp $(INCLUDES) ${ADDITIONAL_FFLAGS} -nofor-main

in order to " link Fortran objects with a C main program".

  • Lastly, we ended up with issues originating from the multi-threading of SPOOLES (similar to the one described on Discourse). We tried a few things to get the multi-threading module work, but eventually disabled the multi-threading (enabled by default) in CalculiX by removing the USE_MT flag.
-CFLAGS = -Wall -O3 -fopenmp $(INCLUDES) -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DUSE_MT
+CFLAGS = -Wall -O3 -fopenmp $(INCLUDES) -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE

Maybe reading a bit more in detail through the SPOOLES documentation might help to resolve this issue in the future.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions