forked from spack/spack
-
Notifications
You must be signed in to change notification settings - Fork 0
Telcon: 2016 03 24
Todd Gamblin edited this page Mar 24, 2016
·
15 revisions
- Todd Gamblin (LLNL)
- Benedikt Hegner (CERN)
- Ben Boeckel (Kitware)
- D'Jay (Kitware)
- James Amundsen (Fermi)
- Matt Legendre (LLNL)
- Mike Collette (LLNL)
- Patrick Gartung (Fermilab)
- Peter Scheibel (LLNL)
- Greg Lee (LLNL)
- Mario Melara (NERSC)
- Gregory Becker (LLNL)
- Module customization is in Spack thanks to Massimiliano Culpo (EPFL)
- Packages can define:
-
setup_environment
: set up this package's compile and run environments -
setup_dependent_environment
: set up part of compile and run environments for dependencies -
setup_dependent_package
: set up module-scope things for dependent packages.
- may be wise to deprecate some of this and put it in a namespace, but it's here for now.
-
- New
EnvironmentModifications
object allows:-
set
,unset
,set_path
,prepend_path
,append_path
, etc. - changes are recorded and used both for Spack's environment and for adding to modules.
- packager does not have to write the same code twice for build and for module.
-
- New
modules.yaml
config- currently allows things like disabling dotkit generation
- will allow site-specific customization, overrides, etc.
- Looking into naming customization, so that things like PR #498 can be set up with an expression in the config file
- Welcome to the folks from
deal.ii
, who are starting to use Spack
- See interesting discussion of package managers here
- Lots of mac contributions, hardening of numerical lib builds.
- Peter Scheibel is working on better source archive caching
- Implements a mirror in
var/cache
in the spack install - allows packages to be cached locally, built again w/o downloading
- Still needs to cover resources.
- Status on RPM generation (Peter Scheibel)
- Lots of work on supporting DESTDIR recently.
- About to start work on an RPM naming scheme
- scheme will allow packagers to specify arbitrary degrees of combinatorial-ness for installed RPMs.
- from no combinations -> spack hashes.
- Binary install caching (Benedikt Hegner)
- Going well, working except for platform support.
- Needs platform support from Greg Becker to move forward.
- Status of OS + Cray support (Greg Becker)
- Merged, currently resolving conflicts and broken tests.
- Status of build/link/run dependencies (Ben Boeckel)
- Nearly ready to merge, caught more bugs.
- This plus OS support will allow better concretization of build deps and compilers on cross-compiled machines like Titan.
- lapack/blas rework #485
-
require
directive needed by ROSE team, e.g.require('%gcc@4.9.3', when='=chaos_5_x86_64_ib')
- How to mix fortran + clang compilers
- How to build
gcc
andgfortran
on Mac OS X
- packages need some hardening
- no luck building gcc on macs so far
- LLNL working on getting CI set up to include macs
- Jim: bad experience with Mac Minis
- Ben, D'Jay: Kitware has good experience with Mac minis... go figure
- Benedikt:
- High Energy Physics community is evaluating Spack to replace existing solutions at CERN
- planning a hackathon 1st week of May to see how far they can get
- Benedikt has drafted an email with a list of features that would be useful
- Will send to the mailing list to see if anyone else is working on these features, and to plan the sprint at CERN.
- binary packaging
- how to do relocation of binaries for binary packaging.
- don't want to depend on absolute RPATH
- CERN does "environment chaining"
- uses
RUNPATH
+ environment - when
RUNPATH
doesn't work, fall back on the environment-
LD_LIBRARY_PATH
overridesRUNPATH
-
- uses
- LLNL typically falls back on
RPATH
- this is why Spack currently uses
RPATH
-
RUNPATH
/RPATH
differences are subtle, search order is different:-
RUNPATH
only searchesRPATH
of loading object- doesn't look in parent objects'
RPATH
s
- doesn't look in parent objects'
-
RPATH
searches loading object, then its parent, then its parent, and so on.- falls back to
LD_LIBRARY_PATH
only if no objects in the build have the path
- falls back to
- Interesting description of differences on the Qt blog
- Need to think about what this means for Spack.
-
- this is why Spack currently uses
- best effort builds of packages (bottom-up DAG, parallelize)
- Needed for integration builds, where they want things to fail as last
- Spack needs finer-grained locking on packages.
- other items TBD in email.
- please send Benedikt feedback on email:
- what's being done, what's not
- please send Benedikt feedback on email:
- Will send to the mailing list to see if anyone else is working on these features, and to plan the sprint at CERN.