DAQ SW/FW Coordination

Pengfei Ding DUNE DAQ/SC Meeting January 6th, 2020 Outline • Spack-dev updates: - Build system support - DAQ usage model

2 01/06/2020 Pengfei Ding | DAQ SW/FW Coordination Spack-dev updates (I): • Build system currently supported by Spack: • Makefile • Autotools • CMake • Waf • Python setuptools • Qmake, Scons, Octave, Perl - Note: only “single-package” development environment is supported under spack. • Build system supported by by Spack-dev at the moment: - Cmake - Note: “multi-package” development environment is the default.

3 01/06/2020 Pengfei Ding | DAQ SW/FW Coordination Spack-dev updates (II): • Spack-dev build system: - Currently supports CMake only; - Planning to support other build systems supported by spack soon (after March 2020); - Does not require using CetModules, supports plain CMake; - CetModules provides convenience for the following: • Automatically check source files and bring in dependencies from the art suite; • Automatically generate CMake package config files. - Packages built under spack-dev can be installed via “spack install ”; once installed, packages are just like common installed spack modues: • This is important. It means in a production environment, one does not need spack-dev.

4 01/06/2020 Pengfei Ding | DAQ SW/FW Coordination Possible DAQ usage model • Packages bulit under spack-dev or spack; • Built packages installed under a cluster wide NFS area (or cvmfs? If we have our dedicated local cvmfs server). • All DAQ servers can point to the spack module area, and spack will understand layered ”overlaied” product path (upper/latest layer overrides lower layers). • At the moment, this overlay only works if client and server both have the same version of spack (because of the way product hash is calculated). This will be fixed in March 2020. • In DAQ usage model: - Common spack module area referred to by all DAQ nodes; • spack-dev on development node; • developers can set up their own work area; • built packages will be firstly installed to a test area in NFS; • Once tested, packages will be installed to the production area.

5 01/06/2020 Pengfei Ding | DAQ SW/FW Coordination Ongoing evaluation of spack-dev: • Test overlaied spack modules area; • Test plain CMake support in spack-dev; • Convert the following packages into spack modules: - Uhal (Makefile build system) - Ptmp (using waf build system) - Convert artdaq_core into: • Plain CMake package; • Packages using CetModules.

6 01/06/2020 Pengfei Ding | DAQ SW/FW Coordination