Skip to content
Peter Scheibel edited this page Sep 22, 2021 · 17 revisions

Attendees

  • 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

Agenda

  • 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 to spack env activate my_env where my_env has x as a root spec and no view? https://github.com/spack/spack/pull/25732 spack 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?
    • 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?

  • (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?

Clone this wiki locally