Managing HPC Software Complexity with Spack
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Embedded Linux Systems with the Yocto Project™
OPEN SOURCE SOFTWARE DEVELOPMENT SERIES Embedded Linux Systems with the Yocto Project" FREE SAMPLE CHAPTER SHARE WITH OTHERS �f, � � � � Embedded Linux Systems with the Yocto ProjectTM This page intentionally left blank Embedded Linux Systems with the Yocto ProjectTM Rudolf J. Streif Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sidney • Hong Kong • Seoul • Singapore • Taipei • Tokyo Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales depart- ment at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the U.S., please contact [email protected]. Visit us on the Web: informit.com Cataloging-in-Publication Data is on file with the Library of Congress. -
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 :::::::::::::::::::::::::::::::::::::::: -
Lmod Or How to Protect Your Sanity from Dependency Hell
Lmod or how to protect your sanity from dependency hell Steffen Müthing Interdisciplinary Center for Scientific Computing Heidelberg University Dune User Meeting Aachen September 26, 2013 1 Steffen Müthing | Lmod or how to protect your sanity from dependency hell ⇒ Have to keep around multiple versions of MPI, BLAS, ParMetis, ALUGrid, UGGrid, . The Issue • DUNE has a number of non-packaged dependencies • Some of those contain libraries that are bound to a compiler / MPI version • You have to support multiple compilers / MPIs • Library developer (we try to be good about this...) • Clusters with different compiler / MPI combinations • Easily switch between release / debug version of MPI (only with dynamic linking) • Use GCC in general, but switch to clang during the “fix compilation errors” stage 2 Steffen Müthing | Lmod or how to protect your sanity from dependency hell The Issue • DUNE has a number of non-packaged dependencies • Some of those contain libraries that are bound to a compiler / MPI version • You have to support multiple compilers / MPIs • Library developer (we try to be good about this...) • Clusters with different compiler / MPI combinations • Easily switch between release / debug version of MPI (only with dynamic linking) • Use GCC in general, but switch to clang during the “fix compilation errors” stage ⇒ Have to keep around multiple versions of MPI, BLAS, ParMetis, ALUGrid, UGGrid, . 2 Steffen Müthing | Lmod or how to protect your sanity from dependency hell Problems • Do I already have ALUGrid for MPICH? • If yes, where on earth did I put it? • Did I really build it with the correct dependencies? • Why does my build fail? Do all the libraries in my nice --with= actually work together? 3 Steffen Müthing | Lmod or how to protect your sanity from dependency hell • Look around for something that’s already there • Distribution package managers (APT, rpm, Portage, MacPorts, homebrew,. -
With Yocto/Openembedded
PORTING NEW CODE TO RISC-V WITH YOCTO/OPENEMBEDDED Martin Maas ([email protected]) 1st RISC-V Workshop, January 15, 2015 Monterey, CA WHY WE NEED A LINUX DISTRIBUTION • To build an application for RISC-V, you need to: – Download and build the RISC-V toolchain + Linux – Download, patch and build application + dependencies – Create an image and run it in QEMU or on hardware • Problems with this approach: – Error-prone: Easy to corrupt FS or get a step wrong – Reproducibility: Others can’t easily reuse your work – Rigidity: If a dependency changes, need to do it all over • We need a Linux distribution! – Automatic build process with dependency tracking – Ability to distribute binary packages and SDKs 2 RISCV-POKY: A PORT OF THE YOCTO PROJECT • We ported the Yocto Project – Official Linux Foundation Workgroup, supported by a large number of industry partners – Part I: Collection of hundreds of recipes (scripts that describe how to build packages for different platforms), shared with OpenEmbedded project – Part II: Bitbake, a parallel build system that takes recipes and fetches, patches, cross-compiles and produces packages (RPM/DEB), images, SDKs, etc. • Focus on build process and customizability 3 GETTING STARTED WITH RISCV-POKY • Let’s build a full Linux system including the GCC toolchain, Linux, QEMU + a large set of packages (including bash, ssh, python, perl, apt, wget,…) • Step I: Clone riscv-poky: git clone [email protected]:ucb-bar/riscv-poky.git • Step II: Set up the build system: source oe-init-build-env • Step III: Build an image (may -
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. -
ROOT Package Management: “Lazy Install” Approach
ROOT package management: “lazy install” approach Oksana Shadura ROOT Monday meeting Outline ● How we can improve artifact management (“lazy-install”) system for ROOT ● How to organise dependency management for ROOT ● Improvements to ROOT CMake build system ● Use cases for installing artifacts in the same ROOT session Goals ● Familiarize ROOT team with our planned work ● Explain key misunderstandings ● Give a technical overview of root-get ● Explain how root-get and cmake can work in synergy Non Goals We are not planning to replace CMake No change to the default build system of ROOT No duplication of functionality We are planning to “fill empty holes” for CMake General overview Manifest - why we need it? ● Easy to write ● Easy to parse, while CMakeLists.txt is impossible to parse ● Collect information from ROOT’s dependencies + from “builtin dependencies” + OS dependencies + external packages to be plugged in ROOT (to be resolved after using DAG) ● It can be easily exported back as a CMakeLists.txt ● It can have extra data elements [not only what is in CMakeLists.txt, but store extra info] ○ Dependencies description (github links, semantic versioning) ■ url: "ssh://[email protected]/Greeter.git", ■ versions: Version(1,0,0)..<Version(2,0,0) Manifest is a “dump” of status of build system (BS), where root-get is just a helper for BS Manifest - Sample Usage scenarios and benefits of manifest files: LLVM/Clang LLVM use CMake as a LLVMBuild utility that organize LLVM in a hierarchy of manifest files of components to be used by build system llvm-build, that is responsible for loading, verifying, and manipulating the project's component data. -
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
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]. -
Meeting the Yocto Project
Meeting the Yocto Project In this chapter, we will be introduced to the Yocto Project. The main concepts of the project, which are constantly used throughout the book, are discussed here. We will discuss the Yocto Project history, OpenEmbedded, Poky, BitBake, and Metadata in brief, so fasten your seat belt and welcome aboard! What is the Yocto Project? The Yocto Project is a "The Yocto Project provides open source, high-quality infrastructure and tools to help developers create their own custom Linux distributions for any hardware architecture, across multiple market segments. The Yocto Project is intended to provide a helpful starting point for developers." The Yocto Project is an open source collaboration project that provides templates, tools, and methods to help us create custom Linux-based systems for embedded products regardless of the hardware architecture. Being managed by a Linux Foundation fellow, the project remains independent of its member organizations that participate in various ways and provide resources to the project. It was founded in 2010 as a collaboration of many hardware manufacturers, open source operating systems, vendors, and electronics companies in an effort to reduce their work duplication, providing resources and information catering to both new and experienced users. Among these resources is OpenEmbedded-Core, the core system component, provided by the OpenEmbedded project. Meeting the Yocto Project The Yocto Project is, therefore, a community open source project that aggregates several companies, communities, projects, and tools, gathering people with the same purpose to build a Linux-based embedded product; all these components are in the same boat, being driven by its community needs to work together. -
Beginning System Administration Decal
Review Installing Software Debian GNU/Linux Beginning System Administration DeCal Week 6 March 03, 2009 Week 6 Beginning System Administration DeCal Review Installing Software Debian GNU/Linux Review So Far... (hopefully) History of UNIX Design choices Terminal, shell, and interaction with UNIX Foundation of the Internet Using UNIX Users and Permissions Account management (add/del/disable users) File system layout Week 6 Beginning System Administration DeCal Review Installing Software Debian GNU/Linux Review So Far... (cont.) Software Downloading and extracting packages ( wget, tar, gzip) Configuring and compiling (./configure, make, make install) Configuration (.conf files, /etc) Week 6 Beginning System Administration DeCal Review Considerations Installing Software Package Managers Debian GNU/Linux Software Two options: 1 compile from source 2 download and install from binaries download binaries manually use a package management system How about both? When to choose which? Software release cycle Security and feature patches Week 6 Beginning System Administration DeCal Review Considerations Installing Software Package Managers Debian GNU/Linux What’s the single biggest advancement Linux has brought to the industry? It’s an interesting question, and one that in my opinion has a very simple answer: Package management-or, more specifically, the ability to install and upgrade software over the network in a seamlessly integrated fashion-along with the distributed development model package management enabled. Ian Murdock (founder of Debian) http://ianmurdock.com/2007/07/21/how-package-management-changed-everything/ -
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 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