SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Getting Started with EasyBuild
Kenneth Hoste
HPC-UGent, Ghent University, Belgium
kenneth.hoste@ugent.be
http://users.ugent.be/~kehoste/EasyBuild_HPCAC_start_20160323.pdf
March 23rd 2016 – HPC Advisory Council conference – Lugano
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
1/11
Topics
• installing and configuring EasyBuild
• basic usage of ‘eb’
• typical workflow
• creating new or customizing existing easyconfig files
• easyconfigs vs easyblocks
• figuring out what EasyBuild is going to do
• dealing with failures/errors
• contributing back
• advanced features
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
2/11
Installing EasyBuild
http://easybuild.readthedocs.org/en/latest/Installation.html
Install EasyBuild using the bootstrap script (highly recommended):
$ curl -O https://raw.github.com/hpcugent/easybuild-framework/
develop/easybuild/scripts/bootstrap_eb.py
$ python bootstrap eb.py /tmp/$USER # replace with your prefix!
$ module use /tmp/$USER/modules/all
$ module load EasyBuild
Standard Python install tools (easy install, pip, . . . ) should also work.
Update EasyBuild with . . . EasyBuild!
$ module load EasyBuild/2.6.0
$ eb EasyBuild-2.7.0.eb
$ module swap EasyBuild EasyBuild/2.7.0
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
3/11
Configuring EasyBuild
http://easybuild.readthedocs.org/en/latest/Configuration.html
By default, EasyBuild will (ab)use $HOME/.local/easybuild.
You should configure EasyBuild to your preferences, via:
• configuration file(s): key-value lines, text files (e.g., prefix=/tmp)
• environment variables (e.g., $EASYBUILD PREFIX set to /tmp)
• command line parameters (e.g., --prefix=/tmp)
Consistency across these options is guaranteed (see eb --help | tail).
Priority among different options: cmdline, env vars, config file.
For example:
• --prefix overrules $EASYBUILD PREFIX
• $EASYBUILD PREFIX overrules prefix in configuration file
Use eb --show-config to get an overview of the current configuration.
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
4/11
Basic usage
http://easybuild.readthedocs.org/en/latest/Using_the_EasyBuild_command_line.html
• specify software name/version and toolchain to ‘eb’ command
• commonly via name(s) of easyconfig file(s):
eb GCC-4.9.2.eb Clang-3.6.0-GCC-4.9.2.eb
• or directory name(s) providing set(s) of easyconfig files:
eb $HOME/myeasyconfigs
• or via command line options:
eb --software-name=GCC
• --robot/-r: dependency resolution, --debug/-d: debug logging
eb WRF-3.6.1-foss-2015a-dmpar.eb -dr
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
5/11
Typical workflow
http://easybuild.readthedocs.org/en/latest/Typical_workflow_example_with_WRF.html
• searching for available easyconfigs (case-insensitive):
eb -S hpl
• pick an easyconfig file, based on software version, toolchain, etc.
• overview of required/available modules (dry run):
eb HPL-2.1-foss-2016a.eb -D
• enable debug logging & dependency resolution (‘robot’ mode):
eb HPL-2.1-foss-2016a.eb -dr
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
6/11
Creating easyconfig files
http://easybuild.readthedocs.org/en/latest/Writing_easyconfig_files.html
• install another software version, use different compiler toolchain,
tweak build options, . . . =⇒ new easyconfig file
• for simple changes, use --try-* command line options
– different software version: --try-software-version
– different compiler toolchain: --try-toolchain
– the --try-* options integrate with --robot
• or copy existing easyconfig file, adjust as needed
– ‘non-trivial’ changes: update dependencies, change build options, . . .
– for new software packages
• 28 generic easyblocks support over 80% of supported software!
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
7/11
Easyconfigs vs easyblocks
• thin line between ‘fat’ easyconfigs and (software-specific) easyblock
• easyblocks are “do once and forget”
• central solution for build peculiarities
• easyblocks allow to significantly simplify easyconfigs
• implemented in Python on top of framework API: very flexible
• reasons to consider an easyblock alongside a simple easyconfig:
– ‘critical’ values for easyconfig parameters
– configure/build/install options that are toolchain-dependent
– custom (configure) options for included dependencies
– hackish usage of parameters for existing (generic) easyblocks
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
8/11
eb --extended-dry-run (or eb -x)
eb WRF-3.6.1-foss-2015a-dmpar.eb -x
• figure out how EasyBuild is going to perform an installation
• runs in seconds, reports install procedure that would be performed
• not 100% accurate, but close enough to be practical
• opens up ‘black box’ that EasyBuild is sometimes perceived to be
• useful for:
– more quickly debugging easyconfigs/easyblocks
– understanding the effect of tweaking parameters/options
– giving (new) users more confidence about using EasyBuild
• implemented by popular request from (new) community members
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
9/11
Dealing with errors
• EasyBuild is not perfect (and it will probably never be)
• most frequent issues:
– failure to download source tarballs/installation files
• required files can be provided manually in EasyBuild source path
– build failures of old software versions on recent systems
• reconsider upgrading to newer version(s)
• see if issue can be side-stepped with a minor tweak (Google. . . )
– missing dependency specification in EasyBuild
• report problem (via GitHub issue tracker)
• maybe try fixing it yourself, & contribute back?
– (un)known bug in EasyBuild
• consult EasyBuild log file, enable --debug if needed
http://easybuild.readthedocs.org/en/latest/Logfiles.html
• getting help: EasyBuild mailing list, IRC, bi-weekly conf calls, . . .
http://easybuild.readthedocs.org/en/latest/#getting-help
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
10/11
Contributing back
• contribute back your working easyconfigs/easyblocks!
• also: report bugs, share ideas for enhancements, patches, etc.
• share your expertise with the community, avoid duplicate work
• especially if:
– software package is not supported yet
– changes are required for a new version/toolchains
– it is frequently used software package (compilers, MPI, etc.)
• requires a limited amount of knowledge of Git/GitHub
• contributions are reviewed & thoroughly tested prior to inclusion
• currently experimental: eb --new-pr, eb --update-pr
• see EasyBuild wiki for detailed walkthrough & guidelines:
https://github.com/hpcugent/easybuild/wiki/Contributing-back
https://github.com/hpcugent/easybuild/wiki/Policy-for-easyconfig-pull-requests
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
11/11
Advanced features
• upload test reports for GitHub pull requests: eb --from-pr <id> -u
• support for custom module naming schemes
– make EasyBuild spit out module files following your site policy
– also supports hiearchical module naming schemes
• plug in your own easyblocks, compiler toolchain definitions, etc.
– --include-easyblocks, --include-toolchains, . . .
• stable support for installing software on Cray systems
– on top of Cray-provided modules (or not)
– currently supports PrgEnv-gnu, PrgEnv-intel, PrgEnv-cray
– sensible way to align software stacks across Cray systems/sites
• the EasyBuild community . . .
http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org

Contenu connexe

Tendances

2.2 relación de cmm con psp y tsp
2.2 relación de cmm con psp  y tsp2.2 relación de cmm con psp  y tsp
2.2 relación de cmm con psp y tsp
eeelllkkk
 
Assignment unix & shell programming
Assignment  unix  & shell programmingAssignment  unix  & shell programming
Assignment unix & shell programming
Mohit Aggarwal
 

Tendances (20)

Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
 
The Journey to DevOps #MFSummit2017
The Journey to DevOps #MFSummit2017The Journey to DevOps #MFSummit2017
The Journey to DevOps #MFSummit2017
 
Uso de herramientas case
Uso de herramientas caseUso de herramientas case
Uso de herramientas case
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
2.2 relación de cmm con psp y tsp
2.2 relación de cmm con psp  y tsp2.2 relación de cmm con psp  y tsp
2.2 relación de cmm con psp y tsp
 
Upgrade Kubernetes the boring way
Upgrade Kubernetes the boring wayUpgrade Kubernetes the boring way
Upgrade Kubernetes the boring way
 
Guion psp-0.1
Guion psp-0.1Guion psp-0.1
Guion psp-0.1
 
Implementing DevOps Automation: Best Practices & Common Mistakes - DevOps Eas...
Implementing DevOps Automation: Best Practices & Common Mistakes - DevOps Eas...Implementing DevOps Automation: Best Practices & Common Mistakes - DevOps Eas...
Implementing DevOps Automation: Best Practices & Common Mistakes - DevOps Eas...
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Ansible-cours .pdf
Ansible-cours .pdfAnsible-cours .pdf
Ansible-cours .pdf
 
Jenkins
JenkinsJenkins
Jenkins
 
Scrum introduction in hsin chu-agilemeetup
Scrum introduction in hsin chu-agilemeetupScrum introduction in hsin chu-agilemeetup
Scrum introduction in hsin chu-agilemeetup
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
Assignment unix & shell programming
Assignment  unix  & shell programmingAssignment  unix  & shell programming
Assignment unix & shell programming
 
Software component reuse repository
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
 

Similaire à Getting Started with EasyBuild - Tutorial Part 2

Don't Fear the Autotools
Don't Fear the AutotoolsDon't Fear the Autotools
Don't Fear the Autotools
Scott Garman
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
All Things Open
 
DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus Magento
Magento Dev
 
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby
 
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
melbats
 

Similaire à Getting Started with EasyBuild - Tutorial Part 2 (20)

Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 
Don't Fear the Autotools
Don't Fear the AutotoolsDon't Fear the Autotools
Don't Fear the Autotools
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Makefile for python projects
Makefile for python projectsMakefile for python projects
Makefile for python projects
 
habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus Magento
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
 
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
 
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded ...
 
Autotools
AutotoolsAutotools
Autotools
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversion
 
Crafting GNU/Linux distributions for Embedded target from Scratch/Source
Crafting GNU/Linux distributions for Embedded target from Scratch/SourceCrafting GNU/Linux distributions for Embedded target from Scratch/Source
Crafting GNU/Linux distributions for Embedded target from Scratch/Source
 

Plus de 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 Networks
inside-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 Monitoring
inside-BigData.com
 
Machine Learning for Weather Forecasts
Machine Learning for Weather ForecastsMachine Learning for Weather Forecasts
Machine Learning for Weather Forecasts
inside-BigData.com
 
Energy Efficient Computing using Dynamic Tuning
Energy Efficient Computing using Dynamic TuningEnergy Efficient Computing using Dynamic Tuning
Energy Efficient Computing using Dynamic Tuning
inside-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 Acceleration
inside-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 Cluster
inside-BigData.com
 

Plus de 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
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Getting Started with EasyBuild - Tutorial Part 2

  • 1. Getting Started with EasyBuild Kenneth Hoste HPC-UGent, Ghent University, Belgium kenneth.hoste@ugent.be http://users.ugent.be/~kehoste/EasyBuild_HPCAC_start_20160323.pdf March 23rd 2016 – HPC Advisory Council conference – Lugano http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 2. 1/11 Topics • installing and configuring EasyBuild • basic usage of ‘eb’ • typical workflow • creating new or customizing existing easyconfig files • easyconfigs vs easyblocks • figuring out what EasyBuild is going to do • dealing with failures/errors • contributing back • advanced features http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 3. 2/11 Installing EasyBuild http://easybuild.readthedocs.org/en/latest/Installation.html Install EasyBuild using the bootstrap script (highly recommended): $ curl -O https://raw.github.com/hpcugent/easybuild-framework/ develop/easybuild/scripts/bootstrap_eb.py $ python bootstrap eb.py /tmp/$USER # replace with your prefix! $ module use /tmp/$USER/modules/all $ module load EasyBuild Standard Python install tools (easy install, pip, . . . ) should also work. Update EasyBuild with . . . EasyBuild! $ module load EasyBuild/2.6.0 $ eb EasyBuild-2.7.0.eb $ module swap EasyBuild EasyBuild/2.7.0 http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 4. 3/11 Configuring EasyBuild http://easybuild.readthedocs.org/en/latest/Configuration.html By default, EasyBuild will (ab)use $HOME/.local/easybuild. You should configure EasyBuild to your preferences, via: • configuration file(s): key-value lines, text files (e.g., prefix=/tmp) • environment variables (e.g., $EASYBUILD PREFIX set to /tmp) • command line parameters (e.g., --prefix=/tmp) Consistency across these options is guaranteed (see eb --help | tail). Priority among different options: cmdline, env vars, config file. For example: • --prefix overrules $EASYBUILD PREFIX • $EASYBUILD PREFIX overrules prefix in configuration file Use eb --show-config to get an overview of the current configuration. http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 5. 4/11 Basic usage http://easybuild.readthedocs.org/en/latest/Using_the_EasyBuild_command_line.html • specify software name/version and toolchain to ‘eb’ command • commonly via name(s) of easyconfig file(s): eb GCC-4.9.2.eb Clang-3.6.0-GCC-4.9.2.eb • or directory name(s) providing set(s) of easyconfig files: eb $HOME/myeasyconfigs • or via command line options: eb --software-name=GCC • --robot/-r: dependency resolution, --debug/-d: debug logging eb WRF-3.6.1-foss-2015a-dmpar.eb -dr http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 6. 5/11 Typical workflow http://easybuild.readthedocs.org/en/latest/Typical_workflow_example_with_WRF.html • searching for available easyconfigs (case-insensitive): eb -S hpl • pick an easyconfig file, based on software version, toolchain, etc. • overview of required/available modules (dry run): eb HPL-2.1-foss-2016a.eb -D • enable debug logging & dependency resolution (‘robot’ mode): eb HPL-2.1-foss-2016a.eb -dr http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 7. 6/11 Creating easyconfig files http://easybuild.readthedocs.org/en/latest/Writing_easyconfig_files.html • install another software version, use different compiler toolchain, tweak build options, . . . =⇒ new easyconfig file • for simple changes, use --try-* command line options – different software version: --try-software-version – different compiler toolchain: --try-toolchain – the --try-* options integrate with --robot • or copy existing easyconfig file, adjust as needed – ‘non-trivial’ changes: update dependencies, change build options, . . . – for new software packages • 28 generic easyblocks support over 80% of supported software! http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 8. 7/11 Easyconfigs vs easyblocks • thin line between ‘fat’ easyconfigs and (software-specific) easyblock • easyblocks are “do once and forget” • central solution for build peculiarities • easyblocks allow to significantly simplify easyconfigs • implemented in Python on top of framework API: very flexible • reasons to consider an easyblock alongside a simple easyconfig: – ‘critical’ values for easyconfig parameters – configure/build/install options that are toolchain-dependent – custom (configure) options for included dependencies – hackish usage of parameters for existing (generic) easyblocks http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 9. 8/11 eb --extended-dry-run (or eb -x) eb WRF-3.6.1-foss-2015a-dmpar.eb -x • figure out how EasyBuild is going to perform an installation • runs in seconds, reports install procedure that would be performed • not 100% accurate, but close enough to be practical • opens up ‘black box’ that EasyBuild is sometimes perceived to be • useful for: – more quickly debugging easyconfigs/easyblocks – understanding the effect of tweaking parameters/options – giving (new) users more confidence about using EasyBuild • implemented by popular request from (new) community members http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 10. 9/11 Dealing with errors • EasyBuild is not perfect (and it will probably never be) • most frequent issues: – failure to download source tarballs/installation files • required files can be provided manually in EasyBuild source path – build failures of old software versions on recent systems • reconsider upgrading to newer version(s) • see if issue can be side-stepped with a minor tweak (Google. . . ) – missing dependency specification in EasyBuild • report problem (via GitHub issue tracker) • maybe try fixing it yourself, & contribute back? – (un)known bug in EasyBuild • consult EasyBuild log file, enable --debug if needed http://easybuild.readthedocs.org/en/latest/Logfiles.html • getting help: EasyBuild mailing list, IRC, bi-weekly conf calls, . . . http://easybuild.readthedocs.org/en/latest/#getting-help http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 11. 10/11 Contributing back • contribute back your working easyconfigs/easyblocks! • also: report bugs, share ideas for enhancements, patches, etc. • share your expertise with the community, avoid duplicate work • especially if: – software package is not supported yet – changes are required for a new version/toolchains – it is frequently used software package (compilers, MPI, etc.) • requires a limited amount of knowledge of Git/GitHub • contributions are reviewed & thoroughly tested prior to inclusion • currently experimental: eb --new-pr, eb --update-pr • see EasyBuild wiki for detailed walkthrough & guidelines: https://github.com/hpcugent/easybuild/wiki/Contributing-back https://github.com/hpcugent/easybuild/wiki/Policy-for-easyconfig-pull-requests http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org
  • 12. 11/11 Advanced features • upload test reports for GitHub pull requests: eb --from-pr <id> -u • support for custom module naming schemes – make EasyBuild spit out module files following your site policy – also supports hiearchical module naming schemes • plug in your own easyblocks, compiler toolchain definitions, etc. – --include-easyblocks, --include-toolchains, . . . • stable support for installing software on Cray systems – on top of Cray-provided modules (or not) – currently supports PrgEnv-gnu, PrgEnv-intel, PrgEnv-cray – sensible way to align software stacks across Cray systems/sites • the EasyBuild community . . . http://hpcugent.github.io/easybuild - http://easybuild.readthedocs.org