I am experiencing some issues compiling the ETK on BW.
The command I use is the standard command for simfactory, where I specify the machine as follows:
./simfactory/bin/sim build ETK_standard --mdbkey make 'make -j16' --machine=bluewaters --thornlist=../einsteintoolkit.th | cat >& compilation_trial.out
The error on which I am actually stuck is the following:
COMPILING arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:112:48: error: macro "CCTK_LOOP3STROFF_NORMAL" requires 24 arguments, but only 23 given dstipadext, dstjpadext, dstkpadext) { ^ In file included from /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_core.h:157:0, from /mnt/a/u/sciteam/cipollet/Cactus/configs/ETK_standard/bindings/include/CarpetLib/cctk.h:7, from /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:1: /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc: In function 'void CarpetLib::interpolate_3d_2tl(const T*, CCTK_REAL8, const T*, CCTK_REAL8, const ivect3&, const ivect3&, T*, CCTK_REAL8, const ivect3&, const ivect3&, const ibbox3&, const ibbox3&, const ibbox3&, const ibbox3&, void*)': /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2460:3: error: 'CCTK_LOOP3STROFF_NORMAL' was not declared in this scope CCTK_LOOP3STROFF_NORMAL(name, \ ^ /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2444:3: note: in expansion of macro 'CCTK_LOOP3STROFF' CCTK_LOOP3STROFF(name, \ ^ /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2428:3: note: in expansion of macro 'CCTK_LOOP3STR' CCTK_LOOP3STR(name, \ ^ /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:111:3: note: in expansion of macro 'CCTK_LOOP3' CCTK_LOOP3(interpolate_3d_2tl, i, j, k, 0, 0, 0, regiext, regjext, regkext, ^ In file included from /mnt/a/u/sciteam/cipollet/Cactus/configs/ETK_standard/bindings/include/loopcontrol.h:4:0, from /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:4: /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc: At global scope: /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/LoopControl/src/loopcontrol.h:263:3: error: expected declaration before '}' token } \ ^ /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/LoopControl/src/loopcontrol.h:304:42: note: in expansion of macro 'LC_ENDLOOP3STROFF_NORMAL' #define CCTK_ENDLOOP3STROFF_NORMAL(name) LC_ENDLOOP3STROFF_NORMAL(name) ^ /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2470:3: note: in expansion of macro 'CCTK_ENDLOOP3STROFF_NORMAL' CCTK_ENDLOOP3STROFF_NORMAL(name) \ ^ /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2452:3: note: in expansion of macro 'CCTK_ENDLOOP3STROFF' CCTK_ENDLOOP3STROFF(name) \ ^ /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2436:3: note: in expansion of macro 'CCTK_ENDLOOP3STR' CCTK_ENDLOOP3STR(name) \ ^ /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:116:3: note: in expansion of macro 'CCTK_ENDLOOP3' CCTK_ENDLOOP3(interpolate_3d_2tl); ^ make[3]: *** [interpolate_3d_2tl.cc.o] Error 1 make[2]: *** [make.checked] Error 2 make[1]: *** [/mnt/a/u/sciteam/cipollet/Cactus/configs/ETK_standard/lib/libthorn_CarpetLib.a] Error 2 make: *** [ETK_standard] Error 2
As you can see, the CarpetLib is not compiled, due to an error on a call to a macro of Cactus. As the CarpetLib is a pretty standard one, I assume that there should be some bugs in the machine configuration file in simfactory, probably when specifying the flags for the compilers. I also tried the other configuration for BW machine (i.e. the "-cray" and "-pgi" versions) when trying to compile another config of the ETK on BW, but neither those where succesful.
Can anyone give me some hint?
Thank you very much, Federico Cipolletta.
Hello Federico,
Can anyone give me some hint?
I can compile the ET_Proca release of the ET one BW using the release option list.
this change is likely due to a change in the BW programming environment (which may have slipped proper announcement channels).
The error you describe (incorrect number of arguments to CCTK_LOOP3STROFF_NORMAL) is most likely due to mixing differing versions of the codes.
Eg the argument list of CCTK_LOOP3STROFF_NORMAL increased from 23 to 24 in e896df97
https://bitbucket.org/cactuscode/cactus/commits/e896df97e3afb6e2f90588dc8edb...
I cannot give a definitive answer as to why different different versions may be used. One guess would be that something confused make. This can happen if you mix using simfactory's "sync" command to copy source code to a cluster with editing / updating / downloading code directly on the cluster.
In that case you can try and see if a full fresh recompile using, in order of severity of wiping the configuration
make sim-clean make sim-realclean rm -rf configs/sim
before a fresh
simfactory/bin/sim build --thornlist thornlists/einsteintoolkit.th
is used.
Note that currently "master" does not build on BW due to a failure to properly detect the F90 compiler though that failure happens during the CST phase.
Yours, Roland
users@lists.einsteintoolkit.org