Open nilsdeppe opened 6 years ago
As someone who uses weird compiler setups, I have no objection to this.
Which entries in your table do we currently use? I assume not Comet at least.
We currently use Wheeler, Graham and Cedar are in Canada so Harald will want those, Stampede2 is of interest because it has KNL so we'll need that, BlueWaters is interesting for scaling but it will likely be retired over the course of a year or two. We have used Comet in the distant past, but since their compiler is so old we're stuck installing our own GCC anyway so it doesn't really matter there. The list is supposed to represent systems we actually care about supporting with minimal need to install our own compiler.
@sxs-collaboration/spectre-core-devs do you think we can drop GCC 6 support at this point? It would reduce the number of CI builds and the human effort of working around GCC 6 issues.
yes @nilsdeppe and I discussed this and we agree that dropping gcc6 is a good idea
we should also drop clang4 and add clang10
Is one of you going to put in a PR or should I?
I am not planning to, and from what Larry said yesterday when we talked about this, it sounded like he was hoping you would be so kind :)
@nilsdeppe @wthrowe @kidder any objections to requiring CMake 3.12? It would make finding Python a lot more robust because it introduces FindPython
. Even better would be CMake 3.15 because it adds NumPy finding to FindPython
. Thoughts?
The heuristic that @kidder and I came up with is that for system-supplied (i.e. not header-only or libs we have to compile anyway) that we would bump versions ~3 years after they were released. Having said that, it seems like CMake has been updated on all the systems we use (and I hope newer systems don't use a CMake 2 years old...) So I would be fine bumping
I'm fine with a bump if all the clusters we currently use support it.
Do you think we can bump to CMake 3.15 right away? It was released Jul 2019, which is not super long ago, but it looks like the systems we use support it, except for Ocean. @geoffrey4444 just so I understand the situation, is the CMake version on Ocean quite rigid or reasonably easy to upgrade?
@nilsdeppe Could you delete the systems we surely won't use from the table?
I think currently we need to be able to support them all. Comet and Bridges are aging, but they are still in use and so we shouldn't retire them just yet, even if it's unlikely we actually do end up using them. We do have computer time on these systems.
Comet is now retired as of 7/15/2021: https://www.sdsc.edu/support/user_guides/comet.html
I want to note down here that we can do https://github.com/sxs-collaboration/spectre/pull/2786 once we can require CMake v3.16+.
Wheeler uses Python 3.7.4 now (#3734):
-bash-4.2$ . spectre/support/Environments/wheeler_clang.sh
-bash-4.2$ spectre_load_modules
-bash-4.2$ python --version
Python 3.7.4
I edited the list above. I also added Py versions for Frontera and Stampede 2.
Bridges is now retired as of Feb 15, 2021. I can't login to Bridges 2.
Discussion from today's spectre meeting:
We will drop support for GCC versions older than 9.1.0 so we can backport std::is_constant_evaluated()
, which allows using a different implementation of ERROR
in constexpr and non-constexpr contexts. Alex Macedo found this to reduce compilation memory usage and time by a factor of 2. I'll update this comment once I've tested which Clang version we need to upgrade to.
Edit: From cppreference, we'll need to require clang 9 and newer. I don't think that'll be a problem.
Stampede2 will reach end-of-life and will no longer be available as of November 30, 2023.
From the Stampede 2 user guide. Will remove it from the list now since I don't know anybody that uses it.
All clusters now support python 3.8+, so I think we can drop support for python 3.7
Feature request:
All HPC systems we use currently support GCC 6.3 or newer, so I am requesting making that the requirement. Here is a list of systems and their compiler versions:
Component: