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

CI: Overhaul build matrix for Ubuntu runners and work around issue with Clang #898

Merged

Conversation

mmuetzel
Copy link
Contributor

@mmuetzel mmuetzel commented Feb 4, 2025

The complexity of the build matrix for the Ubuntu runners grew to a level which made it very difficult to understand which set of runners will be started with which configuration.

Overhaul the build matrix settings by moving most of its complexity to the build steps.
That should make it easier to potentially adjust the settings for one of the runners in the matrix in the future.

It looks like the stack is smashed at some point in GraphBLAS when using Clang as the compiler on Ubuntu with optimization level -O3.

It's currently unclear to me why that happens. But changing the build type to "Debug" (i.e., optimization level -O0) works around that issue.

While looking at the issue with Clang on Ubuntu, I came across a couple other (less related) changes which I think are sensible:

  • One of the demos for GraphBLAS failed to build when no OpenMP implementation was installed on the build host.
  • Building failed late when CUDA was enabled but OpenMP wasn't available.

The complexity of the build matrix for the Ubuntu runners grew to a level
which made it very difficult to understand which set of runners will be
started with which configuration.

Overhaul the build matrix settings by moving most of its complexity to the
build steps.
That should make it easier to potentially adjust the settings for one of
the runners in the matrix in the future.
It looks like the stack is smashed at some point in GraphBLAS when using
Clang as the compiler on Ubuntu with optimization level `-O3`.

It's currently unclear to me why that happens. But changing the build
type to "Debug" (i.e., optimization level `-O0`) works around that issue.
Building CHOLMOD_CUDA requires OpenMP. Instead of failing later on
during compilation, emit an error during configuration that point to the
underlying issue.
@mmuetzel
Copy link
Contributor Author

mmuetzel commented Feb 4, 2025

It looks like all Ubuntu runners are passing their tests again. (I didn't have a look at the tests for MSVC with Clang yet.)

@DrTimothyAldenDavis: When you come around to it, could you please merge this PR? I'd like to rebase #894 on top of the changes from this PR.

@DrTimothyAldenDavis
Copy link
Owner

Shall do -- thanks! I'm travelling just now though ... give me a few days to get a change to take a look.

@DrTimothyAldenDavis
Copy link
Owner

on 2nd thought ... it looks pretty clear. I'll merge it now.

@DrTimothyAldenDavis DrTimothyAldenDavis merged commit 7f5e703 into DrTimothyAldenDavis:dev2 Feb 5, 2025
25 of 27 checks passed
@mmuetzel
Copy link
Contributor Author

mmuetzel commented Feb 5, 2025

Thank you! And safe journey!

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