-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Telcon: 2021 09 22
Peter Scheibel edited this page Sep 22, 2021
·
17 revisions
- Todd Gamblin
- Greg Becker
- Peter Scheibel
- Harmen Stoppels
- Timothy Brown
- Ben Fulton
- John Porter
- Justin Phillips
- Kayla Butler
- Luke Roskop
- Mark Krentel
- Massimiliano Culpo
- Tammy Dahlgren
-
Harmen Stoppels
- Only load root specs in an environment: https://github.com/spack/spack/pull/25755
- Remove setup_dependent_run_environment in favor of setup_run_environment: https://github.com/spack/spack/pull/26031
- setup_dependent_run_environment: used by the Python package (py-* packages call Python.setup_dependent_run_environment, and it traverses the DAG to modify PYTHONPATH)
- Now that we have PythonPackage, can we remove Python.setup_dependent_run_environment?
- If you recursively load a DAG with multiple py-* packages, does this mean that Python.setup_dependent_run_environment will traverse the DAG once for each py-* dependency?
- Should
spack load x
be ± equivalent tospack env activate my_env
wheremy_env
hasx
as a root spec and no view? https://github.com/spack/spack/pull/25732spack load
needs some love - Todd: we should discuss the intended semantics of:
- What happens when a module is loaded
- What happens with
spack load
- These should ideally be the same
- Use cases:
- Managing PYTHONPATH
- Who depends on recursive module loading?
- We should recursively load things by default (if you load a package then you should load its dependencies)
- Should we recursively load link dependencies? Or just run dependencies?
- Should chosen defaults differ for TCL and lmod?
- lmod offers more features so we should allow creating tcl modules which do less
-
(Partially covered this week, TBC later) What about packages that install some other package with them (i.e. packages with vendored dependencies)
- E.g. Mvapich2 installs hwloc with it
- (Mark) papi vendors libperfmon (libpfm4?)
- hpctoolkit can work with either papi or libperfmon directly
- In Spack we typically ask if there is an option to disable the vendoring
- What to do when it doesn't?
- Create a patch to remove it?
- What to do when it doesn't?
- Would it be good to allow a Spack package to describe these additional packages that "come along" with it
- Spack-based solutions
- Allow mvapich to provide hwloc (as a virtual)?
- Massimiliano added a patch for the old concretizer to allow a package to add dependency specs to a concretization
-
(Not covered this week, TBC next week) Discussion: Packages which require multiple build systems: how to handle them?
- Discussions on this:
- (Proposal based on using a new directive) https://github.com/spack/seps/blob/8dafadb4cae08275d168af964b3d168b4248977f/seps/sep-0002.md
- (Notes on trying an approach based on a
when
class decorator) https://github.com/spack/seps/issues/4
- Two approaches were covered: Greg thought there were issues with both; we will cover that next week.
- Discussions on this:
-
(Not covered this week, TBC later) Discussion: Packages with multiple conflicting libraries - how to support them?
- For now, any such package installed by Spack advertises just one from the set (this ensures that everything is consistent where needed)
- https://github.com/spack/seps/pull/2
- Brian: opencv will try to install its own openblas (which may conflict with what Spack chooses)
- Mvapich2 installs its own hwloc
- (Peter) I think this is a separate but still interesting problem.
-
Discussion: long environment activations - are you having an issue with this?
- Some large envs might have this problem, e.g.: https://github.com/spack/spack/issues/25555