Skip to content

Improve GOMC Build Process and Related Documentation #492

@LSchwiebert

Description

@LSchwiebert

Is your feature request related to a problem? Please describe.

No. Things work correctly, but resolving this issue would upgrade the build process to generate more efficient code, make alternate builds easier to achieve, and address some minor non-functional issues.

Describe the solution you'd like

Updating the CMake implementation and some documentation.

Describe alternatives you've considered

None.

Additional context

I created a branch, called build-issues, that incorporates all patches for this. Here is a summary of what has been done:

  1. The Readme.md file has been changed to add DOI's for the references, clarify some of the explanation, and update the information that has changed with recent releases.
  2. Code in the lib folder that is no longer being used is no longer compiled.
  3. Rename the Difference() function on the GPU to Difference3() so we can compile with CUDA 12.
  4. Copyright notices are added to some 3rd party files that didn't have their copyright notices. Usually the header file did but not the source file or vice versa.
  5. Copyright notices are added to a few GOMC source files that were missing them.
  6. Update the CMake build process to
    a. Add a -t flag to build with clang-tidy. Should be run before submitting code.
    b. Add a -a flag to build with address sanitizer. More convenient for run-time dynamic analysis of illegal memory accesses.
    c. Update the error message that is printed if an invalid option is used.
    d. Set optimization flags for compiling with the Intel or Gnu compilers. Can turn off the optimizations with the -n flag.
    e. Add support for the new Intel compiler based on LLVM.
    f. Better error handling when incompatible options, like using the Intel compiler with address sanitizer, are specified.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions