GOMC icon indicating copy to clipboard operation
GOMC copied to clipboard

Build issues

Open LSchwiebert opened this issue 2 years ago • 3 comments
trafficstars

This is a major reworking of the build process and some related changes to the core non-functional parts of the GOMC repository. The changes include:

  1. A major edit of the Readme file, including adding the DOI to each of the two references. And clarification of some of the text.
  2. Adding missing copyright notices or correcting ones that were outdated.
  3. Removal of a file that is no longer used (Endian.h) and removed the corresponding google test files.
  4. Changes to the build process to add flags to make it easier to customize the build and avoid conflicts among flags. For instance, you now use -t to run clang-tidy and use -a to build with address sanitizer. Also adds support for the Intel LLVM and Clang compilers.
  5. Major rewrite of the CMake process to include link-time optimization for builds and setting other optimization flags. Should result in better performance. These optimizations can be skipped by using the -n flag with metamake.sh. (Removed the link-time optimization flags because CMake doesn't seem to play well with the GPU LTO flags.)
  6. Cleaned up the headers to use consistent naming and end with an appropriate comment. Some retained information from other header files.

This is a necessary step before our next release, so please test the new build process carefully with available compilers.

LSchwiebert avatar Aug 14 '23 17:08 LSchwiebert

Thanks for taking a look. It's still there. I just needed to move it earlier in the CMakeLists.txt file so it was defined before I set the compiler flags. It looks like it was removed, but it's there starting on line 56.

I did turn off building with OpenMP if Address Sanitizer is being used, because they aren't compatible, but no one should be building with address sanitizer except to debug code or out of curiosity.

LSchwiebert avatar Aug 23 '23 19:08 LSchwiebert

I've completed the patch, so it's ready for testing. I don't have access to a newer Intel compiler, so would like to know what happens when building the GPU code with the new ipcx compiler.

LSchwiebert avatar Jan 08 '24 20:01 LSchwiebert

I removed the use of the new Intel LLVM compiler until CUDA supports it. This patch should be ready for testing and merging.

Most of the changes are cosmetic -- general code cleanup. For example, I updated the README file, added missing copyright notices to 3rd party software that we are using, standardized the #define for including header files, including fixing some that didn't match the filename, improve the build process, especially for the code, and removed unused files.

Once this is approved, we can proceed with the next GOMC release.

LSchwiebert avatar Mar 28 '24 19:03 LSchwiebert