lhilbert / active-microemulsion

Package for the lattice-based simulation of active polymer microemulsions, such as dense DNA suspensions
BSD 2-Clause "Simplified" License
2 stars 0 forks source link

Compiler error on icc for threadprivate OMP pragma for random number gens #35

Open lhilbert opened 5 years ago

lhilbert commented 5 years ago

I had to comment out the threadprivate OMP pragma statements from the files RandonGenerator.h and Microemulsion.h

Otherwise the icc compiler on bwUniCluster gives compile errors with the type definitions.

This issue will have to be addressed if we want to go parallel within a single simulation!

churli commented 5 years ago

Did you change any compiler flag or switched between debug, PGO or release mode right before trying to build and getting the error? Also, could you please revert the code back to the original state (uncomment the omp pragmas), check that you are not in PGO mode (switch e.g. to Release), set ENABLE_PGO_USE=0 and run:

rm -rf cmake-build-icc/
make

In this way you will delete any temporary build file and perform a clean build from scratch. Please note that this will also delete any PGO profile, so the profiling run should be executed again (check docs).

In my experience this kind of problems come from trying to build with some flags and parameters while the temporary build files come from an older build which used different ones.

Let me know how it goes! :)

lhilbert commented 5 years ago

Currently I have achieved a state of the code where I can run simulations, so I will not get into more troubleshooting myself unless required to get results.

Also, this is an issue you explained to me before. Specifically, the problem was that either you make a static declaration of the random number generator types towards OMP, or it will not compile with the threadprivate pragma. Now, when I use this static declaration pragma, it will not compile on my local machine. So, this issue will probably not go away with what you describe above. Also, I did delete the object files a few times before, but feel free to try if you can compile on bwUniCluster. That's probably the best way to try if you can get it to compile without use of the static declarations?!