Activityreport2018–2019

Total Page:16

File Type:pdf, Size:1020Kb

Load more

uoi orè,Pu alc,Kna isn jt rn,RcroWurmus Ricardo Prins, Pjotr Hinsen, Konrad Garlick, Paul Courtès, Ludovic 7Fbur 2020 February 17 ciiyRpr 2018–2019 Report Activity a Temp: 22 deg C deg 22 Temp: Supplier: ACME Supplier: b b = 30ml = b a = 10ml = a erdcbesfwr elyetfrhg-efrac computing. high-performance for deployment software Reproducible 20. 2. 19. https://hpc.guix.info/about https://hpc.guix.info/blog/2019/02/guix-hpc-activity-report-2018/ 65 9 https://gitlab.com/makhlaghi/reproducible-paper http://tourbillion-technology.com/ 64 8 https://uthsc.edu/ 7 https://www.cray.com 6 https://www.cnrs.fr/en 5 https://ubc.uu.nl/ 4 https://www.mdc-berlin.de/ 3 https://www.inria.fr/en/ 2 https://guix.gnu.org 1 . inception its after commits 40,000 than more and 10 yamjrmlsoe h ees nMy21 fGUGi .,svnyears seven 1.0, Guix GNU of 2019 May in release the milestone: major a by eraon oa,eray22.hserwasmarked 2020.Thisyear today,February agoand year a previousreport 9 hsrpr ihihskyaheeet fGi-P ewe our between Guix-HPC of achievements key highlights report This . Technology Tourbillion and 8 (UTHSC), Center Science Health Tennessee of University , the Inc. Cray, 7 6 , CNRS including organizations, and individuals additional from tributions 5 N uxfrHCadrpouil cec a eevdcon- received has science reproducible and HPC for Guix . GNU (UBC) ter 4 etro MolecularMedicine(MDC) Centerfor adtheUtrechtBioinformaticsCen- ,and 3 etpoetivligtrersac nttts Inria institutes: research three involving project ment h a Delbrück Max the , 2 uxHCaluce nSpebr07s on softwaredevelop- joint September2017asa in Guix-HPCwaslaunched ihrpouil research. reproducible with ist aei etrto o P rciinradscientistsconcerned practitionersand HPC for tool better a it make to aims HC.Gi-P ulsuo h N Guix GNU the upon builds Guix-HPC (HPC). otaedpomn oland tool deployment software 1 elyett cetfcwrfosadhg-efrac computing high-performance and workflows scientific to deployment uxHCi olbrtv fott rn erdcbesoftware reproducible bring to effort collaborative a is Guix-HPC ! ideas your hear to love we’d and do can we lot a There’s 65 otk datg fGuix. of advantage take to template paper ducible 64 aeenwaeloneetdi dpigMhma Akhlaghi’srepro- Mohammad adapting in samevein,wearealsointerested 18. 3. 4. 17. Outline Perspectives Guix-HPC aims to tackle the following high-level objectives: Making Guix more broadly usable on HPC clusters remains one of • Reproducible scientific workflows. Improve the GNU Guix tool set to bet- our top priorities. Features added this year to guix pack are one way to ter support reproducible scientific workflows and to simplify sharing approach it, and we will keep looking for ways to improve it. In addition to and publication of software environments. this technical approach, we will keep working with cluster administrators • Cluster usage. Streamlining Guix deployment on HPC clusters, and to allow them to deploy Guix directly on their cluster. We have seen more providing interoperability with clusters not running Guix. cluster administratorsdeploy Guix this year and we are confident that this trend will continue. • Outreach & user support. Reaching out to the HPC and scientific re- search communities and organizing training sessions. Last year, we advocated for tight integration of reproducible deploy- ment capabilities through Guix in scientific applications. The GNU Guix Workflow Language and Guix-Jupyter have since matured, giving us more The following sections detail work that has been carried out in each insight into the benefits of the approach and opening new perspectives of these areas. that we will explore. We would additionally like to investigate a comple- mentary approach: adding Guix support to existing tools, such as jupyter- repo2docker62. For the Guix Workflow Language we will continue to explore its suit- ability in scheduler-less compute environments, such as ad-hoc clusters of short-lived virtual servers, that are becoming increasingly popular. We think thatthepropertiesof bit-reproduciblebuildsand package-levelgran- ularity unlock hitherto unavailable sharing among independent parts of workflow environments to an extent that is impossible when using mono- lithic container images. This increase in storage and deployment efficien- cy is expected to result in significant cost savings when computations are offloaded to externally hosted and metered resources. We have witnessed increasing awareness in the scientific communi- ty of the limitations of container-based tooling when it comes to building transparent and reproducible workflows. We are happy to be associated with the “Ten Years Reproducibility Challenge”63 where we plan to demon- strate how Guix can help reproduce computational experiments. In the 62 https://repo2docker.readthedocs.io/en/latest/ 10 63 https://hpc.guix.info/blog/2019/05/gnu-guix-1.0-foundation-for-hpc-reproducible-science/ https://rescience.github.io/ten-years/ https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-pull.html 13 https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-describe.html 12 https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html 11 woemi s aei paigGi) u snwspotdi more a in supported now is but Guix), updating is case use main (whose tp4ue orqiearte nnutv omof form unintuitive rather a require to used 4 Step . describe uxpull guix 12 13 uoaie.Se sspotdby supported is 2 Step automatized. tp3by 3 , step uxenvironment guix guix 11 tp1i eystaindpnetadcnteeoentb fully be not therefore can and situation-dependent very is 1 Step .Rpouigacmuainfo uharecord. a such from computation a 4. Reproducing structed. .Poiigarcr fteeednisrmwihte a berecon- can they which thedependenciesfrom of record a 3. Providing rgasfo h niomn htae“utthere”. “just are that environment the from programs .Esrn htteeaen idndpnece,sc sutility as such dependencies, hidden no are there that 2. Ensuring .Fnigtedpnece facomputation. a of dependencies the 1. Finding teh iifraisCne UC:1pro-er(olJanssen) (Roel person-year 1 (UBC): Center Bioinformatics • Utrecht pects: er(famFahe n jt Prins) Pjotr and Flashner (Efraim year uprigrpouil opttosrqie drsigfu as- four addressing requires computations reproducible Supporting nvriyo ense elhSineCne UHC:08person- 0.8 (UTHSC): Center Science Health Tennessee of • University lmy n ouetto,bt rcia n akrud a scarce. was background, and practical both documentation, and clumsy, opttos h sritraet erdcblt etrswsabit a was features reproducibility to interface user the computations: nvriéd ai:02 esnya SmnTournier) (Simon person-year 0.25 Paris: de • Université hr eetoosalst sn uxfratal on reproducible doing actually for Guix using to obstacles two were there orilo ehooy . esnya Pu Garlick) (Paul person-year 0.7 Technology: • Tourbillion uxhsawy upre erdcbecmuain ydsg,but design, by computations reproducible supported always has Guix lnInlPatra¸scu) Ionel alin ad RcroWru n M and Wurmus (Ricardo ˘ ˘ a ebükCne o oeua eiie(D) person-years 2 (MDC): Medicine Molecular for Center Delbrück • Max etrSpotfrRpouil Research Reproducible for Support Better ae esc,Emne glo dinGuilbaud) Adrien Agullo, Emmanuel Felsoci, Marek otiuost h uxHCcanl lrn rvs,Gle Marait, Gilles Pruvost, Florent channel: Guix-HPC the to contributors aemd ute rgest nueGi drse hsuecase. use this addresses Guix ensure to progress further made have ni:2pro-er LdvcCuts arc rmn,adthe and Brémond, Maurice Courtès, (Ludovic person-years 2 • Inria: rdc n npc h otaeniomnsftoeeprmns We experiments. those softwareenvironmentsof the inspect and produce NS .5pro-er(ordHinsen) (Konrad person-year 0.25 • CNRS: nii ehd ebleeta rrqiiefrti steaiiyt re- to ability the is this for prerequisite a that believe We method. entific rjc,wihw umrz here. summarize we which project, xeiet—oa’ a oeok—skyt salsigargru sci- rigorous a establishing to key notebooks—is lab experiments—today’s inspect reproduce fGi-P,priiaigisiuin aeddctdwr or othe to hours work dedicated have institutions participating Guix-HPC, of computational and to ability The Guix-HPC. for goal hn6 epevr ot— 0 nraeoprdt atya.Aspart year. last to increasecompared 50% month—a peopleevery 60 than uprigrpouil eerhi eea ean a major remains general in research reproducible Supporting N uxi olbrtv fot eevn otiuin rmmore from contributions receiving effort, collaborative a is Guix GNU Personnel erdcbeSinii Workflows Scientific Reproducible 16. 5. 6. 15. straightforward way by guix time-machine14, which providesdirect access • ARAMIS Plenary Session on Reproducibility, May 201956 (Ludovic to older versions of Guix and all the packages it defines. Courtès) A post on the Guix HPC blog15 explains how to perform the four • JCAD, Oct. 201957 (Ludovic Courtès) steps of reproducible computation, and also explains how Guix ensures • SciClojWeb Meeting, Jan. 202058 (Ludovic Courtès) bit-for-bit reproducibility through comprehensive dependency tracking. • FOSDEM, Feb. 202059 (Ludovic Courtès, Efraim Flashner, Pjotr Prins) Reproducible Deployment for Jupyter Notebooks We also organised the GNU Guix Days60, which attracted 35 Guix Jupyter Notebooks16 have become a tool of choice for scientists contributors and ran for two days before FOSDEM 2020. willing to share and reproduce computational experiments. Yet, nothing in a notebook specifies which software packages it relies on, which puts Training Sessions reproducibility at risk. 61 Together with Pierre-Antoine Rouby as part of a four-month intern- The PRACE/Inria High-Performance Numerical Simulation School ship at Inria in 2018, we started work on Guix-Jupyter17,
Recommended publications
  • GNU Guix Cookbook Tutorials and Examples for Using the GNU Guix Functional Package Manager

    GNU Guix Cookbook Tutorials and Examples for Using the GNU Guix Functional Package Manager

    GNU Guix Cookbook Tutorials and examples for using the GNU Guix Functional Package Manager The GNU Guix Developers Copyright c 2019 Ricardo Wurmus Copyright c 2019 Efraim Flashner Copyright c 2019 Pierre Neidhardt Copyright c 2020 Oleg Pykhalov Copyright c 2020 Matthew Brooks Copyright c 2020 Marcin Karpezo Copyright c 2020 Brice Waegeneire Copyright c 2020 Andr´eBatista Copyright c 2020 Christine Lemmer-Webber Copyright c 2021 Joshua Branson Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents GNU Guix Cookbook ::::::::::::::::::::::::::::::: 1 1 Scheme tutorials ::::::::::::::::::::::::::::::::: 2 1.1 A Scheme Crash Course :::::::::::::::::::::::::::::::::::::::: 2 2 Packaging :::::::::::::::::::::::::::::::::::::::: 5 2.1 Packaging Tutorial:::::::::::::::::::::::::::::::::::::::::::::: 5 2.1.1 A \Hello World" package :::::::::::::::::::::::::::::::::: 5 2.1.2 Setup:::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.1 Local file ::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.2 `GUIX_PACKAGE_PATH' ::::::::::::::::::::::::::::::::: 9 2.1.2.3 Guix channels ::::::::::::::::::::::::::::::::::::::: 10 2.1.2.4 Direct checkout hacking:::::::::::::::::::::::::::::: 10 2.1.3 Extended example ::::::::::::::::::::::::::::::::::::::::
  • Functional Package and Configuration Management with GNU Guix

    Functional Package and Configuration Management with GNU Guix

    Functional Package and Configuration Management with GNU Guix David Thompson Wednesday, January 20th, 2016 About me GNU project volunteer GNU Guile user and contributor since 2012 GNU Guix contributor since 2013 Day job: Ruby + JavaScript web development / “DevOps” 2 Overview • Problems with application packaging and deployment • Intro to functional package and configuration management • Towards the future • How you can help 3 User autonomy and control It is becoming increasingly difficult to have control over your own computing: • GNU/Linux package managers not meeting user needs • Self-hosting web applications requires too much time and effort • Growing number of projects recommend installation via curl | sudo bash 1 or otherwise avoid using system package managers • Users unable to verify that a given binary corresponds to the source code 1http://curlpipesh.tumblr.com/ 4 User autonomy and control “Debian and other distributions are going to be that thing you run Docker on, little more.” 2 2“ownCloud and distribution packaging” http://lwn.net/Articles/670566/ 5 User autonomy and control This is very bad for desktop users and system administrators alike. We must regain control! 6 What’s wrong with Apt/Yum/Pacman/etc.? Global state (/usr) that prevents multiple versions of a package from coexisting. Non-atomic installation, removal, upgrade of software. No way to roll back. Nondeterminstic package builds and maintainer-uploaded binaries. (though this is changing!) Reliance on pre-built binaries provided by a single point of trust. Requires superuser privileges. 7 The problem is bigger Proliferation of language-specific package managers and binary bundles that complicate secure system maintenance.
  • Bulletin Issue 25

    Bulletin Issue 25

    Issue 25 Bulletin November 2014 Contents Free software needs your vote Free software needs your 1 by John Sullivan vote Executive Director What would a free 3 t the Free Software Foundation, software world look like? Awe want to empower all computer GNU Guix and GNU’s 4 users everywhere to do everything they 31st Birthday might need or want to do on any com- Appropriate legal 5 puter, using only free software, with- notices out having to ask permission. Free tools for the FSF 6 By definition, proprietary software Common misconceptions 7 does not empower users in this way. in licensing It places limits on what they can do, Volunteer opportunities 9 such as preventing sharing of the soft- at the FSF ware, or looking at its code to see how See you at LibrePlanet 10 it works. 2015! Proprietary software enables users Around the world in (a 11 to pursue everything they might need hundred and) eighty or want to do, only as long as the soft- days ware distributor approves. The four freedoms that define free software — to run the program (0), to study and modify it (1), to share it (2), and to share modifications (3) — are meant for everyone, in their inter- actions with any program. Free soft- ware is a means to protect the individ- ual freedom of computer users. But why would someone who has Register for LibrePlanet at u.fsf.org/14w. no intention of ever reading the source code of programs running on their computer, much less in modifying it, care about Freedom 1, or Freedom 3? Why do they need or want the freedom to do things they might never need or want to do? 1 One reason is that any computer general, the right to vote can be a pow- user can ask someone else to do those erful check on government behavior.
  • GNU/Linux Operating System

    GNU/Linux Operating System

    A Bibliography of Publications about the GNU/Linux Operating System Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 E-mail: [email protected], [email protected], [email protected] (Internet) WWW URL: http://www.math.utah.edu/~beebe/ 07 April 2021 Version 2.135 Title word cross-reference [Tho05]. 0-13-167984-8 [Sta07b]. 0-596-00482-6 [Sch04]. 0-7821-4428-4 [Koh06]. '03 [ACM03b]. 046 [Sav11]. '05 [ACM05b, MS05]. + [Ste01e]. $100 [CS95]. $39.95 [Sch04]. $44.99 [Sta07b]. $49.95 [Jen05]. $49.99 1 [FOP06, Jen05, She03]. 1-59327-036-4 [Hid04, Tho05]. $59.99 [Koh06]. $99 [Jen05]. 1-GHz [Ano03b]. 1.0 [Coc01]. 1.2 [Kro00]. = [Ste01e]. × [Hun99]. [Gar98]. 1.x [KGG00]. 10 [DWV06]. 10-Gigabit [cFJH+03]. 10th [USE96a]. * [TYKZ07]. */ [TYKZ07]. *BSD [Den99a]. 12-step [Mil01]. 12th [MS05]. 1394 *icomment [TYKZ07]. [Ale00, HKP09]. 14-16 [ACM06]. 18th [KD96]. 1999 [Den99b, Tim99]. 19th -dienste [WF03]. [ACM03b, SS05b]. 1Z0 [Sav11]. 1Z0-046 [Sav11]. /*icomment [TYKZ07]. /GNOME [Wri00, Pen99]. 2 [Ano94c, Com00, Com03, Gab07, MK04]. 2.0 [B¨ol01, Car98, McN99, PF97, Swe01]. 0 [Hid04, Koh06, Sch04, Sta07b, Tho05]. 2.0.1 [ISO05]. 2.1 [BR95, CV00]. 2.2 0-13-101415-3 [Hid04]. 0-13-144853-6 1 2 [Ano00b, BB99b, Bra04]. 2.4 [Cal00]. 2.6 [Mon00b, GR09]. Action [NR03]. ActiveX [BS05, PTS+14, TCM07]. 2000 [Kro99]. activity [MB08]. Acumen [Kro99]. [Bru02, Kro00, MYH00, War01]. 2003 Ada [SB99]. Ada95 [Gar09].
  • Functional Package Management with Guix

    Functional Package Management with Guix

    Functional Package Management with Guix Ludovic Courtès Bordeaux, France [email protected] ABSTRACT 1. INTRODUCTION We describe the design and implementation of GNU Guix, a GNU Guix1 is a purely functional package manager for the purely functional package manager designed to support a com- GNU system [20], and in particular GNU/Linux. Pack- plete GNU/Linux distribution. Guix supports transactional age management consists in all the activities that relate upgrades and roll-backs, unprivileged package management, to building packages from source, honoring the build-time per-user profiles, and garbage collection. It builds upon the and run-time dependencies on packages, installing, removing, low-level build and deployment layer of the Nix package man- and upgrading packages in user environments. In addition ager. Guix uses Scheme as its programming interface. In to these standard features, Guix supports transactional up- particular, we devise an embedded domain-specific language grades and roll-backs, unprivileged package management, (EDSL) to describe and compose packages. We demonstrate per-user profiles, and garbage collection. Guix comes with a how it allows us to benefit from the host general-purpose distribution of user-land free software packages. programming language while not compromising on expres- siveness. Second, we show the use of Scheme to write build Guix seeks to empower users in several ways: by offering the programs, leading to a \two-tier" programming system. uncommon features listed above, by providing the tools that allow users to formally correlate a binary package and the Categories and Subject Descriptors \recipes" and source code that led to it|furthering the spirit D.4.5 [Operating Systems]: Reliability; D.4.5 [Operating of the GNU General Public License|, by allowing them to Systems]: System Programs and Utilities; D.1.1 [Software]: customize the distribution, and by lowering the barrier to Applicative (Functional) Programming entry in distribution development.
  • Reproducible Builds Summit II

    Reproducible Builds Summit II

    Reproducible Builds Summit II December 13-15, 2016. Berlin, Germany Aspiration, 2973 16th Street, Suite 300, San Francisco, CA 94103 Phone: (415) 839-6456 • [email protected] • aspirationtech.org Table of Contents Introduction....................................................................................................................................5 Summary.......................................................................................................................................6 State of the field............................................................................................................................7 Notable outcomes following the first Reproducible Builds Summit..........................................7 Additional progress by the reproducible builds community......................................................7 Current work in progress.........................................................................................................10 Upcoming efforts, now in planning stage................................................................................10 Event overview............................................................................................................................12 Goals.......................................................................................................................................12 Event program........................................................................................................................12 Projects participating
  • Hurd's PCI Arbiter

    Hurd's PCI Arbiter

    Hurd’s PCI arbiter Samuel Thibault & Joan Lledo 2018 February 3rd 1 The Hurd is all about freedom #0 “The freedom to run the program, for any purpose” I.e.: ● Freedom from sysadmin! ● WTH is fdisk/mke2fs/... hidden in /sbin? ● I should be able to just work with my disk/network access ● Freedom to innovate ● Experimental filesystem, personal work-flow, new kind of process combination,… ● Give a PCI card function to a process ● Freedom from misbehaving programs and drivers 2 Micro-kernel layering ext2fs sh auth cp pfnet proc root user Kernel Tasks, memory, IPC 15 Micro-kernel layering ext2fs sh auth cp pfnet proc root user Kernel Tasks, memory, IPC 16 Micro-kernel layering ● Server crash? Not a problem ● “Computer bought the farm” is just an error, not something-of-the-death ● Easier to debug/tune ● Just run gdb, gprof, … ● Can dare crazy things ● The Hurd console has dynamic font support – See chinese support in pseudo-graphical mode (actually pure VGA textmode!) of Debian installer. – And Emojis! ● Kernel only handles Tasks, memory, IPC 17 Hurd possibilities ext2fs ftpfs sh auth cp pfnet proc isofs root user Kernel 18 Hurd possibilities € settrans -c ~/ftp: /hurd/hostmux /hurd/ftpfs / (just once for good) € settrans -a ~/mnt /hurd/iso9660fs ~/ftp://ftp.gnu.org/old-gnu/gnu-f2/hurd-F2-main.iso € ls ~/mnt "#ADME-or-FA'( … ● Only downloads what is needed. ● Can be permanently stored in ext2fs € settrans ~/.signature /hurd/run /usr/games/fortune 19 But also € remap /)in/sh *+,&#/)in/sh € remap /)in *+,&#/union)in … ● Check out Stow/Nix/Guix! 21 How does it work? ext2fs sh ftpfs libc auth cp pfnet libc proc isofs root user Kernel 22 Rationale - Everything is an (interposable) RPC - Translators exposed in the FS ● The user gets to decide what/how to interpose ● Without need for costly ptrace or fragile libc symbols interposition.
  • Spack Package Repositories

    Spack Package Repositories

    Managing HPC Software Complexity with Spack Full-day Tutorial 1st Workshop on NSF and DOE High Performance Computing Tools July 10, 2019 The most recent version of these slides can be found at: https://spack.readthedocs.io/en/latest/tutorial.html Eugene, Oregon LLNL-PRES-806064 This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. github.com/spack/spack Lawrence Livermore National Security, LLC Tutorial Materials Materials: Download the latest version of slides and handouts at: bit.ly/spack-tutorial Slides and hands-on scripts are in the “Tutorial” Section of the docs. § Spack GitHub repository: http://github.com/spack/spack § Spack Documentation: http://spack.readthedocs.io Tweet at us! @spackpm 2 LLNL-PRES-806064 github.com/spack/spack Tutorial Presenters Todd Gamblin Greg Becker 3 LLNL-PRES-806064 github.com/spack/spack Software complexity in HPC is growing glm suite-sparse yaml-cpp metis cmake ncurses parmetis pkgconf nalu hwloc libxml2 xz bzip2 openssl boost trilinos superlu openblas netlib-scalapack mumps openmpi zlib netcdf hdf5 matio m4 libsigsegv parallel-netcdf Nalu: Generalized Unstructured Massively Parallel Low Mach Flow 4 LLNL-PRES-806064 github.com/spack/spack Software complexity in HPC is growing adol-c automake autoconf perl glm suite-sparse yaml-cpp metis cmake ncurses gmp libtool parmetis pkgconf m4 libsigsegv nalu hwloc libxml2 xz bzip2 openssl p4est pkgconf boost hwloc libxml2 trilinos superlu openblas xz netlib-scalapack
  • GNU Guix: the Functional GNU/Linux Distro That's a Scheme Library

    GNU Guix: the Functional GNU/Linux Distro That's a Scheme Library

    GNU Guix: the functional GNU/Linux distro that’s a Scheme library Ludovic Courtes` Scheme Workshop 18 September 2016, Nara, Japan Functional package management. $ guix package -i gcc-toolchain coreutils sed grep ... $ eval `guix package --search-paths` ... I $ guix package --manifest=my-software.scm ... Want to hack on Guile? guile-2.0.11 libffi-3.2.1 bash-4.3.42 libunistring-0.9.6 libltdl-2.4.6 libgc-7.4.2 readline-6.3 bison-3.0.4 pkg-config-0.29 libatomic-ops-7.4.2 ncurses-6.0 flex-2.6.0 gmp-6.1.0 indent-2.2.10 bison-2.7.1 perl-5.22.1 m4-1.4.17 $ guix environment --container guile ... $ guix environment --container guile \ --ad-hoc git autoconf automake gdb ... Functional package management paradigm: 1. build process = pure function 2. built software = persistent graph Imposing a Memory Management Discipline on Software Deployment, Dolstra et al., 2004 (Nix package manager) build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon RPCs build processes chroot, separate UIDs Guile Scheme (guix packages) , make, etc. , make, etc. , make, etc. (guix store) Guile Guile Guile build daemon RPCs /gnu/store/ h2g4sc09h4... -chibi-scheme-0.7.3 $ guix build chibi-scheme $ guix build chibi-scheme /gnu/store/ h2g4sc09h4... -chibi-scheme-0.7.3 hash of all the dependencies (define hello (package (name "hello") (version "2.8") (source (origin (method url-fetch) (uri (string-append "http://ftp.gnu.org/.../hello-" version ".tar.gz")) (sha256 (base32 "0wqd...dz6")))) (build-system gnu-build-system) (synopsis "An example GNU package") (description "Produce a friendly greeting.") (home-page "https://gnu.org/software/hello/") (license gpl3+))) ;; Yields: /gnu/store/...-hello-2.8 Scheme all the way down.
  • The Gnunet System Christian Grothoff

    The Gnunet System Christian Grothoff

    The GNUnet System Christian Grothoff To cite this version: Christian Grothoff. The GNUnet System. Networking and Internet Architecture [cs.NI]. Université de Rennes 1, 2017. tel-01654244 HAL Id: tel-01654244 https://hal.inria.fr/tel-01654244 Submitted on 3 Dec 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Distributed under a Creative Commons Attribution| 4.0 International License 1 Th`esed'habilitation `adiriger des recherches Universit´eede Rennes 1 Mention: Informatique The GNUnet System Christian Grothoff Soutenue le 10 octobre 2017 devant le jury compos´ede Messieurs les Professeurs: Anne-Marie Kermarrec (Universit´ede Rennes 1) Tanja Lange (Technische Universiteit Eindhoven) George Danezis (University College London) Joe Cannataci (University of Groningen) Saddek Bensalem (University of Grenoble) Au vu des rapports de Messieurs les Professeurs: Tanja Lange (Technische Universiteit Eindhoven) George Danezis (University College London) Saddek Bensalem (University of Grenoble) Revision 1.0 2 Abstract GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. Our goal is to replace the old inse- cure Internet protocol stack. Starting from an application for secure publication of files, it has grown to include all kinds of basic protocol components and ap- plications towards the creation of a GNU internet.
  • Nix(OS) - Revolutionizing Packaging and Configuration Management!

    Nix(OS) - Revolutionizing Packaging and Configuration Management!

    Nix(OS) - Revolutionizing packaging and configuration management! The Purely Functional Linux Distribution 1 Before we begin (FYI) Ask questions at any time Please ask lots of questions :) The slides contain some redundancy There are a few optional slides at the end Please give me feedback Louder Faster/slower More/less details Etc. 2 About me Michael Weiss aka. primeos Computer science student at the University of Tübingen I love free soware, etc. First nixpkgs commit: 2016-10-05 I maintain ~41 packages and ~3 modules (2018-06-08) I also love privacy (i.e. no more details :P) Email: [email protected] (#privacy) 3 Main components Nix (package manager) Nixpkgs (Nix packages collection) NixOS (operating system) NixOps (DevOps / cloud deployment tool) 4 Nix* ISO/OSI model NixOps NixOS Nixpkgs Nix 5 Other tools Hydra (Nix based continuous build system) Disnix (distributed services deployment) PatchELF (change dynamic linker and RPATH) {cabal,go,node,pip,python,pypi,composer,hex,bower,vim,...}2 6 History Started as a research project (with funding) First paper in 2004 (many will follow) Nix package manager developed by Eelco Dolstra as part of his PhD research (~2003) First NixOS prototype developed by Armijn Hemel as his master's thesis project Hydra developed as part of the LaQuSo Buildfarm project 7 Timeline 2003: init (research begins) 2007: NixOS becomes usable + x86_64 support 2008: Website moved to nixos.org 2009: Nix logo + Nix(OS) build on Hydra 2011: Migration from Subversion to Git(Hub) 2013: Switch from Upstart to systemd +
  • Managing HPC Software Complexity with Spack

    Managing HPC Software Complexity with Spack

    Managing HPC Software Complexity with Spack HPC Knowledge Meeting ‘17 June 16, 2017 San Sebastián, Spain LLNL-PRES-806064 This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under contract DE-AC52-07NA27344. http://github.com/LLNL/spack Lawrence Livermore National Security, LLC Tutorial Materials Materials: Download the latest version of slides and handouts at: http://spack.readthedocs.io Slides and hands-on scripts are in the “Tutorial” Section of the docs. Other Resources: § Spack GitHub repository: http://github.com/LLNL/spack § Spack Documentation: http://spack.readthedocs.io 2 LLNL-PRES-806064 http://github.com/LLNL/spack Who is this Tutorial for? People who want to use or distribute software for HPC! 1. End Users of HPC Software — Install and run HPC applications and tools 2. HPC Application Teams — Manage third-party dependency libraries 3. Package Developers — People who want to package their own software for distribution 4. User support teams at HPC Centers — People who deploy software for users at large HPC sites 3 LLNL-PRES-806064 http://github.com/LLNL/spack HPC Software Complexity Prevents Reuse & Reduces Productivity § Not much standardization in HPC: every machine/app has a different software stack — This is done to get the best performance § HPC frequently trades reuse and usability for performance — Reusing a piece of software frequently requires you to port it to many new platforms § Example environment for some LLNL codes: 48 third party packages x 3 MPI versions x 3-ish Platforms mvapich mvapich2 OpenMPI Linux BlueGene Cray Up to 7 compilers Oh, and 2-3 versions of x Intel GCC XLC Clang x each package = ~7,500 combinations PGI Cray Pathscale Spack lowers barriers to software reuse by automating these builds! 4 LLNL-PRES-806064 http://github.com/LLNL/spack What is the “production” environment for HPC? § Someone’s home directory? § LLNL? LANL? Sandia? ANL? LBL? TACC? — Environments at large-scale sites are very different.