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

Updates to Isambard-3 spack env and purify benchmark #356

Merged
merged 9 commits into from
Jan 17, 2025
Merged

Conversation

tkoskela
Copy link
Member

Updates purify benchmark to use the latest 5.0 version, adds new benchmarks for the ForwardBackward algorithm and add some sanity checks to parameters.

Adds python packages to isambard-3 spack env

I've commented out external cray-fftw because of the fftw bug that breaks cmake builds. The bug is patched in the spack package so building your own fftw works just fine.

@tkoskela tkoskela requested a review from giordano January 17, 2025 14:38
Comment on lines 155 to 175
py-numpy:
externals:
- spec: [email protected]
modules:
- cray-python
prefix: /opt/cray/pe/python/3.11.7
buildable: false
py-scipy:
externals:
- spec: [email protected]
modules:
- cray-python
prefix: /opt/cray/pe/python/3.11.7
buildable: false
py-mpi4py:
externals:
- spec: [email protected]
modules:
- cray-python
prefix: /opt/cray/pe/python/3.11.7
buildable: false
Copy link
Member

Choose a reason for hiding this comment

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

Any reason for using buildable: false for this packages? Also, I believe you want also to append ^ [email protected] to all these specs, to avoid making it match with other versions of python.

Copy link
Member Author

Choose a reason for hiding this comment

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

I thought buildable: false guarantees that the external will always get used. Is it too strong requirement? Happy to remove it if you think that's better. Adding the python version to the spec

Copy link
Member

Choose a reason for hiding this comment

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

buildable: false complicates environment resolution quite a bit whenever a package appears in the environment. I'd expect troubles for py-numpy and py-scipy because they're somewhat common, py-mpi4py less so and I'd hope spack links it to the right MPI library anyway.

Copy link
Member Author

Choose a reason for hiding this comment

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

👍 thanks for explaining. My builds seem fine after removing it.

Copy link
Member

Choose a reason for hiding this comment

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

For example, one problem could be the following: for some reason a package in the environment requires a specific version of python and that's not compatible with 3.11.7 (say 3.10 or 3.12), another package needs py-numpy, then you end up in the situation where you can't concretize the environment at all. We do use buildable: false for MPI, but we do really want to enforce using system MPI libraries only, I don't see that requirement being useful for python and python packages.

@tkoskela tkoskela merged commit 068c001 into main Jan 17, 2025
@tkoskela tkoskela deleted the tk/update-purify branch January 17, 2025 16:12
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