DLA-Future complex eigensolvers#3813
Conversation
|
I think the CI timeout is an issue of thread binding. Locally, if I run with While if I run with the docker container, which uses |
So far we had no issues with bind-to-none - on the contrary. Could you please verify that it's really the culprit by running the docker container without it. |
This is really not good. I believe we have the following options:
|
|
@oschuett I agree. A multi-stage build would prevent re-building the dependencies every time, which is what we used for DLA-Future. We have recently discussed internally at CSCS about possible avenues for (part of) the CP2K CI (especially GPU tests), and we have some propositions. I'll write you and @mkrack and e-mail in the coming days. (Let me know if I should include anyone else in the discussion.) For the timeout, I think this might be the issue now that we have multiple tests running concurrently: cp2k/tools/docker/scripts/test_regtest_cmake.sh Lines 36 to 37 in d59d53c I'll try to do more tests locally, and try to figure out exactly what is happening. |
Sounds great! I'm looking forward to the email :-)
Oh, I had totally forgotten about the |
|
I disabled binding for pika, and set the number of pika threads to the same number of OpenMP threads. Tests now run in a reasonable time: To get this PR going, may I suggest to enable |
Nice! That looks like a much better solution.
I think, we should just enable libint and leave it on. Since this will prolong the test by ~30 minutes, I'd move it to the weekly cadence. |
Ok, I'll add it here then. While at it, I'll see if I can actually force Spack by temporarily reviving #3331. |
| RUN spack external find --all --not-buildable | ||
|
|
||
| # Enable Spack build cache | ||
| ARG SPACK_BUILD_CACHE=develop-2024-12-15 |
There was a problem hiding this comment.
Oh, I didn't realize that there is now a build cache for develop tags. That's awesome!
Should we maybe link it to the Spack version that we install above:
ARG SPACK_VERSION=develop-2024-12-15
...
git fetch --quiet --depth 1 origin ${{SPACK_VERSION}} --no-tags
...
spack mirror add ${{SPACK_VERSION}} https://binaries.spack.io/${{SPACK_VERSION}}
There was a problem hiding this comment.
Spack does a weekly build. I think they should be separate, otherwise we will have to wait up to a week to be able to update the Spack version.
Unfortunately, as I just mentioned below, it is not possible to use libint from the build cache. I tried multiple ways to force Spack to use it, but it can't satisfy all the constraints with the version provided by the build cache.
This still saves a bit of time, since several dependencies are not built but taken directly from the build cache.
There was a problem hiding this comment.
Unfortunately, as I just mentioned below, it is not possible to use libint from the build cache. I tried multiple ways to force Spack to use it, but it can't satisfy all the constraints with the version provided by the build cache.
Presumably, we're relying too much on Ubuntu packages. With the build cache in place I'd be ready to lean in and install most packages from Spack.
Spack does a weekly build. I think they should be separate, otherwise we will have to wait up to a week to be able to update the Spack version.
Ok, that makes sense. My main worry is that there will be some change that leads to a lot of cache misses. Maybe as a safe-guard we could time box it:
timeout 10m spack -e myenv concretize -f
In any case, all of this could also happen in a separate PR.
There was a problem hiding this comment.
Presumably, we're relying too much on Ubuntu packages.
That is a good point. I can try to experiment locally, and see if I can come up with a combination where libint is indeed pulled from the cache. Another option to look into would be to setup our own OCI registry for the build cache.
Happy to have a look at this in a separate PR of course.
There was a problem hiding this comment.
FYI, I tried to build without tapping into Ubuntu packages but the problem persists. Spack is not very explicit in why it fails, but there must be some incompatibility between the cached libint dependencies and other packages. One workaround could be to use unify: when_possible instead of unify: true, but I feat this will create more problems than it solves (there will be multiple version of some libraries etc.).
|
@oschuett as suggested above I enabled I re-enabled Spack build cache, but I was unable to use |
Ok, then I'll merge this PR now. Furthermore, I'll move the "cmake" test to weekly cadence and I'll also rename it to "spack" because that has become its main role. For testing the CMake build system we can now use the "ssmp" test. |
Introduce DLA-Future complex standard and generalized eigensolvers.
Other changes:
cp_cfm_upper_to_fullfromrpa_gw_kpoints_utiltocp_cfm_basic_linalgAs for #3799, tests in
regtest-dlaf-2requirelibxclibintand therefore will not run in the current CMake CI action.