SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Introduction to EasyBuild
Getting Scientific Software Installed With Ease
Kenneth Hoste
HPC-UGent, Ghent University, Belgium
kenneth.hoste@ugent.be
http://users.ugent.be/~kehoste/EasyBuild_HPCAC_intro_20160323.pdf
March 23rd 2016 – HPC Advisory Council conference – Lugano
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
1/32
whoami
• PhD in Computer Science from Ghent University (Belgium)
• joined HPC-UGent team in October 2010
• main tasks: user support & training, software installations
• inherited maintenance of EasyBuild in 2011
• slowly also became lead developer & release manager
• e-mail: kenneth.hoste@ugent.be
• Twitter: @kehoste
• GitHub: https://github.com/boegel
• IRC (Freenode): boegel
• Google+: kenneth.hoste@gmail.com
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
2/32
HPC-UGent in a nutshell
http://www.ugent.be/hpc – http://www.vscentrum.be
• HPC team at central IT dept. of Ghent University (Belgium)
• 9+1 team members: 1 manager, ∼3 user support, ∼6 sysadmin
• 4+1 Tier2 clusters + one Tier1 cluster (8.5k cores)
• ∼1.8k user accounts, across all scientific domains
• tasks: hardware, system administration, user support/training, . . .
• member of Flemish Supercomputer Centre (VSC)
virtual centre, collaboration between Flemish university associations
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
3/32
Tasks for HPC user support teams
• resolving problems that occur when using the HPC system(s)
– ”I lost my private key/password, and now I can’t log in. Help?”
– ”My job crashed, and I have no idea why. What happened?”
– ”My stuff doesn’t work anymore, and I didn’t change a thing!”
• answering questions, from simple to very technical
• installing (scientific) software tools/libraries/applications
• helping users improve their workflow (not necessarily by request)
• training: Linux basics, OpenMP, MPI, Python, etc.
• performance analysis and optimisation of large scientific applications
• consultancy services w.r.t. developing scientific software
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
4/32
Installing scientific software for users
Typical way in which scientific software is installed for users:
• by user request: new software, version upgrades, more variants, . . .
• on a (shared NFS) filesystem available on every workernode
• specifically targetted to the HPC cluster it will be used on
– built from source (if possible)
– separate installation per cluster
– highly optimized for system architecture
- linked with heavily tuned libraries (MPI, BLAS, LAPACK, . . . )
- built with (equivalent of) -march=native/-xHost
• rebuild when updates for compilers/libraries become available
• installations remain available during lifetime of system
• accompanying module file is provided for easy access
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
5/32
Environment modules
• canonical way of giving users access to installed (scientific) software
• used on most HPC systems (> 80%1
), since mid 90’s
• module file specifies changes to user environment (in Tcl/Lua subset)
• modules tool applies those changes to the current session (!)
• easy interface for users:
– available software: ‘module avail [name]’
– prepare environment: ‘module load <name>/<version>’
– show loaded modules: ‘module list’
– rollback changes to environment: ‘module unload <name>’
– start afresh: ‘module purge’
• Tcl-based environment modules system is most prevalent (for now)
• Lmod: Lua-based modules tool, vastly improves user experience
(1) http://hpcugent.github.io/easybuild/files/SC15_BoF_Getting_Scientific_Software_Installed.pdf
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
6/32
“Please install <software> on the HPC?”
The most common type of support request
from users is to install (scientific) software;
this covers over 25% of support tickets
at HPC-UGent.
Installing (lots of) scientific software is:
• error-prone, trial-and-error
• tedious, hard to get right
• repetitive & boring (well. . . )
• time-consuming (hours, days, even weeks)
• frustrating (e.g., dependency hell)
• sometimes simply not worth the effort. . .
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
7/32
Common issues with scientific software
Researchers focus on the science behind the software they implement,
and care little about tools, build procedure, portability, . . .
Scientists are not software developers or sysadmins (nor should they be).
“If we would know what we are doing, it wouldn’t be called ‘research’.”
This results in:
• ‘incorrect’ use of build tools
• use of non-standard build tools (or broken ones)
• incomplete build procedure, e.g., no configure or install step
• interactive installation scripts
• hardcoded parameters (compilers, libraries, paths, . . . )
• poor/outdated/missing/incorrect documentation
• dependency (version) hell
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
8/32
Prime example I: WRF
Weather Research and Forecasting Model (http://www.wrf-model.org)
(one of the top 5 applications on Blue Waters)
• dozen dependencies: netCDF (C, Fortran), HDF5, tcsh, JasPer, . . .
• known issues in last release are (only) documented on website
no patch file provided, infrequent bugfix releases
• interactive ‘configure’ script :(
• resulting configure.wrf needs work:
fix hardcoded settings (compilers, libraries, . . . ), tweaking of options
• custom ‘compile’ script (wraps around ‘make’)
building in parallel is broken without fixing the Makefile
• no actual installation step
Wouldn’t it be nice to build & install WRF with a single command?
http://easybuild.readthedocs.org/en/latest/Typical_workflow_example_with_WRF.html
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
9/32
Prime example II: QIIME
QIIME: Quantitative Insights Into Microbial Ecology (http://qiime.org/)
clearcut
ictce
Java
SourceTracker
Cytoscape
GHC
BLAT
libpng
FastTree
libreadline
ncurses M4
microbiomeutil
Perl
BLAST cdbfasta
biom-format
Python
pyqi
tax2tree
PyCogent
R
Infernal MAFFT
Xmlm
OCaml
findlib
bzip2 Autoconf
ifort
imkl
icc impi
Mothur
gzip zlib
PyNAST
UCLUST
RDP-Classifier
ea-utils
GSL
BWA
USEARCH
SQLite
Tcl
CamlZIP batteries csv
AmpliconNoise
freetype
RAxML
gdata matplotlib
pplacer
GSL-OCaml SQLite3-OCamlMCL
qcli Emperor
QIIME
MUSCLE ParsInsert
SeqPrep
CD-HITrtax
• scientific research domain: bioinformatics . . .
• 59 dependencies in total (without compiler toolchain), some optional
– depends on Haskell (GHC), Java, Python, R, Perl, OCaml, . . .
– several deps use a non-standard build procedure (in various degrees)
• very picky about dependency versions (e.g., must be Python v2.7.3)
• took us several weeks to get it installed (using Intel compilers!). . .
• . . . now we can (re)build/install it all with a single command!
(disclaimer: support for QIIME not included yet in latest EasyBuild release)
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
10/32
Houston, we have a problem
Installation of scientific software is a tremendous
problem for HPC sites all around the world.
• huge burden on HPC user support teams
• researchers lose lots of time (waiting)
• sites typically resort to in-house scripting
• very little collaboration among HPC sites :(
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
11/32
What about existing tools?
Existing tools are not well suited to scientific software and HPC systems.
• package managers: yum (RPMs), apt-get (.deb), . . .
• Homebrew (Mac OS X), http://brew.sh/
• Linuxbrew, http://brew.sh/linuxbrew/
• Portage (Gentoo), http://wiki.gentoo.org/wiki/Project:Portage
• pkgsrc (NetBSD & (a lot) more), http://pkgsrc.org/
• Nix, http://nixos.org/nix
• GNU Guix, https://www.gnu.org/s/guix
Common problems:
• usually poor support for multiple versions/builds side-by-side
• not flexible enough to deal with idiosyncrasies of scientific software
• little support for scientific software, other compilers (not GCC), MPI
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
12/32
EasyBuild: building software with ease
http://hpcugent.github.io/easybuild/
• framework for installing (scientific) software on HPC systems
• collection of Python packages and modules
• in-house since 2009, open-source (GPLv2) since 2012
• now: thriving community; actively contributing, driving development
• new release every 6–8 weeks (latest: EasyBuild v2.7.0, Mar 20th 2016)
• supports over 850 different software packages
including CP2K, GAMESS-US, GROMACS, NAMD, NWChem,
OpenFOAM, PETSc, QuantumESPRESSO, WRF, WPS, . . .
• well documented: http://easybuild.readthedocs.org
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
13/32
EasyBuild: feature highlights
• fully autonomously building and installing (scientific) software
– automatic dependency resolution
– automatic generation of module files (Tcl or Lua syntax)
• thorough logging of executed build/install procedure
• archiving of build specifications (‘easyconfig files‘)
• highly configurable, via config files/environment/command line
• dynamically extendable with additional easyblocks, toolchains, etc.
• support for custom module naming schemes (incl. hierarchical)
• comprehensively tested: lots of unit tests, regression testing, . . .
• actively developed, collaboration between various HPC sites
• worldwide community
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
14/32
EasyBuild terminology
• EasyBuild framework
– core of EasyBuild: Python modules & packages
– provides supporting functionality for building and installing software
• easyblock
– a Python module, ‘plugin’ for the EasyBuild framework
– implements a (generic) software build/install procedure
• easyconfig file (*.eb)
– build specification: software name/version, compiler toolchain, etc.
• compiler toolchain
– compilers with accompanying libraries (MPI, BLAS/LAPACK, . . . )
Putting it all together
The EasyBuild framework leverages easyblocks to automatically build
and install (scientific) software using a particular compiler toolchain, as
specified by one or more easyconfig files.
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
15/32
EasyBuild: system requirements
• Linux x86 64 HPC systems is main target platform (for now
– Red Hat-based systems (Scientific Linux, CentOS, RHEL, . . . )
– also other Linux distros: Debian, Ubuntu, OpenSUSE, SLES, . . .
– kind of works on OS X, but not really a target platform
– no Windows support (and none planned)
– stable support for Cray systems since EasyBuild v2.7.0
– support for Linux@POWER systems is being looked into (by TAMU)
• Python v2.6.x or more recent v2.x (not Python 3 compatible (yet))
• a modules tool:
– latest release of Tcl/C environment modules (version 3.2.10);
– or one of the Tcl-only versions of environment modules;
– or a recent version of Lmod (5.6.3 or more recent) (recommended!)
• (a system C/C++ compiler, to get started)
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
16/32
‘Quick’ demo for the impatient
eb HPL-2.1-foss-2016a.eb --robot
• downloads all required sources (best effort)
• builds/installs foss toolchain (be patient) + HPL on top of it
foss: GCC, OpenMPI, LAPACK, OpenBLAS, FFTW, ScaLAPACK
note: requires libibverbs to be available
• generates module file for each installed software package
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
17/32
Example ‘eb’ output
$ eb GCC-4.9.3.eb
== temporary log file in case of crash /tmp/eb-GyvPHx/easybuild-U1TkEI.log
== processing EasyBuild easyconfig GCC-4.9.3.eb
== building and installing GCC/4.9.3...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== postprocessing...
== sanity checking...
== cleaning up...
== creating module...
== permissions...
== packaging...
== COMPLETED: Installation ended successfully
== Results of the build can be found in the log file /opt/easybuild/software/GCC/4...
== Build succeeded for 1 out of 1
== Temporary log file(s) /tmp/eb-GyvPHx/easybuild-U1TkEI.log* have been removed.
== Temporary directory /tmp/eb-GyvPHx has been removed.
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
18/32
Step-wise install procedure
build and install procedure as implemented by EasyBuild
IV: unpack sources
V: apply patches
VI: prepare
VII: configure
VIII: build
IX: test
X: install
XI: extensions
XII: sanity check
XIII: cleanup
XIV: env. module
III: check readiness XV: permissions
II: fetch sources XVI: packaging
I: parse easyconfig XVII: test cases
most of these steps can be customised if required,
via easyconfig parameters or a custom easyblock
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
19/32
What EasyBuild is (not)
EasyBuild is not:
• YABT (Yet Another Build Tool)
• a replacement for your favorite package manager
• a magic solution to all your (installation) problems
EasyBuild can be (and maybe already is) a:
• proper way of installing scientific software
• uniform interface that wraps around software build procedures
• huge time-saver, by automating tedious/boring/repetitive tasks
• way to provide a consistent software stack to your users
• expert system for software installation on HPC systems
• platform for collaboration with HPC sites world-wide
• tool to empower users to manage their own software stack
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
20/32
EasyBuild: statistics
EasyBuild v2.7.0 (Mar’16)
• ∼ 25, 000 LoC in framework (17 Python packages, 160 Python modules)
+ ∼ 5, 000 LoC in vsc-base (option parsing/logging)
+ ∼ 12, 500 LoC more in unit tests
=⇒ ∼ 42, 500 LoC in total
• 194 easyblocks in total (∼ 18, 000 Loc)
165 software-specific easyblocks
29 generic easyblocks
• 909 different software packages supported
(incl. toolchains & bundles)
bio: 203, tools: 123, vis: 99, devel: 78, lib: 77, math: 54,
data: 53, toolchain: 38, chem: 38, lang: 32, numlib: 25,
perf: 22, system: 21, cae: 16, compiler: 14, mpi: 11, phys: 6
• 5, 580 easyconfig files: different versions/variants, toolchains, . . .
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
21/32
EasyBuild community
• Ghent University & partners in Flemish Supercomputing Centre
• J¨ulich Supercomputing Centre (JSC) – Germany
• Swiss National Supercomputing Centre (CSCS) – Switzerland
• (small) sites across Europe: Luxembourg, Cyprus, Switzerland, UK, . . .
• US sites: Stanford University, University of Colorado Boulder, . . .
• . . . and all across the world: New Zealand, Australia, Cuba, . . .
• and also commercial companies: Bayer (Germany), *****, . . .
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
22/32
EasyBuild community by numbers
• 6 ‘Getting Scientific Software Installed’ BoF sessions at ISC/SC
• 10 two/three-day EasyBuild hackathons + 1 user meeting
• ∼20-25 ‘active’ souls on the #easybuild IRC channel
• a couple of dozen of HPC sites using it around the world
• 47 EasyBuild conference calls
• 168 subscribers to the EasyBuild mailing list
• framework: 966 merged PRs (50 open)
• easyblocks: 634 merged PRs (51 open)
• easyconfigs: 1, 937 merged PRs (325 open)
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
23/32
0"
20"
40"
60"
80"
100"
120"
140"
160"
180"
Feb+12" Aug+12" Mar+13" Oct+13" Apr+14" Nov+14" May+15" Dec+15"
#"subscribers"
date"
EasyBuild"mailing"list"
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
24/32
0"
10"
20"
30"
40"
50"
60"
70"
80"
90"
11,Feb,12" 29,Aug,12" 17,Mar,13" 03,Oct,13" 21,Apr,14" 07,Nov,14" 26,May,15" 12,Dec,15"
#"unique"contributors" EasyBuild"contributors"
framework" easyblocks" easyconfigs"
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
25/32
Recent projects similar to EasyBuild
• Spack (LLNL) - http://scalability-llnl.github.io/spack/
• Maali (Pawsey) - https://github.com/chrisbpawsey/maali/
• Smithy (NICS, ORNL) - http://anthonydigirolamo.github.io/smithy/
Major differences with EasyBuild:
• slightly different approach
• smaller community
• fewer supported software packages
• missing features
• less flexibility
• not so powerful (except Spack?)
All have expressed interest in cross-community collaboration.
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
26/32
HUST’14 paper
Modern Scientific Software Management Using EasyBuild and Lmod
Markus Geimer (JSC)
Kenneth Hoste (HPC-UGent)
Robert McLay (TACC)
http://hpcugent.github.io/easybuild/files/hust14_paper.pdf
• paper at HPC User Support Tools workshop (HUST’14 @ SC14)
• explains basics of module tools, EasyBuild and Lmod
• highlights issues with current approaches in software installation
• advocates use of a hierarchical module naming scheme
• presents EasyBuild and Lmod as adequate tools for
(automated) software/module management on HPC systems
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
27/32
EasyBuild: future work
• support more (scientific) software (never-ending story?)
• further extend documentation: generic easyblocks, easyblocks API
• support for more Lmod-specific features
– module families
– module properties & sticky modules
• stable support for ‘subtoolchain’-aware dependency resolution
• (even) better integration with GitHub
• support for RPATH-style linking of libraries
• ‘fat’ easyconfig format (YAML-based?)
• join forces with Spack (LLNL)?
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
28/32
Do you want to know more?
• EasyBuild website: http://hpcugent.github.io/easybuild
• EasyBuild documentation: http://easybuild.readthedocs.org
• stable EasyBuild releases: http://pypi.python.org/pypi/easybuild
EasyBuild framework: http://pypi.python.org/pypi/easybuild-framework
easyblocks: http://pypi.python.org/pypi/easybuild-easyblocks
easyconfigs http://pypi.python.org/pypi/easybuild-easyconfigs
• source repositories on GitHub
EasyBuild meta package + docs: https://github.com/hpcugent/easybuild
EasyBuild framework: https://github.com/hpcugent/easybuild-framework
easyblocks: https://github.com/hpcugent/easybuild-easyblocks
easyconfigs: https://github.com/hpcugent/easybuild-easyconfigs
• EasyBuild mailing list: easybuild@lists.ugent.be
https://lists.ugent.be/wws/subscribe/easybuild
• Twitter: @easy build
• IRC: #easybuild on chat.freenode.net
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
28/32
Why I like Lmod and why you should too!
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
29/32
How we learned about Lmod
• EasyBuild makes it very easy to install lots of software/modules
quickly
• we started wondering how we could organise our modules tree better
• Lmod and the module hierarchy idea allow to deal with this
And then we discovered a whole bunch of other interesting features...
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
30/32
Lmod: a modern modules tool
https://tacc.utexas.edu/research-development/tacc-projects/lmod
• developed by Dr. Robert McLay (TACC, UT Austin)
• created to properly support module hierarchies
• available since Oct’08, actively developed, frequent stable releases
• well documented: http://lmod.readthedocs.org
• drop-in alternative for Tcl-based module tools (a few edge cases)
• written in Lua, consumes module files in both Tcl and Lua syntax
• (vastly) improves user experience, without hindering experts
• highly community-driven development
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
31/32
Lmod: feature highlights
• module hierarchy-aware design and functionality
– searching across entire module tree with ‘module spider’
– automatic reloading of dependent modules on ‘module swap’
– marking missing dependent modules as inactive after ‘module swap’
• caching of module files, for responsive subcommands (e.g., avail)
• site-customizable behavior via provided hooks
• ml command (‘ml’ is ‘module list’, ‘ml GCC’ is ‘module load GCC’, . . . )
• load/unload shortcuts via + and -
• various other useful/advanced features, including:
– case-insensitive ‘avail’ subcommand
– can send subcommand output to stdout (rather than to stderr)
– defining module families (e.g., ‘compiler’, ‘mpi’)
– assigning properties to modules (e.g., ‘Phi-aware’)
– stack-based definition of environment variables (using pushenv)
– user-definable collections of modules (module save)
– and a lot more . . .
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
32/32
Example
Behold: the power of the Lmod command line using ‘ml’ command:
• see which modules are loaded (‘module list’)
• change to different part of module hierarchy by swapping compilers
• recheck which modules are loaded
$ ml
Currently loaded modules:
1) GCC/4.8.2 2) MPICH/3.1.1 3) FFTW/3.3.2
$ ml -GCC Clang
The following have been reloaded:
1) FFTW/3.3.2 2) MPICH/3.1.1
$ ml
Currently loaded modules:
1) Clang/3.4 2) MPICH/3.1.1 3) FFTW/3.3.2
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org

Weitere ähnliche Inhalte

Was ist angesagt?

New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingScyllaDB
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisPaul V. Novarese
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
 
Spack - A Package Manager for HPC
Spack - A Package Manager for HPCSpack - A Package Manager for HPC
Spack - A Package Manager for HPCinside-BigData.com
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleCoreStack
 
Linux Preempt-RT Internals
Linux Preempt-RT InternalsLinux Preempt-RT Internals
Linux Preempt-RT Internals哲豪 康哲豪
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] IO Visor Project
 
Troubleshooting Apache® Ignite™
Troubleshooting Apache® Ignite™Troubleshooting Apache® Ignite™
Troubleshooting Apache® Ignite™Tom Diederich
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF SuperpowersBrendan Gregg
 
Linux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sLinux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sMydbops
 
Kernel Module Programming
Kernel Module ProgrammingKernel Module Programming
Kernel Module ProgrammingSaurabh Bangad
 
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022MichaelM85042
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commandsSagar Kumar
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containersGoogle
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control InterfaceLinaro
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveAlison Chaiken
 

Was ist angesagt? (20)

New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using Tracing
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Spack - A Package Manager for HPC
Spack - A Package Manager for HPCSpack - A Package Manager for HPC
Spack - A Package Manager for HPC
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Linux Preempt-RT Internals
Linux Preempt-RT InternalsLinux Preempt-RT Internals
Linux Preempt-RT Internals
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Introduction to Vagrant
Introduction to VagrantIntroduction to Vagrant
Introduction to Vagrant
 
CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016] CETH for XDP [Linux Meetup Santa Clara | July 2016]
CETH for XDP [Linux Meetup Santa Clara | July 2016]
 
Troubleshooting Apache® Ignite™
Troubleshooting Apache® Ignite™Troubleshooting Apache® Ignite™
Troubleshooting Apache® Ignite™
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
 
Linux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA'sLinux monitoring and Troubleshooting for DBA's
Linux monitoring and Troubleshooting for DBA's
 
Kernel Module Programming
Kernel Module ProgrammingKernel Module Programming
Kernel Module Programming
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commands
 
Introduction to linux containers
Introduction to linux containersIntroduction to linux containers
Introduction to linux containers
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 

Ähnlich wie Introduction to EasyBuild: Tutorial Part 1

Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...PranavPatil822557
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformaticsStephen Turner
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primerDrew Fustini
 
How to save the environment
How to save the environmentHow to save the environment
How to save the environmentAaron Zauner
 
From Zero to Hero - All you need to do serious deep learning stuff in R
From Zero to Hero - All you need to do serious deep learning stuff in R From Zero to Hero - All you need to do serious deep learning stuff in R
From Zero to Hero - All you need to do serious deep learning stuff in R Kai Lichtenberg
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
DevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y ModeloDevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y ModeloSUSE España
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker budMandi Walls
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...sparkfabrik
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at FacebookDavide Cavalca
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Jace Liang
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Makeesben1962
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems Mender.io
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...dmgerman
 

Ähnlich wie Introduction to EasyBuild: Tutorial Part 1 (20)

Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
DevOps-Roadmap
DevOps-RoadmapDevOps-Roadmap
DevOps-Roadmap
 
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
Machine Learning , Analytics & Cyber Security the Next Level Threat Analytics...
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Autotools
AutotoolsAutotools
Autotools
 
How to save the environment
How to save the environmentHow to save the environment
How to save the environment
 
From Zero to Hero - All you need to do serious deep learning stuff in R
From Zero to Hero - All you need to do serious deep learning stuff in R From Zero to Hero - All you need to do serious deep learning stuff in R
From Zero to Hero - All you need to do serious deep learning stuff in R
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
DevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y ModeloDevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y Modelo
 
Navigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at Facebook
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 

Mehr von inside-BigData.com

Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...inside-BigData.com
 
Transforming Private 5G Networks
Transforming Private 5G NetworksTransforming Private 5G Networks
Transforming Private 5G Networksinside-BigData.com
 
The Incorporation of Machine Learning into Scientific Simulations at Lawrence...
The Incorporation of Machine Learning into Scientific Simulations at Lawrence...The Incorporation of Machine Learning into Scientific Simulations at Lawrence...
The Incorporation of Machine Learning into Scientific Simulations at Lawrence...inside-BigData.com
 
How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...
How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...
How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...inside-BigData.com
 
Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...
Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...
Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...inside-BigData.com
 
HPC Impact: EDA Telemetry Neural Networks
HPC Impact: EDA Telemetry Neural NetworksHPC Impact: EDA Telemetry Neural Networks
HPC Impact: EDA Telemetry Neural Networksinside-BigData.com
 
Biohybrid Robotic Jellyfish for Future Applications in Ocean Monitoring
Biohybrid Robotic Jellyfish for Future Applications in Ocean MonitoringBiohybrid Robotic Jellyfish for Future Applications in Ocean Monitoring
Biohybrid Robotic Jellyfish for Future Applications in Ocean Monitoringinside-BigData.com
 
Machine Learning for Weather Forecasts
Machine Learning for Weather ForecastsMachine Learning for Weather Forecasts
Machine Learning for Weather Forecastsinside-BigData.com
 
HPC AI Advisory Council Update
HPC AI Advisory Council UpdateHPC AI Advisory Council Update
HPC AI Advisory Council Updateinside-BigData.com
 
Fugaku Supercomputer joins fight against COVID-19
Fugaku Supercomputer joins fight against COVID-19Fugaku Supercomputer joins fight against COVID-19
Fugaku Supercomputer joins fight against COVID-19inside-BigData.com
 
Energy Efficient Computing using Dynamic Tuning
Energy Efficient Computing using Dynamic TuningEnergy Efficient Computing using Dynamic Tuning
Energy Efficient Computing using Dynamic Tuninginside-BigData.com
 
HPC at Scale Enabled by DDN A3i and NVIDIA SuperPOD
HPC at Scale Enabled by DDN A3i and NVIDIA SuperPODHPC at Scale Enabled by DDN A3i and NVIDIA SuperPOD
HPC at Scale Enabled by DDN A3i and NVIDIA SuperPODinside-BigData.com
 
Versal Premium ACAP for Network and Cloud Acceleration
Versal Premium ACAP for Network and Cloud AccelerationVersal Premium ACAP for Network and Cloud Acceleration
Versal Premium ACAP for Network and Cloud Accelerationinside-BigData.com
 
Zettar: Moving Massive Amounts of Data across Any Distance Efficiently
Zettar: Moving Massive Amounts of Data across Any Distance EfficientlyZettar: Moving Massive Amounts of Data across Any Distance Efficiently
Zettar: Moving Massive Amounts of Data across Any Distance Efficientlyinside-BigData.com
 
Scaling TCO in a Post Moore's Era
Scaling TCO in a Post Moore's EraScaling TCO in a Post Moore's Era
Scaling TCO in a Post Moore's Erainside-BigData.com
 
CUDA-Python and RAPIDS for blazing fast scientific computing
CUDA-Python and RAPIDS for blazing fast scientific computingCUDA-Python and RAPIDS for blazing fast scientific computing
CUDA-Python and RAPIDS for blazing fast scientific computinginside-BigData.com
 
Introducing HPC with a Raspberry Pi Cluster
Introducing HPC with a Raspberry Pi ClusterIntroducing HPC with a Raspberry Pi Cluster
Introducing HPC with a Raspberry Pi Clusterinside-BigData.com
 

Mehr von inside-BigData.com (20)

Major Market Shifts in IT
Major Market Shifts in ITMajor Market Shifts in IT
Major Market Shifts in IT
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...
 
Transforming Private 5G Networks
Transforming Private 5G NetworksTransforming Private 5G Networks
Transforming Private 5G Networks
 
The Incorporation of Machine Learning into Scientific Simulations at Lawrence...
The Incorporation of Machine Learning into Scientific Simulations at Lawrence...The Incorporation of Machine Learning into Scientific Simulations at Lawrence...
The Incorporation of Machine Learning into Scientific Simulations at Lawrence...
 
How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...
How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...
How to Achieve High-Performance, Scalable and Distributed DNN Training on Mod...
 
Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...
Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...
Evolving Cyberinfrastructure, Democratizing Data, and Scaling AI to Catalyze ...
 
HPC Impact: EDA Telemetry Neural Networks
HPC Impact: EDA Telemetry Neural NetworksHPC Impact: EDA Telemetry Neural Networks
HPC Impact: EDA Telemetry Neural Networks
 
Biohybrid Robotic Jellyfish for Future Applications in Ocean Monitoring
Biohybrid Robotic Jellyfish for Future Applications in Ocean MonitoringBiohybrid Robotic Jellyfish for Future Applications in Ocean Monitoring
Biohybrid Robotic Jellyfish for Future Applications in Ocean Monitoring
 
Machine Learning for Weather Forecasts
Machine Learning for Weather ForecastsMachine Learning for Weather Forecasts
Machine Learning for Weather Forecasts
 
HPC AI Advisory Council Update
HPC AI Advisory Council UpdateHPC AI Advisory Council Update
HPC AI Advisory Council Update
 
Fugaku Supercomputer joins fight against COVID-19
Fugaku Supercomputer joins fight against COVID-19Fugaku Supercomputer joins fight against COVID-19
Fugaku Supercomputer joins fight against COVID-19
 
Energy Efficient Computing using Dynamic Tuning
Energy Efficient Computing using Dynamic TuningEnergy Efficient Computing using Dynamic Tuning
Energy Efficient Computing using Dynamic Tuning
 
HPC at Scale Enabled by DDN A3i and NVIDIA SuperPOD
HPC at Scale Enabled by DDN A3i and NVIDIA SuperPODHPC at Scale Enabled by DDN A3i and NVIDIA SuperPOD
HPC at Scale Enabled by DDN A3i and NVIDIA SuperPOD
 
State of ARM-based HPC
State of ARM-based HPCState of ARM-based HPC
State of ARM-based HPC
 
Versal Premium ACAP for Network and Cloud Acceleration
Versal Premium ACAP for Network and Cloud AccelerationVersal Premium ACAP for Network and Cloud Acceleration
Versal Premium ACAP for Network and Cloud Acceleration
 
Zettar: Moving Massive Amounts of Data across Any Distance Efficiently
Zettar: Moving Massive Amounts of Data across Any Distance EfficientlyZettar: Moving Massive Amounts of Data across Any Distance Efficiently
Zettar: Moving Massive Amounts of Data across Any Distance Efficiently
 
Scaling TCO in a Post Moore's Era
Scaling TCO in a Post Moore's EraScaling TCO in a Post Moore's Era
Scaling TCO in a Post Moore's Era
 
CUDA-Python and RAPIDS for blazing fast scientific computing
CUDA-Python and RAPIDS for blazing fast scientific computingCUDA-Python and RAPIDS for blazing fast scientific computing
CUDA-Python and RAPIDS for blazing fast scientific computing
 
Introducing HPC with a Raspberry Pi Cluster
Introducing HPC with a Raspberry Pi ClusterIntroducing HPC with a Raspberry Pi Cluster
Introducing HPC with a Raspberry Pi Cluster
 
Overview of HPC Interconnects
Overview of HPC InterconnectsOverview of HPC Interconnects
Overview of HPC Interconnects
 

Kürzlich hochgeladen

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Kürzlich hochgeladen (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Introduction to EasyBuild: Tutorial Part 1

  • 1. Introduction to EasyBuild Getting Scientific Software Installed With Ease Kenneth Hoste HPC-UGent, Ghent University, Belgium kenneth.hoste@ugent.be http://users.ugent.be/~kehoste/EasyBuild_HPCAC_intro_20160323.pdf March 23rd 2016 – HPC Advisory Council conference – Lugano http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 2. 1/32 whoami • PhD in Computer Science from Ghent University (Belgium) • joined HPC-UGent team in October 2010 • main tasks: user support & training, software installations • inherited maintenance of EasyBuild in 2011 • slowly also became lead developer & release manager • e-mail: kenneth.hoste@ugent.be • Twitter: @kehoste • GitHub: https://github.com/boegel • IRC (Freenode): boegel • Google+: kenneth.hoste@gmail.com http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 3. 2/32 HPC-UGent in a nutshell http://www.ugent.be/hpc – http://www.vscentrum.be • HPC team at central IT dept. of Ghent University (Belgium) • 9+1 team members: 1 manager, ∼3 user support, ∼6 sysadmin • 4+1 Tier2 clusters + one Tier1 cluster (8.5k cores) • ∼1.8k user accounts, across all scientific domains • tasks: hardware, system administration, user support/training, . . . • member of Flemish Supercomputer Centre (VSC) virtual centre, collaboration between Flemish university associations http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 4. 3/32 Tasks for HPC user support teams • resolving problems that occur when using the HPC system(s) – ”I lost my private key/password, and now I can’t log in. Help?” – ”My job crashed, and I have no idea why. What happened?” – ”My stuff doesn’t work anymore, and I didn’t change a thing!” • answering questions, from simple to very technical • installing (scientific) software tools/libraries/applications • helping users improve their workflow (not necessarily by request) • training: Linux basics, OpenMP, MPI, Python, etc. • performance analysis and optimisation of large scientific applications • consultancy services w.r.t. developing scientific software http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 5. 4/32 Installing scientific software for users Typical way in which scientific software is installed for users: • by user request: new software, version upgrades, more variants, . . . • on a (shared NFS) filesystem available on every workernode • specifically targetted to the HPC cluster it will be used on – built from source (if possible) – separate installation per cluster – highly optimized for system architecture - linked with heavily tuned libraries (MPI, BLAS, LAPACK, . . . ) - built with (equivalent of) -march=native/-xHost • rebuild when updates for compilers/libraries become available • installations remain available during lifetime of system • accompanying module file is provided for easy access http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 6. 5/32 Environment modules • canonical way of giving users access to installed (scientific) software • used on most HPC systems (> 80%1 ), since mid 90’s • module file specifies changes to user environment (in Tcl/Lua subset) • modules tool applies those changes to the current session (!) • easy interface for users: – available software: ‘module avail [name]’ – prepare environment: ‘module load <name>/<version>’ – show loaded modules: ‘module list’ – rollback changes to environment: ‘module unload <name>’ – start afresh: ‘module purge’ • Tcl-based environment modules system is most prevalent (for now) • Lmod: Lua-based modules tool, vastly improves user experience (1) http://hpcugent.github.io/easybuild/files/SC15_BoF_Getting_Scientific_Software_Installed.pdf http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 7. 6/32 “Please install <software> on the HPC?” The most common type of support request from users is to install (scientific) software; this covers over 25% of support tickets at HPC-UGent. Installing (lots of) scientific software is: • error-prone, trial-and-error • tedious, hard to get right • repetitive & boring (well. . . ) • time-consuming (hours, days, even weeks) • frustrating (e.g., dependency hell) • sometimes simply not worth the effort. . . http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 8. 7/32 Common issues with scientific software Researchers focus on the science behind the software they implement, and care little about tools, build procedure, portability, . . . Scientists are not software developers or sysadmins (nor should they be). “If we would know what we are doing, it wouldn’t be called ‘research’.” This results in: • ‘incorrect’ use of build tools • use of non-standard build tools (or broken ones) • incomplete build procedure, e.g., no configure or install step • interactive installation scripts • hardcoded parameters (compilers, libraries, paths, . . . ) • poor/outdated/missing/incorrect documentation • dependency (version) hell http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 9. 8/32 Prime example I: WRF Weather Research and Forecasting Model (http://www.wrf-model.org) (one of the top 5 applications on Blue Waters) • dozen dependencies: netCDF (C, Fortran), HDF5, tcsh, JasPer, . . . • known issues in last release are (only) documented on website no patch file provided, infrequent bugfix releases • interactive ‘configure’ script :( • resulting configure.wrf needs work: fix hardcoded settings (compilers, libraries, . . . ), tweaking of options • custom ‘compile’ script (wraps around ‘make’) building in parallel is broken without fixing the Makefile • no actual installation step Wouldn’t it be nice to build & install WRF with a single command? http://easybuild.readthedocs.org/en/latest/Typical_workflow_example_with_WRF.html http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 10. 9/32 Prime example II: QIIME QIIME: Quantitative Insights Into Microbial Ecology (http://qiime.org/) clearcut ictce Java SourceTracker Cytoscape GHC BLAT libpng FastTree libreadline ncurses M4 microbiomeutil Perl BLAST cdbfasta biom-format Python pyqi tax2tree PyCogent R Infernal MAFFT Xmlm OCaml findlib bzip2 Autoconf ifort imkl icc impi Mothur gzip zlib PyNAST UCLUST RDP-Classifier ea-utils GSL BWA USEARCH SQLite Tcl CamlZIP batteries csv AmpliconNoise freetype RAxML gdata matplotlib pplacer GSL-OCaml SQLite3-OCamlMCL qcli Emperor QIIME MUSCLE ParsInsert SeqPrep CD-HITrtax • scientific research domain: bioinformatics . . . • 59 dependencies in total (without compiler toolchain), some optional – depends on Haskell (GHC), Java, Python, R, Perl, OCaml, . . . – several deps use a non-standard build procedure (in various degrees) • very picky about dependency versions (e.g., must be Python v2.7.3) • took us several weeks to get it installed (using Intel compilers!). . . • . . . now we can (re)build/install it all with a single command! (disclaimer: support for QIIME not included yet in latest EasyBuild release) http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 11. 10/32 Houston, we have a problem Installation of scientific software is a tremendous problem for HPC sites all around the world. • huge burden on HPC user support teams • researchers lose lots of time (waiting) • sites typically resort to in-house scripting • very little collaboration among HPC sites :( http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 12. 11/32 What about existing tools? Existing tools are not well suited to scientific software and HPC systems. • package managers: yum (RPMs), apt-get (.deb), . . . • Homebrew (Mac OS X), http://brew.sh/ • Linuxbrew, http://brew.sh/linuxbrew/ • Portage (Gentoo), http://wiki.gentoo.org/wiki/Project:Portage • pkgsrc (NetBSD & (a lot) more), http://pkgsrc.org/ • Nix, http://nixos.org/nix • GNU Guix, https://www.gnu.org/s/guix Common problems: • usually poor support for multiple versions/builds side-by-side • not flexible enough to deal with idiosyncrasies of scientific software • little support for scientific software, other compilers (not GCC), MPI http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 13. 12/32 EasyBuild: building software with ease http://hpcugent.github.io/easybuild/ • framework for installing (scientific) software on HPC systems • collection of Python packages and modules • in-house since 2009, open-source (GPLv2) since 2012 • now: thriving community; actively contributing, driving development • new release every 6–8 weeks (latest: EasyBuild v2.7.0, Mar 20th 2016) • supports over 850 different software packages including CP2K, GAMESS-US, GROMACS, NAMD, NWChem, OpenFOAM, PETSc, QuantumESPRESSO, WRF, WPS, . . . • well documented: http://easybuild.readthedocs.org http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 14. 13/32 EasyBuild: feature highlights • fully autonomously building and installing (scientific) software – automatic dependency resolution – automatic generation of module files (Tcl or Lua syntax) • thorough logging of executed build/install procedure • archiving of build specifications (‘easyconfig files‘) • highly configurable, via config files/environment/command line • dynamically extendable with additional easyblocks, toolchains, etc. • support for custom module naming schemes (incl. hierarchical) • comprehensively tested: lots of unit tests, regression testing, . . . • actively developed, collaboration between various HPC sites • worldwide community http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 15. 14/32 EasyBuild terminology • EasyBuild framework – core of EasyBuild: Python modules & packages – provides supporting functionality for building and installing software • easyblock – a Python module, ‘plugin’ for the EasyBuild framework – implements a (generic) software build/install procedure • easyconfig file (*.eb) – build specification: software name/version, compiler toolchain, etc. • compiler toolchain – compilers with accompanying libraries (MPI, BLAS/LAPACK, . . . ) Putting it all together The EasyBuild framework leverages easyblocks to automatically build and install (scientific) software using a particular compiler toolchain, as specified by one or more easyconfig files. http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 16. 15/32 EasyBuild: system requirements • Linux x86 64 HPC systems is main target platform (for now – Red Hat-based systems (Scientific Linux, CentOS, RHEL, . . . ) – also other Linux distros: Debian, Ubuntu, OpenSUSE, SLES, . . . – kind of works on OS X, but not really a target platform – no Windows support (and none planned) – stable support for Cray systems since EasyBuild v2.7.0 – support for Linux@POWER systems is being looked into (by TAMU) • Python v2.6.x or more recent v2.x (not Python 3 compatible (yet)) • a modules tool: – latest release of Tcl/C environment modules (version 3.2.10); – or one of the Tcl-only versions of environment modules; – or a recent version of Lmod (5.6.3 or more recent) (recommended!) • (a system C/C++ compiler, to get started) http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 17. 16/32 ‘Quick’ demo for the impatient eb HPL-2.1-foss-2016a.eb --robot • downloads all required sources (best effort) • builds/installs foss toolchain (be patient) + HPL on top of it foss: GCC, OpenMPI, LAPACK, OpenBLAS, FFTW, ScaLAPACK note: requires libibverbs to be available • generates module file for each installed software package http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 18. 17/32 Example ‘eb’ output $ eb GCC-4.9.3.eb == temporary log file in case of crash /tmp/eb-GyvPHx/easybuild-U1TkEI.log == processing EasyBuild easyconfig GCC-4.9.3.eb == building and installing GCC/4.9.3... == fetching files... == creating build dir, resetting environment... == unpacking... == patching... == preparing... == configuring... == building... == testing... == installing... == taking care of extensions... == postprocessing... == sanity checking... == cleaning up... == creating module... == permissions... == packaging... == COMPLETED: Installation ended successfully == Results of the build can be found in the log file /opt/easybuild/software/GCC/4... == Build succeeded for 1 out of 1 == Temporary log file(s) /tmp/eb-GyvPHx/easybuild-U1TkEI.log* have been removed. == Temporary directory /tmp/eb-GyvPHx has been removed. http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 19. 18/32 Step-wise install procedure build and install procedure as implemented by EasyBuild IV: unpack sources V: apply patches VI: prepare VII: configure VIII: build IX: test X: install XI: extensions XII: sanity check XIII: cleanup XIV: env. module III: check readiness XV: permissions II: fetch sources XVI: packaging I: parse easyconfig XVII: test cases most of these steps can be customised if required, via easyconfig parameters or a custom easyblock http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 20. 19/32 What EasyBuild is (not) EasyBuild is not: • YABT (Yet Another Build Tool) • a replacement for your favorite package manager • a magic solution to all your (installation) problems EasyBuild can be (and maybe already is) a: • proper way of installing scientific software • uniform interface that wraps around software build procedures • huge time-saver, by automating tedious/boring/repetitive tasks • way to provide a consistent software stack to your users • expert system for software installation on HPC systems • platform for collaboration with HPC sites world-wide • tool to empower users to manage their own software stack http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 21. 20/32 EasyBuild: statistics EasyBuild v2.7.0 (Mar’16) • ∼ 25, 000 LoC in framework (17 Python packages, 160 Python modules) + ∼ 5, 000 LoC in vsc-base (option parsing/logging) + ∼ 12, 500 LoC more in unit tests =⇒ ∼ 42, 500 LoC in total • 194 easyblocks in total (∼ 18, 000 Loc) 165 software-specific easyblocks 29 generic easyblocks • 909 different software packages supported (incl. toolchains & bundles) bio: 203, tools: 123, vis: 99, devel: 78, lib: 77, math: 54, data: 53, toolchain: 38, chem: 38, lang: 32, numlib: 25, perf: 22, system: 21, cae: 16, compiler: 14, mpi: 11, phys: 6 • 5, 580 easyconfig files: different versions/variants, toolchains, . . . http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 22. 21/32 EasyBuild community • Ghent University & partners in Flemish Supercomputing Centre • J¨ulich Supercomputing Centre (JSC) – Germany • Swiss National Supercomputing Centre (CSCS) – Switzerland • (small) sites across Europe: Luxembourg, Cyprus, Switzerland, UK, . . . • US sites: Stanford University, University of Colorado Boulder, . . . • . . . and all across the world: New Zealand, Australia, Cuba, . . . • and also commercial companies: Bayer (Germany), *****, . . . http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 23. 22/32 EasyBuild community by numbers • 6 ‘Getting Scientific Software Installed’ BoF sessions at ISC/SC • 10 two/three-day EasyBuild hackathons + 1 user meeting • ∼20-25 ‘active’ souls on the #easybuild IRC channel • a couple of dozen of HPC sites using it around the world • 47 EasyBuild conference calls • 168 subscribers to the EasyBuild mailing list • framework: 966 merged PRs (50 open) • easyblocks: 634 merged PRs (51 open) • easyconfigs: 1, 937 merged PRs (325 open) http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 24. 23/32 0" 20" 40" 60" 80" 100" 120" 140" 160" 180" Feb+12" Aug+12" Mar+13" Oct+13" Apr+14" Nov+14" May+15" Dec+15" #"subscribers" date" EasyBuild"mailing"list" http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 25. 24/32 0" 10" 20" 30" 40" 50" 60" 70" 80" 90" 11,Feb,12" 29,Aug,12" 17,Mar,13" 03,Oct,13" 21,Apr,14" 07,Nov,14" 26,May,15" 12,Dec,15" #"unique"contributors" EasyBuild"contributors" framework" easyblocks" easyconfigs" http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 26. 25/32 Recent projects similar to EasyBuild • Spack (LLNL) - http://scalability-llnl.github.io/spack/ • Maali (Pawsey) - https://github.com/chrisbpawsey/maali/ • Smithy (NICS, ORNL) - http://anthonydigirolamo.github.io/smithy/ Major differences with EasyBuild: • slightly different approach • smaller community • fewer supported software packages • missing features • less flexibility • not so powerful (except Spack?) All have expressed interest in cross-community collaboration. http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 27. 26/32 HUST’14 paper Modern Scientific Software Management Using EasyBuild and Lmod Markus Geimer (JSC) Kenneth Hoste (HPC-UGent) Robert McLay (TACC) http://hpcugent.github.io/easybuild/files/hust14_paper.pdf • paper at HPC User Support Tools workshop (HUST’14 @ SC14) • explains basics of module tools, EasyBuild and Lmod • highlights issues with current approaches in software installation • advocates use of a hierarchical module naming scheme • presents EasyBuild and Lmod as adequate tools for (automated) software/module management on HPC systems http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 28. 27/32 EasyBuild: future work • support more (scientific) software (never-ending story?) • further extend documentation: generic easyblocks, easyblocks API • support for more Lmod-specific features – module families – module properties & sticky modules • stable support for ‘subtoolchain’-aware dependency resolution • (even) better integration with GitHub • support for RPATH-style linking of libraries • ‘fat’ easyconfig format (YAML-based?) • join forces with Spack (LLNL)? http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 29. 28/32 Do you want to know more? • EasyBuild website: http://hpcugent.github.io/easybuild • EasyBuild documentation: http://easybuild.readthedocs.org • stable EasyBuild releases: http://pypi.python.org/pypi/easybuild EasyBuild framework: http://pypi.python.org/pypi/easybuild-framework easyblocks: http://pypi.python.org/pypi/easybuild-easyblocks easyconfigs http://pypi.python.org/pypi/easybuild-easyconfigs • source repositories on GitHub EasyBuild meta package + docs: https://github.com/hpcugent/easybuild EasyBuild framework: https://github.com/hpcugent/easybuild-framework easyblocks: https://github.com/hpcugent/easybuild-easyblocks easyconfigs: https://github.com/hpcugent/easybuild-easyconfigs • EasyBuild mailing list: easybuild@lists.ugent.be https://lists.ugent.be/wws/subscribe/easybuild • Twitter: @easy build • IRC: #easybuild on chat.freenode.net http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 30. 28/32 Why I like Lmod and why you should too! http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 31. 29/32 How we learned about Lmod • EasyBuild makes it very easy to install lots of software/modules quickly • we started wondering how we could organise our modules tree better • Lmod and the module hierarchy idea allow to deal with this And then we discovered a whole bunch of other interesting features... http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 32. 30/32 Lmod: a modern modules tool https://tacc.utexas.edu/research-development/tacc-projects/lmod • developed by Dr. Robert McLay (TACC, UT Austin) • created to properly support module hierarchies • available since Oct’08, actively developed, frequent stable releases • well documented: http://lmod.readthedocs.org • drop-in alternative for Tcl-based module tools (a few edge cases) • written in Lua, consumes module files in both Tcl and Lua syntax • (vastly) improves user experience, without hindering experts • highly community-driven development http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 33. 31/32 Lmod: feature highlights • module hierarchy-aware design and functionality – searching across entire module tree with ‘module spider’ – automatic reloading of dependent modules on ‘module swap’ – marking missing dependent modules as inactive after ‘module swap’ • caching of module files, for responsive subcommands (e.g., avail) • site-customizable behavior via provided hooks • ml command (‘ml’ is ‘module list’, ‘ml GCC’ is ‘module load GCC’, . . . ) • load/unload shortcuts via + and - • various other useful/advanced features, including: – case-insensitive ‘avail’ subcommand – can send subcommand output to stdout (rather than to stderr) – defining module families (e.g., ‘compiler’, ‘mpi’) – assigning properties to modules (e.g., ‘Phi-aware’) – stack-based definition of environment variables (using pushenv) – user-definable collections of modules (module save) – and a lot more . . . http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 34. 32/32 Example Behold: the power of the Lmod command line using ‘ml’ command: • see which modules are loaded (‘module list’) • change to different part of module hierarchy by swapping compilers • recheck which modules are loaded $ ml Currently loaded modules: 1) GCC/4.8.2 2) MPICH/3.1.1 3) FFTW/3.3.2 $ ml -GCC Clang The following have been reloaded: 1) FFTW/3.3.2 2) MPICH/3.1.1 $ ml Currently loaded modules: 1) Clang/3.4 2) MPICH/3.1.1 3) FFTW/3.3.2 http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org