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

Update spack_build.yml to fix cmake pulling llvm #698

Merged
merged 6 commits into from
Nov 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 23 additions & 10 deletions .github/workflows/spack_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,16 @@ jobs:
strategy:
matrix:
spack_spec:
- hiop@develop+mpi~raja~shared~kron~sparse ^openblas ^openmpi ^libevent~openssl
- hiop@develop~mpi~raja~shared~kron~sparse ^openblas ^libevent~openssl
- hiop@develop~mpi+raja~shared~kron~sparse ^openblas ^libevent~openssl

# We will need coinhsl for this, but what are the rules for using
# a coinhsl tarball?
# - hiop@develop~mpi~raja~shared~kron+sparse
- hiop@develop+mpi~raja~shared~kron~sparse ^openmpi
- hiop@develop~mpi~raja~shared~kron~sparse
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nychiang this build is failing because for some reason it's trying to build libflame, and not openblas.

Looks at the concretization comparison between builds, and you'll see that a 3 hour build would make no sense for the smallest build of the batch here.

Copy link
Collaborator Author

@cameronrutherford cameronrutherford Nov 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would that spec possibly need python for this build?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

python is required via
hiop -> amdlibflame -> aocl-utils -> doxygen -> graphviz -> gtkplus -> meson -> python-xxx
why do we need amdlibflame? Concretization shows that it installs a lot of packages.
@cameronrutherford

- hiop@develop~mpi+raja~shared~kron~sparse
# We will need coinhsl for this, but what are the rules for using
# a coinhsl tarball?
# - hiop@develop~mpi~raja~shared~kron+sparse
blas_provider:
- openblas
compiler:
- gcc
Comment on lines +108 to +111
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to add other variants of your current build, or add compiler / blas specifications as wanted.

Would be easy enough to extend this to build / test with different MPI providers as well.


name: Build HiOp with Spack

Expand All @@ -130,8 +133,10 @@ jobs:
spack:
specs:
- ${{ matrix.spack_spec }} target=x86_64_v2
- ${{ matrix.blas_provider }} target=x86_64_v2
concretizer:
reuse: dependencies
reuse: true # We want to re-use existing binaries in spack / GHCR mirror
unify: true # We want to build the openblas and hiop version together!
config:
source_cache: $SPACK_CACHE/source_cache
misc_cache: $SPACK_CACHE/misc_cache
Expand All @@ -141,10 +146,18 @@ jobs:
padded_length: False
mirrors:
local-buildcache: oci://${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# spack: https://binaries.spack.io/develop
# If the spack buildcache fails for any readon, feel free to disable
spack: https://binaries.spack.io/develop
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this is a bad idea

packages:
all:
require: "%gcc"
require: "%${{ matrix.compiler }}"
# https://spack.readthedocs.io/en/latest/packages_yaml.html#setting-requirements-on-virtual-specs
cmake:
# We don't need CMake GUI features for minimal container builds
require: "~qtgui~ncurses"
libevent:
# Building OpenSSL was causing errors
require: "~openssl"
Comment on lines +155 to +160
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was finding spack's ^ syntax in the spec to not always specify variants as I wanted. This is a more sustainable way to always enforce certain options on desired pacakges.

EOF

- name: Configure GHCR mirror
Expand Down
Loading