Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

umfpack, suitesparse_config, CI #828

Merged
merged 8 commits into from
Jun 6, 2024
Merged

umfpack, suitesparse_config, CI #828

merged 8 commits into from
Jun 6, 2024

Conversation

DrTimothyAldenDavis
Copy link
Owner

No description provided.

mmuetzel and others added 8 commits June 5, 2024 17:15
UMFPACK is built without OpenMP. (It doesn't use it directly.)
Hence, `_OPENMP` is not defined when the UMFPACK libraries are built.

Get the information about the used timer function directly from
SuiteSparse_config.h instead.

Fixes #822.
Record in "SuiteSparse_config.h" if working timer functions are available
in libsuitesparse_config.

Always indirect to `SuiteSparse_time` when dependent libraries use
`SUITESPARSE_TIME`.

Add new preprocessor macro `SUITESPARSE_CONFIG_TIMER` which records the
function that is used by libsuitesparse_config for its timer functions.
Use that new preprocessor macro in the reports of UMFPACK.
Avoid indirection through the library if the compilation unit including
`SuiteSparse_config.h` happens to use OpenMP.
GitHub seems to be updating their runner images to include MSVC 19.40
currently.

NVIDIA CUDA seems to think this newer version of MSVC is no longer
Microsoft Visual Studio 2022 (but it is).
Work around that issue by adding `-allow-unsupported-compiler` to the
CUDA flags.

Additionally, it looks like the PATH variable on these runner images is
arranged such that a different (older) `clang-cl` is being picked up
by CMake instead of the newer one from MSVC 19.40.
Work around that by moving that version out of the PATH so CMake picks
the compiler that is installed with Microsoft Visual Studio.
Including headers (from the standard library) in extern "C" blocks can be
problematic.

Use extern "C" block only around function declarations.
SuiteSparse_config: Avoid including headers in extern "C" block.
CI (MSVC): Update build rules for MSVC 19.40
UMFPACK: Display timer function used by SuiteSparse_config in report
@DrTimothyAldenDavis DrTimothyAldenDavis merged commit aaa5e6b into paru_dev2 Jun 6, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants