[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/45: reppar: Write about the HiePACS/Runtime use case.
From: |
Ludovic Courtès |
Subject: |
04/45: reppar: Write about the HiePACS/Runtime use case. |
Date: |
Tue, 09 Jun 2015 12:36:58 +0000 |
civodul pushed a commit to branch master
in repository maintenance.
commit 665e920158fd720db2c05afb23a6b1780dcc014e
Author: Ludovic Courtès <address@hidden>
Date: Fri May 29 11:55:55 2015 +0200
reppar: Write about the HiePACS/Runtime use case.
---
doc/reppar-2015/code/starpu.scm | 95 ++++++++++++++++++++++++++++++++++
doc/reppar-2015/reproducible-hpc.skb | 56 ++++++++++++++++++++
2 files changed, 151 insertions(+), 0 deletions(-)
diff --git a/doc/reppar-2015/code/starpu.scm b/doc/reppar-2015/code/starpu.scm
new file mode 100644
index 0000000..854c28f
--- /dev/null
+++ b/doc/reppar-2015/code/starpu.scm
@@ -0,0 +1,95 @@
+(define-module (starpu)
+ #:use-module (guix)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix licenses)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages mpi)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages python)
+ #:use-module (ice-9 match)
+ #:export (starpu chameleon))
+
+(define starpu
+ (package
+ (name "starpu")
+ (version "1.1.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://starpu.gforge.inria.fr/files/"
+ "starpu-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0zmkwk9gc65jwqldjydq758scb5x7srq4rdcp2ssy59rpl2ycdms"))))
+ (build-system gnu-build-system)
+ (arguments '(#:tests? #f)) ;XXX: for another day
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("fftw" ,fftw)
+ ("hwloc" ,hwloc)))
+ (home-page "http://starpu.gforge.inria.fr/")
+ (synopsis "Run-time system for heterogeneous computing")
+ (description "Blah...")
+ (license lgpl2.1+)))
+
+;!begin-starpu-variants
+(define starpu-1.2rc ;release candidate
+ (package (inherit starpu)
+ (version "1.2.0rc2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://starpu.gforge.inria.fr/files/"
+ "starpu-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0qgb6yrh3k745grjj14gc2vl6a99m0ljcsisfzcwyhg89vdpx42v"))))))
+
+(define starpu-with-simgrid
+ (package (inherit starpu)
+ (name "starpu-with-simgrid") ;name that shows up in the user interface
+ (inputs `(("simgrid" ,simgrid)
+ ,@(package-inputs starpu)))))
+;!end-starpu-variants
+
+(define (package-with-different-input original label replacement)
+ ;; Return a variant of ORIGINAL where inputs corresponding
+ ;; to LABEL are replaced with REPLACEMENT.
+ (package (inherit original)
+ (inputs (map (lambda (input)
+ (match input
+ ((input-label package)
+ (if (string=? input-label label)
+ `(,label ,replacement)
+ `(,label
+ ,(package-with-different-input
+ package label replacement))))))
+ (package-inputs original)))))
+
+(define chameleon
+ (package
+ (name "chameleon")
+ (version "0.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://project.inria.fr/chameleon/files/2015/02/"
+ "chameleon-" version ".tar_.gz"))
+ (sha256
+ (base32
+ "0zglkqazx5r5r60w881x3ksws96f304k24d0h3ixml1rrrnxrgl1"))
+ (file-name (string-append name "-" version
+ ".tar.gz"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DMORSE_VERBOSE_FIND_PACKAGE=ON"
+ "-DBLAS_VERBOSE=ON")))
+ (inputs `(("starpu" ,starpu)
+ ("blas" ,atlas)
+ ("lapack" ,lapack)))
+ (native-inputs `(("gfortran" ,gfortran-4.8)
+ ("python" ,python-2)))
+ (home-page "https://project.inria.fr/chameleon/")
+ (synopsis "Dense linear algebra solver")
+ (description "Blah...")
+ (license #f)))
diff --git a/doc/reppar-2015/reproducible-hpc.skb
b/doc/reppar-2015/reproducible-hpc.skb
index f43a5d3..8dc903a 100644
--- a/doc/reppar-2015/reproducible-hpc.skb
+++ b/doc/reppar-2015/reproducible-hpc.skb
@@ -42,6 +42,10 @@
(define (include-latex file)
(! (format #f "\n\\input{~a}\n" file)))
+(define (url url)
+ ;; Return a URL typeset in a fixed-with font.
+ (ref :url url :text (tt url)))
+
;; Abbreviate author first names.
(markup-writer '&bib-entry-author
:action (lambda (n e)
@@ -77,6 +81,7 @@ Software Environments in HPC with Guix]
:affiliation "Max Delbrück Center for Molecular
Medicine in the Helmholtz Association"
:address (list "Berlin, Germany"))
+ (author :name "Your Name Here!")
;; + others...
)
@@ -405,6 +410,57 @@ sharing among peers.]))
(section :title [Customizing Packages] ;MORSE
+ (p [Our colleagues at Inria in the HiePACS and Runtime teams
+develop a complete linear algebra software stack going from sparse
+solvers such as PaStiX and dense solvers such as Chameleon,(footnote
+[See ,(url "https://team.inria.fr/hiepacs/software/"), for details.]),
+to run-time support libraries and compiler extensions such as StarPU
+,(ref :bib 'augonnet2009:starpu) and hwloc,(footnote [See ,(url
+"http://runtime.bordeaux.inria.fr/Runtime/software.html").]). While
+developers of simulations want to be able to deploy the whole stack,
+developers of solvers want to be able to deploy just their project's
+dependencies, possibly several variants thereof. For instance,
+developers of Chameleon may want to test their software again several
+versions of StarPU, or against variants of StarPU built with different
+compile-time options. Finally, developers of the lower-level layers,
+such as StarPU, may want to test the effect of changes they make on
+higher-level layers.])
+
+ (figure
+ :legend [Defining variants of the default recipe for
+ StarPU.]
+ :ident "fig-variants"
+
+ (prog :line #f :mark #f
+ (source :language scheme :file "code/starpu.scm"
+ :start ";!begin-starpu-variants"
+ :stop ";!end-starpu-variants")))
+
+ (p [This use case leads to two requirements: that users be able
+to customize and non-ambiguously specify a package DAG, and that they be
+able to reproduce any variant of their package DAG. Guix allows them to
+define variants; the code for these variants can be stored in a
+repository of their own, and then made visible to the ,(tt [guix])
+commands by defining the ,(tt [GUIX_PACKAGE_PATH]) environment variable.
+,(numref :text [Figure] :ident "fig-variants") shows an example of such
+package variants: based on the pre-existing ,(tt [starpu]) variable, the
+first variant defines a package for a new StarPU release candidate,
+simply by changing its ,(tt [source]) field, while the second variant
+adds the optional dependency on the SimGrid simulator,(---)a variant
+useful to scheduling practitioners, but not necessarily to solver
+developers.])
+ (p [These StarPU package definitions are obviously useful to
+users of StarPU: they can install them with ,(tt [guix package -i
+starpu]) and similar commands. But they are also useful to StarPU
+developers: they can enter a ``pristine'' development environment
+corresponding to the dependencies given in the recipe by running ,(tt
+[guix environment starpu --pure]). This command spawns a shell where
+the usual ,(tt [PATH]), ,(tt [CPATH]) etc. environment variables are
+defined to refer precisely to the inputs specified in the recipe. This
+amounts to creating a profile on the fly, containing only the tools and
+libraries necessary when developing StarPU. This is notably useful when
+dealing with build systems that support optional dependencies.])
+ (p (bold [TODO: something about rewriting the Chameleon DAG]))
)
(section :title [Going Further] ;active papers
- branch master updated (028164d -> 23a0b66), Ludovic Courtès, 2015/06/09
- 01/45: reviews: Add more links., Ludovic Courtès, 2015/06/09
- 03/45: reppar: Mention CMake., Ludovic Courtès, 2015/06/09
- 05/45: reppar: Fix a couple of typos., Ludovic Courtès, 2015/06/09
- 06/45: reppar: More on StarPU and Chameleon., Ludovic Courtès, 2015/06/09
- 08/45: reppar: Add missing bibliography file., Ludovic Courtès, 2015/06/09
- 09/45: reppar: Write about limitations., Ludovic Courtès, 2015/06/09
- 07/45: reppar: Augment outline., Ludovic Courtès, 2015/06/09
- 04/45: reppar: Write about the HiePACS/Runtime use case.,
Ludovic Courtès <=
- 15/45: reppar: Add some sort of a conclusion., Ludovic Courtès, 2015/06/09
- 16/45: reppar: Fix typo., Ludovic Courtès, 2015/06/09
- 17/45: reppar: Remove empty figure., Ludovic Courtès, 2015/06/09
- 13/45: reppar: Implement Ricardo's suggestions., Ludovic Courtès, 2015/06/09
- 20/45: reppar: Remove bibliography entries for Web sites., Ludovic Courtès, 2015/06/09
- 18/45: reppar: Add MDC experience report + comments on RPMs., Ludovic Courtès, 2015/06/09
- 19/45: reppar: Fix typos, improve wording., Ludovic Courtès, 2015/06/09
- 10/45: reppar: Add "Related Work" section., Ludovic Courtès, 2015/06/09
- 11/45: reppar: Mention approaches based on VMs and Docker., Ludovic Courtès, 2015/06/09
- 14/45: reppar: Implement Andreas' suggestions., Ludovic Courtès, 2015/06/09