53
Au-del ` a des conteneurs : Environnements reproductibles avec GNU Guix Ludovic Court ` es JCAD 2018, ENS Lyon

Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Au-dela des conteneurs :Environnements reproductibles

avec GNU Guix

Ludovic Courtes

JCAD 2018, ENS Lyon

Page 2: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://www.acm.org/publications/policies/artifact-review-badging

Page 3: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://rescience.github.io/

Page 4: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

http://reproducibility.cs.arizona.edu/

Page 5: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 6: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 7: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 8: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

HPC = cutting edge?

Page 9: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 10: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 11: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 12: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Approach #2:“Preserve the mess”.

– Arnaud Legrand (Inria reproducibility WG)

Page 13: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://imagelayers.io/

Page 14: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://www.hpcwire.com/2016/10/20/singularity-containers-easing-scientific-computing

Page 15: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 16: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 17: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://guix-hpc.bordeaux.inria.fr

Page 18: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

I started in 2012I 8,300+ packages, all free softwareI 4 architectures:

x86 64, i686, ARMv7, AArch64I binaries availableI Guix-HPC effort (Inria, MDC, UBC) started in 2017

Page 19: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

cluster deployments

I Max Delbruck Center (DE): 250-node cluster +workstations

I UMC Utrecht (NL): 68-node cluster (1,000+ cores)I University of Queensland (AU): 20-node cluster (900

cores)I PlaFRIM (FR): Inria Bordeaux (3,000+ cores)

Page 20: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 21: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

guix package -i gcc-toolchain openmpi hwloc

eval ‘guix package --search-paths=prefix‘

guix package --roll-back

guix package --profile=./experiment \

-i [email protected] hwloc@1

Page 22: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

guix package --manifest=my-packages.scm

(specifications->manifest

’("gcc-toolchain" "openmpi"

"scotch" "mumps"))

Page 23: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

bob@laptop$ guix package --manifest=my-packages.scm

bob@laptop$ guix describe

guix cabba9e

repository URL: https://git.sv.gnu.org/git/guix.git

commit: cabba9e15900d20927c1f69c6c87d7d2a62040fe

alice@supercomp$ guix pull --commit=cabba9e

alice@supercomp$ guix package --manifest=my-packages.scm

Page 24: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

bob@laptop$ guix package --manifest=my-packages.scm

bob@laptop$ guix describe

guix cabba9e

repository URL: https://git.sv.gnu.org/git/guix.git

commit: cabba9e15900d20927c1f69c6c87d7d2a62040fe

alice@supercomp$ guix pull --commit=cabba9e

alice@supercomp$ guix package --manifest=my-packages.scm

Page 25: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

bob@laptop$ guix package --manifest=my-packages.scm

bob@laptop$ guix describe

guix cabba9e

repository URL: https://git.sv.gnu.org/git/guix.git

commit: cabba9e15900d20927c1f69c6c87d7d2a62040fe

alice@supercomp$ guix pull --commit=cabba9e

alice@supercomp$ guix package --manifest=my-packages.scm

bit-reproducible & portable!

Page 26: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ git clone https://.../petsc

$ cd petsc

$ guix environment petsc

[env]$ ./configure && make

Page 27: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix environment --ad-hoc \

python python-numpy python-scipy \

-- python3

Page 28: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix pack \

jupyter jupyter-guile-kernel

...

/gnu/store/...-pack.tar.gz

Page 29: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix pack --relocatable \

jupyter jupyter-guile-kernel

...

/gnu/store/...-pack.tar.gz

Page 30: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix pack --format=squashfs \

jupyter jupyter-guile-kernel

...

/gnu/store/...-singularity-image.tar.gz

Page 31: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix pack --format=docker \

jupyter jupyter-guile-kernel

...

/gnu/store/...-docker-image.tar.gz

Page 32: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

LOL

Page 33: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

guix pack hwloc \

--with-source=./hwloc-2.1rc1.tar.gz

guix package -i mumps \

--with-input=scotch=pt-scotch

Page 34: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Reproducible deployment is key.

Page 35: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Reproducible genomics analysispipelines with GNU GuixRicardo Wurmus*1, Bora Uyar*1, Brendan Osberg*1, Vedran Franke*1, Alexander Gosdschan*1,

Katarzyna Wreczycka1, Jonathan Ronen1, Altuna Akalin#1

1The Bioinformatics Platform, The Berlin Institute for Medical Systems Biology,

Max-Delbrück Center for Molecular Medicine, Robert-Rössle-Strasse 10, 13125 Berlin, Germany

https://doi.org/10.1101/298653

Page 36: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

90%

Statusnot reproducibleminor problemsreproducible

all pipelines

PiGx BSseq

PiGx ChIPseq

PiGx RNAseq

PiGx scRNAseq

~98%

Page 37: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Initial dataset

...

...

...

...

......

...

...

...

...

...

...

...

...

Undeniable proof

Workflow

https://www.guixwl.org/

Guix Workflow Language

Page 38: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://gitlab.inria.fr/guix-hpc/guix-kernel/

Jupyter + Guix (WIP!)

Page 39: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Wrap-up.

Page 40: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke
Page 41: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

I reproduce software environmentsI declare & publish complete environmentsI beyond replication: precision experimentationI a foundation for “deployment-aware” apps

Page 42: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Scientists, developers,& sysadmins: let’s talk!

Page 43: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

[email protected] | @GuixHPC

https://guix-hpc.bordeaux.inria.fr

Page 44: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Bonus slides!

Page 45: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix build hwloc

/gnu/store/ h2g4sf72... -hwloc-1.11.2

$ guix gc --references /gnu/store/...-hwloc-1.11.2/gnu/store/...-glibc-2.24/gnu/store/...-gcc-4.9.3-lib/gnu/store/...-hwloc-1.11.2

isolated build: chroot, separate name spaces, etc.

Page 46: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix build hwloc

/gnu/store/ h2g4sf72... -hwloc-1.11.2

$ guix gc --references /gnu/store/...-hwloc-1.11.2/gnu/store/...-glibc-2.24/gnu/store/...-gcc-4.9.3-lib/gnu/store/...-hwloc-1.11.2

hash of all the dependencies

Page 47: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix build hwloc

/gnu/store/ h2g4sf72... -hwloc-1.11.2

$ guix gc --references /gnu/store/...-hwloc-1.11.2/gnu/store/...-glibc-2.24/gnu/store/...-gcc-4.9.3-lib/gnu/store/...-hwloc-1.11.2

Page 48: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

$ guix build hwloc

/gnu/store/ h2g4sf72... -hwloc-1.11.2

$ guix gc --references /gnu/store/...-hwloc-1.11.2/gnu/store/...-glibc-2.24/gnu/store/...-gcc-4.9.3-lib/gnu/store/...-hwloc-1.11.2(nearly) bit-identical for everyone

Page 49: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

transparency?

Page 50: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://github.com/canonical-websites/snapcraft.io/issues/651

Page 51: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

https://lwn.net/Articles/752982/

Page 52: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

hwloc-1.11.2

pkg-config-0.29

libx11-1.6.3

cairo-1.14.6

ncurses-6.0

expat-2.1.1

numactl-2.0.11

libpciaccess-0.13.4

inputproto-2.3.1

xextproto-7.3.0 xtrans-1.3.5 kbproto-1.0.7 libxcb-1.11

zlib-1.2.8

python-wrapper-3.4.3

ghostscript-9.14.0

libspectre-0.2.7

poppler-0.43.0

fontconfig-2.11.94

freetype-2.6.3

glib-2.48.0

libpng-1.5.26

libxext-1.3.3libxrender-0.9.9

pixman-0.34.0

python-minimal-wrapper-3.4.3

xcb-proto-1.11 libxslt-1.1.29

libpthread-stubs-0.3

libxau-1.0.8libxdmcp-1.1.2

openssl-1.0.2h

python-minimal-3.4.3

libgcrypt-1.7.0

libxml2-2.9.4

xproto-7.0.28

perl-5.22.1

libgpg-error-1.22util-macros-1.19.0

bzip2-1.0.6gdbm-1.12libffi-3.2.1 sqlite-3.12.2

readline-6.3tcl-8.6.4

tk-8.6.4

python-3.4.3

lcms-2.6

libjpeg-8d

libpaper-1.1.24

libtiff-4.0.6

libjpeg-9a

gobject-introspection-1.48.0

openjpeg-1.5.2

cairo-1.14.6

gs-fonts-8.11

gettext-0.19.8dbus-1.10.8

bash-4.3.42

coreutils-8.25

tzdata-2015g

pcre-8.38

renderproto-0.11.1

libxft-2.3.2

bison-3.0.4

flex-2.6.0

python-2.7.11

acl-2.2.52

gmp-6.1.0

libcap-2.24

m4-1.4.17

bison-2.7.1 indent-2.2.10 attr-2.4.47

Page 53: Au-delà des conteneurs : Environnements reproductibles ... · Reproducible genomics analysis pipelines with GNU Guix Ricardo Wurmus *1, Bora Uyar *1, Brendan Osberg *1, Vedran Franke

Copyright c© 2010, 2012–2018 Ludovic Courtes [email protected].

GNU Guix logo, CC-BY-SA 4.0, http://gnu.org/s/guix/graphics Hand-drawn arrows by Freepik from flaticon.comCopyright of other images included in this document is held by their respective owners.

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. To view a copy of this license, visithttp://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300,San Francisco, California, 94105, USA.

At your option, you may instead copy, distribute and/or modify this document under the terms of the GNU Free DocumentationLicense, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, noFront-Cover Texts, and no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/licenses/gfdl.html.

The source of this document is available from http://git.sv.gnu.org/cgit/guix/maintenance.git.