Skip to content

ci: add pangea-4 spack conf #295

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

Merged
merged 12 commits into from
Apr 15, 2025
Merged

ci: add pangea-4 spack conf #295

merged 12 commits into from
Apr 15, 2025

Conversation

Bubusch
Copy link
Contributor

@Bubusch Bubusch commented Feb 18, 2025

Add spack configuration for pangea-4 based on :

Prerequisites:

  • redirect your ~/.spack folder to another filer with more space quota and visible to the cluster (see internal documentation) -> in your home directory run ln -s /appli_RD/$(whoami)/spack .spack
  • use default proxy of pangea-4 developer nodes

To test :

# 0 - setup
module purge
mkdir spack_test
cd spack_test
export GEOS_TPL_DIR=$(pwd)/build
git clone https://github.com/GEOS-DEV/GEOS.git
git clone https://github.com/GEOS-DEV/thirdPartyLibs.git

# 1 - compile tpls
cd thirdPartyLibs
git checkout feature/bubusch/p4-spack
git submodule init
git submodule update
./scripts/uberenv/uberenv.py --spec "%[email protected] ~pygeosx~openmp+docs" --spack-env-file=scripts/spack_configs/pangea-4/spack.yaml --project-json=.uberenv_config.json --prefix $GEOS_TPL_DIR

# 2 - compile/test geos
cd ../GEOS
git submodule init
git submodule update
module load PrgEnv-gnu/8.4.0 craype-x86-milan
module unload cray-libsci cray-mpich
module load cmake/3.27.2 python/3.11.6 hpcx/2.20.0 intel-oneapi-mkl/2023.2.0  
python scripts/config-build.py -hc ../thirdPartyLibs/[email protected] -bt Release
cd [email protected]
make -j32
export OMP_NUM_THREADS=1
ctest -V

@Bubusch Bubusch self-assigned this Feb 18, 2025
@Bubusch Bubusch requested a review from MelReyCG February 18, 2025 13:20
@Bubusch Bubusch added the enhancement New feature or request label Feb 18, 2025
@Bubusch Bubusch marked this pull request as ready for review February 20, 2025 09:09
@Bubusch Bubusch requested a review from jhuang2601 February 21, 2025 16:51
@jhuang2601
Copy link
Contributor

Try to test it on P4 (using p4log03), when compiling TPLs, following error was received

==> Installing "clingo-bootstrap@=spack%gcc@=10.2.1~docs+ipo+optimized+python+static_libstdcpp build_system=cmake build_type=Release generator=make patches=bebb819,ec99431 arch=linux-centos7-x86_64" from a buildcache
fatal: write error: Input/output error
fatal: fetch-pack: invalid index-pack output
==> Error: Command exited with status 128:
'/usr/bin/git' '-c' 'advice.detachedHead=false' '-c' 'advice.detachedHead=false' 'clone' '--bare' '--quiet' 'https://github.com/hypre-space/hypre.git' '/users/j0551570/.spack/git_repos/rzyxd42'
[spack version: 0.22.1 (d66dce2d668a6234504594661506cdd1eaca4adc)
]
[exe: /scratchP4/workspace/j0551570/spack_test/build/spack/bin/spack -D /scratchP4/workspace/j0551570/spack_test/build/spack_env spec --fresh --install-status --very-long]
fatal: write error: Input/output error
fatal: fetch-pack: invalid index-pack output
==> Error: Command exited with status 128:
'/usr/bin/git' '-c' 'advice.detachedHead=false' 'clone' '--bare' '--quiet' 'https://github.com/hypre-space/hypre.git' '/users/j0551570/.spack/git_repos/rzyxd42'

[exe: /scratchP4/workspace/j0551570/spack_test/build/spack/bin/spack -D /scratchP4/workspace/j0551570/spack_test/build/spack_env install --fresh --keep-stage -u lvarray_hostconfig ]
fatal: write error: Input/output error
fatal: fetch-pack: invalid index-pack output
==> Error: Command exited with status 128:
'/usr/bin/git' '-c' 'advice.detachedHead=false' 'clone' '--bare' '--quiet' 'https://github.com/hypre-space/hypre.git' '/users/j0551570/.spack/git_repos/rzyxd42'
[ERROR: Failure of spack install]

Copy link

@MelReyCG MelReyCG left a comment

Choose a reason for hiding this comment

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

Tested without any issue

Copy link
Contributor

@jhuang2601 jhuang2601 left a comment

Choose a reason for hiding this comment

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

@Bubusch Thanks for preparing this spack config. I can compile TPLs and GEOS on P4 with this config.

@jhuang2601
Copy link
Contributor

jhuang2601 commented Apr 15, 2025

@CusiniM @paveltomin @rrsettgast This PR is ready, can you take a look and merge it?

@rrsettgast
Copy link
Member

@Bubusch Is there a way to get CI coverage for this platform?

@rrsettgast
Copy link
Member

rrsettgast commented Apr 15, 2025

@bmhan12 @wrtobin @CusiniM @corbett5 I notice that @Bubusch has a commit updating raja. Can we have a common file where the version is set for all platforms? I think having each platform specify its version requirements is asking for trouble.

@bmhan12
Copy link
Contributor

bmhan12 commented Apr 15, 2025

@bmhan12 @wrtobin @CusiniM @corbett5 I notice that @Bubusch has a commit updating raja. Can we have a common file where the version is set for all platforms? I think having each platform specify its version requirements is asking for trouble.

I asked Spack folks about this issue: spack/spack#49145
When we are dealing with versions that are too new or a specific commit, there's still only two ways to handle it:

  1. We do as-is now, specify that version in each spack.yaml.
  2. We maintain a package.py recipe for each dependency that we want this new version and add version("geosSpecificVersion", commit="abcdef...")

Neither way is very nice.

@jhuang2601
Copy link
Contributor

@Bubusch Is there a way to get CI coverage for this platform?

Yes, @rrsettgast, this is the pending PR: #296

@CusiniM
Copy link
Contributor

CusiniM commented Apr 15, 2025

@bmhan12 @wrtobin @CusiniM @corbett5 I notice that @Bubusch has a commit updating raja. Can we have a common file where the version is set for all platforms? I think having each platform specify its version requirements is asking for trouble.

I asked Spack folks about this issue: spack/spack#49145

When we are dealing with versions that are too new or a specific commit, there's still only two ways to handle it:

  1. We do as-is now, specify that version in each spack.yaml.

  2. We maintain a package.py recipe for each dependency that we want this new version and add version("geosSpecificVersion", commit="abcdef...")

Neither way is very nice.

It s what I tried to do in my other PR (#305) by setting all versions in the geos package.py but as @bmhan12 said it won't work for very nee versions. I think maintaining our own package.py for a few tpls is better.

@Bubusch
Copy link
Contributor Author

Bubusch commented Apr 15, 2025

@Bubusch Is there a way to get CI coverage for this platform?

Yes, @rrsettgast, this is the pending PR: #296

Yes this is the PR for the P4 image, needs to be updated with the latest versions of hypre/raja

@rrsettgast rrsettgast merged commit 9b243a1 into master Apr 15, 2025
12 checks passed
@Bubusch Bubusch deleted the feature/bubusch/p4-spack branch April 17, 2025 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants