Skip to content

e4s ci: add trilinos +rocm#31601

Merged
eugeneswalker merged 4 commits intospack:developfrom
eugeneswalker:e4s-add-trilinos-rocm
Oct 17, 2022
Merged

e4s ci: add trilinos +rocm#31601
eugeneswalker merged 4 commits intospack:developfrom
eugeneswalker:e4s-add-trilinos-rocm

Conversation

@eugeneswalker
Copy link
Copy Markdown
Contributor

@spackbot-app spackbot-app bot added the gitlab Issues related to gitlab integration label Jul 15, 2022
sethrj
sethrj previously approved these changes Jul 15, 2022
@eugeneswalker eugeneswalker enabled auto-merge (squash) July 15, 2022 16:57
tldahlgren
tldahlgren previously approved these changes Jul 15, 2022
Copy link
Copy Markdown
Contributor

@tldahlgren tldahlgren left a comment

Choose a reason for hiding this comment

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

LGTM

@alalazo alalazo force-pushed the e4s-add-trilinos-rocm branch from e2fa935 to f86a81d Compare July 18, 2022 07:59
@spackbot-app spackbot-app bot added the core PR affects Spack core functionality label Jul 18, 2022
@alalazo alalazo dismissed stale reviews from tldahlgren and sethrj via f86a81d July 18, 2022 08:25
sethrj
sethrj previously approved these changes Jul 18, 2022
keitat
keitat previously approved these changes Jul 18, 2022
@tldahlgren
Copy link
Copy Markdown
Contributor

Looks like the trilinos package doesn't build with these variants per https://gitlab.spack.io/spack/spack/-/jobs/2808509. Although the job log is truncated, the build log can be found at https://gitlab.spack.io/spack/spack/-/jobs/2808509/artifacts/browse/jobs_scratch_dir/logs/.

@sethrj
Copy link
Copy Markdown
Contributor

sethrj commented Jul 28, 2022

Hah, this is a similar error to what I've seen on windows:

spack-src/packages/belos/src/BelosBiCGStabSolMgr.hpp:280:37: error: dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables.
    static constexpr std::ostream * outputStream_default_ = &std::cout;
                                    ^                       ~~~~~~~~~~

This line of code makes me sad.

@keitat
Copy link
Copy Markdown
Contributor

keitat commented Aug 2, 2022

I am going to bring this to the Belos developers.

@eugeneswalker
Copy link
Copy Markdown
Contributor Author

I am going to bring this to the Belos developers.

Any update? Would it make sense to add a patch?

@eugeneswalker eugeneswalker changed the title e4s ci stack: add trilinos +rocm e4s ci: add trilinos +rocm Oct 4, 2022
@eugeneswalker eugeneswalker dismissed stale reviews from keitat and sethrj via c603f1c October 10, 2022 22:50
@eugeneswalker
Copy link
Copy Markdown
Contributor Author

Trying [email protected] ~belos +rocm ... to see if that helps.

@sethrj
Copy link
Copy Markdown
Contributor

sethrj commented Oct 10, 2022

Not sure if this helps, but here's a patch (which predates the current half-baked fix so can't be directly applied) that I think will fix the underlying problem:
sethrj/Trilinos@7167725

@eugeneswalker
Copy link
Copy Markdown
Contributor Author

Testing this locally, I had to set ~belos ~stokhos ~ifpack2 to get it to build. Just updated the PR here. Expect it to pass this time.

@sethrj
Copy link
Copy Markdown
Contributor

sethrj commented Oct 13, 2022

If we can't build the fundamental "modern" linear solver package, how much point is there in distributing Trilinos with E4S :(

@eugeneswalker
Copy link
Copy Markdown
Contributor Author

If we can't build the fundamental "modern" linear solver package, how much point is there in distributing Trilinos with E4S :(

100% but, better to put this in now where we are to ensure at least it remains buildable, and then, when the issues are resolved, enable the other variants.

@eugeneswalker
Copy link
Copy Markdown
Contributor Author

Re-based on develop since e4s-pr-generate is failing because of known broken specs in develop.

@eugeneswalker eugeneswalker merged commit dd003f6 into spack:develop Oct 17, 2022
luke-dt added a commit to dantaslab/spack that referenced this pull request Oct 19, 2022
* hypre 2.26.0 (spack#33299)

* Github Discussions can be used for Q&A (spack#33364)

* Support spackbot rebuilding all specs from source (spack#32596)

Support spackbot rebuilding all specs from source when asked (with "rebuild everything")

- Allow overriding --prune-dag cli opt with env var
- Use job variable to optionally prevent rebuild jobs early exit behavior
- ci rebuild: Use new install argument to insist deps are always installed from binary, but
package is only installed from source.
- gitlab: fix bug w/ untouched pruning
- ci rebuild: install from hash rather than json file
- When doing a "rebuild everything" pipeline, make sure that each install job only consumes
binary dependencies from the mirror being populated by the current pipeline.  This avoids
using, e.g. binaries from develop, when rebuilding everything on a PR.
- When running a pipeline to rebuild everything, do not die because we generated a hash on
the broken specs list.  Instead only warn in that case.
- bugfix: Replace broken no-args tty.die() with sys.exit(1)

* python: add 3.10.7, 3.9.14, 3.8.14, 3.7.14 (spack#32623)

* Add checksum for py-secretstorage 3.3.3 (spack#33366)

* Add checksum for py-ipykernel 6.15.2 (spack#33360)

* GnuPG: add v2.3.8 and update stack (spack#33368)

* installer.py: traverse_dependencies has local deptype (spack#33367)

Currently `traverse_dependencies` fixes deptypes to traverse once and
for all in the recursion, but this is incorrect, since deptypes depend
on the node (e.g. if it's a dependency and cache-only, don't follow
build type edges, even if the parent is build from sources and needs
build deps.)

* py-horovod: add v0.26 (spack#33311)

* py-horovod: add v0.26

* py-petastorm: add v0.12.0

* database: don't warn adding missing build deps (spack#33361)

When installing an individual spec `spack --only=package --cache-only /xyz`
from a buildcache, Spack currently issues tons of warnings about
missing build deps (and their deps) in the database.

This PR disables these warnings, since it's fine to have a spec without
its build deps in the db (they are just "missing").

* Classic Intel compilers do not support gcc-toolchain (spack#33281)

* Classic Intel compilers do not support gcc-toolchain

This fix removes `--gcc-toolchain=` from the ~.fcg` files for the classic Intel
compilers. AFAIK this option is only supported for Clang based compilers.

This lead to an issue when installing cmake. Reproducer:
```
spack install [email protected]%[email protected]~doc+ncurses+ownlibs~qt
build_type=Release arch=linux-amzn2-skylake_avx512
```

Tagging maintainer @rscohn2

* Add `-gcc-name` for icc

.. and `-gxx-name` for icpc.

AFAIK this is used for modern C++ support, so we can ignore `ifort`.

Co-authored-by: Stephen Sachs <[email protected]>

* py-xopen: version bump to 1.6.0 (spack#33231)

* version bump to 1.6.0

* added py-isal, updated URL

* Initial contribution of LibPressio ecosystem (spack#32630)

* Add libpressio and dependencies; some of these packages are
  maintained as forks of the original repositories and in those
  cases the docstring mentions this.
* Add optional dependency in adios2 on libpressio
* cub package: set CUB_DIR environment variable for dependent
  installations
* Clear R_HOME/R_ENVIRON before Spack installation (avoid sources
  outside of Spack from affecting the installation in Spack)
* Rename dlib to dorian3d-dlib and update dependents; add new dlib
  implementation. Pending an official policy on how to handle
  packages with short names, reviewer unilaterally decided that
  the rename was acceptable given that the new Spack dlib package
  is referenced more widely (by orders of magnitude) than the
  original

Co-authored-by: Samuel Li <[email protected]>

* New packages: libbigwig, methyldackel (spack#33273)

* libbigwig: adding new package libbigwig
* methyldackel: adding new package methyldackel
* libbigwig: tighten up curl variant

* grid: reference `fftw-api` instead of `fftw` (spack#33374)

This makes it possible to compile with, e.g., `cray-fftw`, not just `fftw`.

* Bugfix HIP and aluminum rocm build (spack#33344)

* Fixed two bugs in the HIP package recipe.  The first is that the
HIP_PATH was being set to the actual spec, and not the spec prefix.

The second bug is that HIP is expected to be in /opt/rocm-x.y.z/hip
but it's libraries can exist at both /opt/rocm-x.y.z/hip/lib and
/opt/rocm-x.y.z/lib.  This means that the external detection logic may
find it in either and it turns out that some modules only expose one
of those two locations.  Logic is added to ensure that the internal
HIP_PATH and associated ROCM_PATH are correctly set in both cases.

* Added support for Aluminum to use the libfabric plugin with either
RCCL or NCCL.

* lz4: add 1.9.4 (spack#33334)

* e4s ci stack: add trilinos +rocm (spack#31601)

* py-fiona: add v1.8.22 (spack#33372)

* intel-oneapi-compilers: fix Python 2.7 compliance (spack#33383)

* build(deps): bump docker/setup-buildx-action from 2.1.0 to 2.2.0 (spack#33384)

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@95cb08c...c74574e)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* mothur: add v1.48.0 and variants (spack#33326)

* vsearch: add v2.22.1 (spack#33327)

* papi: fix for Intel OneAPI compiler (spack#33225)

Without this patch one hits this error trying to compiler papi with Intel OneAPI:

icx: error: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0' [-Werror,-Wdebug-disables-optimization]

Signed-off-by: Howard Pritchard <[email protected]>

Signed-off-by: Howard Pritchard <[email protected]>

* go,gcc: Support external go compilers for Go bootstrap (spack#27769)

For ARM64, fallback to gccgo. ([email protected] can't support ARM64)

* Reusable --use-buildcache with better validation (spack#33388)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Docs: Spack info option updates (spack#33376)

* intel-oneapi-compilers: do not pass -Wno-unused-command-line-argument to icc + refactor (spack#33389)

* spack checksum: warn if version is deprecated (spack#32438)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Update the binary index before attempting direct fetches (spack#32137)

"spack install" will not update the binary index if given a concrete
spec, which causes it to fall back to direct fetches when a simple
index update would have helped. For S3 buckets in particular, this
significantly and needlessly slows down the install process.

This commit alters the logic so that the binary index is updated
whenever a by-hash lookup fails. The lookup is attempted again with
the updated index before falling back to direct fetches. To avoid
updating too frequently (potentially once for each spec being
installed), BinaryCacheIndex.update now includes a "cooldown"
option, and when this option is enabled it will not update more
than once in a cooldown window (set in config.yaml).

Co-authored-by: Tamara Dahlgren <[email protected]>

* Relocate "run" type dependencies too (spack#33191)

When downloading from binary cache not only replace RPATHs to dependencies, but
also text references to dependencies.

Example:
`[email protected]` contains a text reference to the executable of its dependency
`perl`:

```
$ grep perl-5 /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/autoconf-2.69-q3lo/bin/autoreconf
eval 'case $# in 0) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0";; *) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0" "$@";; esac'
```

These references need to be replace or any package using `autoreconf` will fail
as it cannot find the installed `perl`.

Co-authored-by: Stephen Sachs <[email protected]>

* Add a command to bootstrap Spack right now (spack#33407)

* axom: python only reliably available when +python, +devtools (spack#33414)

* pilercr: new package (spack#33251)

* new package
* fixed style
* actually building now

* raja +rocm: use hipcc as CMAKE_CXX_COMPILER (spack#33375)

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Howard Pritchard <[email protected]>
Co-authored-by: Rui Peng Li <[email protected]>
Co-authored-by: Harmen Stoppels <[email protected]>
Co-authored-by: Scott Wittenburg <[email protected]>
Co-authored-by: Carlos Bederián <[email protected]>
Co-authored-by: iarspider <[email protected]>
Co-authored-by: Massimiliano Culpo <[email protected]>
Co-authored-by: Adam J. Stewart <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Robert Underwood <[email protected]>
Co-authored-by: Samuel Li <[email protected]>
Co-authored-by: snehring <[email protected]>
Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Brian Van Essen <[email protected]>
Co-authored-by: Michael Kuhn <[email protected]>
Co-authored-by: eugeneswalker <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Howard Pritchard <[email protected]>
Co-authored-by: Bernhard Kaindl <[email protected]>
Co-authored-by: Tamara Dahlgren <[email protected]>
Co-authored-by: Robert Cohn <[email protected]>
Co-authored-by: Jonathon Anderson <[email protected]>
luke-dt added a commit to dantaslab/spack that referenced this pull request Oct 19, 2022
* hypre 2.26.0 (spack#33299)

* Github Discussions can be used for Q&A (spack#33364)

* Support spackbot rebuilding all specs from source (spack#32596)

Support spackbot rebuilding all specs from source when asked (with "rebuild everything")

- Allow overriding --prune-dag cli opt with env var
- Use job variable to optionally prevent rebuild jobs early exit behavior
- ci rebuild: Use new install argument to insist deps are always installed from binary, but
package is only installed from source.
- gitlab: fix bug w/ untouched pruning
- ci rebuild: install from hash rather than json file
- When doing a "rebuild everything" pipeline, make sure that each install job only consumes
binary dependencies from the mirror being populated by the current pipeline.  This avoids
using, e.g. binaries from develop, when rebuilding everything on a PR.
- When running a pipeline to rebuild everything, do not die because we generated a hash on
the broken specs list.  Instead only warn in that case.
- bugfix: Replace broken no-args tty.die() with sys.exit(1)

* python: add 3.10.7, 3.9.14, 3.8.14, 3.7.14 (spack#32623)

* Add checksum for py-secretstorage 3.3.3 (spack#33366)

* Add checksum for py-ipykernel 6.15.2 (spack#33360)

* GnuPG: add v2.3.8 and update stack (spack#33368)

* installer.py: traverse_dependencies has local deptype (spack#33367)

Currently `traverse_dependencies` fixes deptypes to traverse once and
for all in the recursion, but this is incorrect, since deptypes depend
on the node (e.g. if it's a dependency and cache-only, don't follow
build type edges, even if the parent is build from sources and needs
build deps.)

* py-horovod: add v0.26 (spack#33311)

* py-horovod: add v0.26

* py-petastorm: add v0.12.0

* database: don't warn adding missing build deps (spack#33361)

When installing an individual spec `spack --only=package --cache-only /xyz`
from a buildcache, Spack currently issues tons of warnings about
missing build deps (and their deps) in the database.

This PR disables these warnings, since it's fine to have a spec without
its build deps in the db (they are just "missing").

* Classic Intel compilers do not support gcc-toolchain (spack#33281)

* Classic Intel compilers do not support gcc-toolchain

This fix removes `--gcc-toolchain=` from the ~.fcg` files for the classic Intel
compilers. AFAIK this option is only supported for Clang based compilers.

This lead to an issue when installing cmake. Reproducer:
```
spack install [email protected]%[email protected]~doc+ncurses+ownlibs~qt
build_type=Release arch=linux-amzn2-skylake_avx512
```

Tagging maintainer @rscohn2

* Add `-gcc-name` for icc

.. and `-gxx-name` for icpc.

AFAIK this is used for modern C++ support, so we can ignore `ifort`.

Co-authored-by: Stephen Sachs <[email protected]>

* py-xopen: version bump to 1.6.0 (spack#33231)

* version bump to 1.6.0

* added py-isal, updated URL

* Initial contribution of LibPressio ecosystem (spack#32630)

* Add libpressio and dependencies; some of these packages are
  maintained as forks of the original repositories and in those
  cases the docstring mentions this.
* Add optional dependency in adios2 on libpressio
* cub package: set CUB_DIR environment variable for dependent
  installations
* Clear R_HOME/R_ENVIRON before Spack installation (avoid sources
  outside of Spack from affecting the installation in Spack)
* Rename dlib to dorian3d-dlib and update dependents; add new dlib
  implementation. Pending an official policy on how to handle
  packages with short names, reviewer unilaterally decided that
  the rename was acceptable given that the new Spack dlib package
  is referenced more widely (by orders of magnitude) than the
  original

Co-authored-by: Samuel Li <[email protected]>

* New packages: libbigwig, methyldackel (spack#33273)

* libbigwig: adding new package libbigwig
* methyldackel: adding new package methyldackel
* libbigwig: tighten up curl variant

* grid: reference `fftw-api` instead of `fftw` (spack#33374)

This makes it possible to compile with, e.g., `cray-fftw`, not just `fftw`.

* Bugfix HIP and aluminum rocm build (spack#33344)

* Fixed two bugs in the HIP package recipe.  The first is that the
HIP_PATH was being set to the actual spec, and not the spec prefix.

The second bug is that HIP is expected to be in /opt/rocm-x.y.z/hip
but it's libraries can exist at both /opt/rocm-x.y.z/hip/lib and
/opt/rocm-x.y.z/lib.  This means that the external detection logic may
find it in either and it turns out that some modules only expose one
of those two locations.  Logic is added to ensure that the internal
HIP_PATH and associated ROCM_PATH are correctly set in both cases.

* Added support for Aluminum to use the libfabric plugin with either
RCCL or NCCL.

* lz4: add 1.9.4 (spack#33334)

* e4s ci stack: add trilinos +rocm (spack#31601)

* py-fiona: add v1.8.22 (spack#33372)

* intel-oneapi-compilers: fix Python 2.7 compliance (spack#33383)

* build(deps): bump docker/setup-buildx-action from 2.1.0 to 2.2.0 (spack#33384)

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@95cb08c...c74574e)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* mothur: add v1.48.0 and variants (spack#33326)

* vsearch: add v2.22.1 (spack#33327)

* papi: fix for Intel OneAPI compiler (spack#33225)

Without this patch one hits this error trying to compiler papi with Intel OneAPI:

icx: error: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0' [-Werror,-Wdebug-disables-optimization]

Signed-off-by: Howard Pritchard <[email protected]>

Signed-off-by: Howard Pritchard <[email protected]>

* go,gcc: Support external go compilers for Go bootstrap (spack#27769)

For ARM64, fallback to gccgo. ([email protected] can't support ARM64)

* Reusable --use-buildcache with better validation (spack#33388)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Docs: Spack info option updates (spack#33376)

* intel-oneapi-compilers: do not pass -Wno-unused-command-line-argument to icc + refactor (spack#33389)

* spack checksum: warn if version is deprecated (spack#32438)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Update the binary index before attempting direct fetches (spack#32137)

"spack install" will not update the binary index if given a concrete
spec, which causes it to fall back to direct fetches when a simple
index update would have helped. For S3 buckets in particular, this
significantly and needlessly slows down the install process.

This commit alters the logic so that the binary index is updated
whenever a by-hash lookup fails. The lookup is attempted again with
the updated index before falling back to direct fetches. To avoid
updating too frequently (potentially once for each spec being
installed), BinaryCacheIndex.update now includes a "cooldown"
option, and when this option is enabled it will not update more
than once in a cooldown window (set in config.yaml).

Co-authored-by: Tamara Dahlgren <[email protected]>

* Relocate "run" type dependencies too (spack#33191)

When downloading from binary cache not only replace RPATHs to dependencies, but
also text references to dependencies.

Example:
`[email protected]` contains a text reference to the executable of its dependency
`perl`:

```
$ grep perl-5 /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/autoconf-2.69-q3lo/bin/autoreconf
eval 'case $# in 0) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0";; *) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0" "$@";; esac'
```

These references need to be replace or any package using `autoreconf` will fail
as it cannot find the installed `perl`.

Co-authored-by: Stephen Sachs <[email protected]>

* Add a command to bootstrap Spack right now (spack#33407)

* axom: python only reliably available when +python, +devtools (spack#33414)

* pilercr: new package (spack#33251)

* new package
* fixed style
* actually building now

* raja +rocm: use hipcc as CMAKE_CXX_COMPILER (spack#33375)

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Howard Pritchard <[email protected]>
Co-authored-by: Rui Peng Li <[email protected]>
Co-authored-by: Harmen Stoppels <[email protected]>
Co-authored-by: Scott Wittenburg <[email protected]>
Co-authored-by: Carlos Bederián <[email protected]>
Co-authored-by: iarspider <[email protected]>
Co-authored-by: Massimiliano Culpo <[email protected]>
Co-authored-by: Adam J. Stewart <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Robert Underwood <[email protected]>
Co-authored-by: Samuel Li <[email protected]>
Co-authored-by: snehring <[email protected]>
Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Brian Van Essen <[email protected]>
Co-authored-by: Michael Kuhn <[email protected]>
Co-authored-by: eugeneswalker <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Howard Pritchard <[email protected]>
Co-authored-by: Bernhard Kaindl <[email protected]>
Co-authored-by: Tamara Dahlgren <[email protected]>
Co-authored-by: Robert Cohn <[email protected]>
Co-authored-by: Jonathon Anderson <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core PR affects Spack core functionality e4s gitlab Issues related to gitlab integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants