Project

General

Profile

Support #23688

Requesting new UPS packages CVODES, Stan-math, Stan (and new version of Eigen)

Added by Jeremy Wolcott about 2 months ago. Updated 6 days ago.

Status:
Assigned
Priority:
Normal
Assignee:
Target version:
-
Start date:
12/03/2019
Due date:
% Done:

0%

Estimated time:
Scope:
Internal
Experiment:
DUNE
SSI Package:
Co-Assignees:
Duration:

Description

Hi,

I'd like to request new UPS products for a few packages to be used with DUNE.

In addition, I'd like to request version 3.3.5 of Eigen (which is already distributed in larsoft, but the newest version of which is v3_3_4a) be built.

I've built these all myself for trial UPS packages that we've been using within NOvA, so I can help with building if needed, though my packages were manually assembled and I think SciSoft uses a more automated system. (The versions given below lag behind the most recent available for all the packages, but these versions are known to work for the desired application; we can investigate upgrades later.) I also wrote UPS table files by hand for the NOvA versions, which I'd be happy to offer if needed, but again, I believe SciSoft has a more automated way of generating them.
I offer descriptions of the packages, the locations of source code, and thoughts on how to build them below.

Let me know if I can be of any more help.

Thanks!

-Jeremy


The new packages are:

  • Sundials CVODES, version 3.2.1.
    CVODES is part of the Sundials package, but we don't need the other bits. When I built it for NOvA, I therefore disabled the other components (see the CMake invocation below) and named the resulting UPS package 'cvodes'.
    Sundials builds with CMake.
    Source code: https://computation.llnl.gov/projects/sundials/download/sundials-3.2.1.tar.gz
    Sample cmake invocation:
    cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/dir   -DCMAKE_INSTALL_LIBDIR=slf6.x86_64.e17.prof/lib -DCMAKE_BUILD_TYPE=Release -DEXAMPLES_INSTALL=Off -DBUILD_ARKODE=Off -DBUILD_CVODE=Off -DBUILD_CVODES=On -DBUILD_IDA=Off -DBUILD_IDAS=Off -DBUILD_KINSOL=Off /path/to/sundials-3.2.1
    

    UPS dependencies: none (as configured)
    Proposed UPS package name: cvodes
  • Stan-math, version 2.18.0.
    Stan-math is entirely headers (apart from some self-tests). Stan-math depends on Eigen, CVODES, Boost, and tbb, and the UPS package should reflect this. It ships with a 'lib' directory in the source package which contains all of these (plus a few more needed to build Boost), but I think it's cleaner to obtain those dependencies via UPS, which is why I requested CVODES above. (UPS packages for Eigen, Boost, and tbb already exist.) Though Stan-math is itself header-only, and thus doesn't need any flavor or compiler qualifiers, it depends on CVODES, which does; I couldn't figure a way to make the UPS dependency chain work without attaching CVODES' flavor & qualifiers to Stan-math as well. Maybe you have a better way of doing this.
    Source code: https://github.com/stan-dev/math/archive/v2.18.0.tar.gz
    UPS dependencies: tbb, boost, eigen, cvodes
    Proposed UPS package name: stan_math
  • Stan, version 2.18.0.
    Like Stan-math, Stan is entirely headers (apart from some self-tests) and has no installer. Stan depends on Stan-math, and the UPS package should reflect this. Like with Stan-math, the Stan bundle ships with a 'lib' dir containing Stan-math in it, but I think it's cleaner to connect the dependencies via UPS rather than bundling it into a subdirectory. Also, in my scheme Stan inherits Stan-math's qualifiers and flavor; again, you may have a better way of doing this.
    Source code: https://github.com/stan-dev/stan/archive/v2.18.0.tar.gz
    UPS dependencies: stan_math
    Proposed UPS package name: stan

History

#1 Updated by Kyle Knoepfel about 1 month ago

  • Assignee set to Lynn Garren
  • Status changed from New to Feedback

Packaging a part of an overall system can get complicated. Due to complexity reasons, our preference is to provide a UPS product called "sundials" with only CVODES enabled until requests come in for other solvers.

We are happy for you to provide whatever assistance you can in producing this product. We will provide the buildshims templates for you to fill in with the specific build instructions.

Regarding Stan, please confirm that what you need does not depend on R.

#2 Updated by Jeremy Wolcott about 1 month ago

Hi,

Packaging a part of an overall system can get complicated. Due to complexity reasons, our preference is to provide a UPS product called "sundials" with only CVODES enabled until requests come in for other solvers.

Ok. No problem.

We are happy for you to provide whatever assistance you can in producing this product. We will provide the buildshims templates for you to fill in with the specific build instructions.

Ok. I'll see what I can do -- I'm not familiar with the system but with some minimal help I can probably make it happen.

Regarding Stan, please confirm that what you need does not depend on R.

No, no required dependency. (There's an optional R interface, but it's not required unless some of the tests are built. I typically don't build any of the tests myself since they're more targeted at Stan developers -- I just deploy the headers, which only have the dependencies I mentioned above.)

#3 Updated by Kyle Knoepfel about 1 month ago

  • Status changed from Feedback to Assigned

#4 Updated by Jeremy Wolcott 6 days ago

Hi,

Any progress here to report? It sounded like I was going to be asked for some contributions but haven't seen anything yet.

Thanks!



Also available in: Atom PDF