diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae03f36..8684e25 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,40 +6,16 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@v4 - - name: Compile LaTeX document (EESSI) - uses: xu-cheng/latex-action@f1ca82cbed861b3534e2997dd584944f55b884ed + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 + - name: Compile LaTeX document + uses: xu-cheng/latex-action@25080975331dc4fc8e6f1af55788e00f84f51fff # v4.0.0 with: - working_directory: isc25/EESSI/ + working_directory: isc26-EESSI/ root_file: main.tex args: "-output-directory=build -pdf" latexmk_shell_escape: true - - name: Store produce PDFs (EESSI) - uses: actions/upload-artifact@v4 + - name: Store produce PDFs + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: - name: EESSI-ISC25-tutorial - path: isc25/EESSI/build/main.pdf - - name: Compile LaTeX document (CernVM-FS) - uses: xu-cheng/latex-action@f1ca82cbed861b3534e2997dd584944f55b884ed - with: - working_directory: isc24/CernVM-FS - root_file: main.tex - args: "-output-directory=build -pdf" - latexmk_shell_escape: true - - name: Store produce PDFs (CernVM-FS) - uses: actions/upload-artifact@v4 - with: - name: CVMFS-ISC24-tutorial - path: isc24/CernVM-FS/build/main.pdf - - name: Compile LaTeX document (EESSI, SC24) - uses: xu-cheng/latex-action@f1ca82cbed861b3534e2997dd584944f55b884ed - with: - working_directory: sc24/EESSI - root_file: main.tex - args: "-output-directory=build -pdf" - latexmk_shell_escape: true - - name: Store produce PDFs (EESSI, SC24) - uses: actions/upload-artifact@v4 - with: - name: EESSI-SC24-tutorial - path: sc24/EESSI/build/main.pdf + name: EESSI-ISC26-tutorial + path: isc26-EESSI/build/main.pdf diff --git a/isc26-EESSI/Makefile b/isc26-EESSI/Makefile new file mode 100644 index 0000000..1c0e4d0 --- /dev/null +++ b/isc26-EESSI/Makefile @@ -0,0 +1,2 @@ +all: + pdflatex main.tex && mv main.pdf isc26-eessi-tutorial.pdf diff --git a/isc26-EESSI/abstract.tex b/isc26-EESSI/abstract.tex new file mode 100644 index 0000000..daa0c84 --- /dev/null +++ b/isc26-EESSI/abstract.tex @@ -0,0 +1,19 @@ +%What if there was a way to avoid having to install a broad range of scientific software from scratch on every HPC +%cluster or cloud instance you use or maintain, without compromising on performance? + +Installing scientific software for supercomputers is known to be a tedious and time-consuming task. +The application software stack continues to deepen, especially as the HPC user community becomes more diverse, +computational science expands rapidly, and the diversity of system architectures increases. +Simultaneously, we see a surge in interest in cloud computing for scientific computing. Delivering optimised +software installations and providing access to these installations in a reliable, user-friendly, and reproducible +way is an increasingly highly non-trivial task that affects software developers, HPC user support teams, +and researchers running scientific workloads on HPC systems. + +This tutorial aims to address these challenges by introducing the European Environment for Scientific Software Installations +(EESSI, pronounced as \emph{``easy"}), a collaboration between various European HPC sites \& industry partners. The goal of EESSI is to provide +a shared repository of scientific software installations that can be used on a variety of systems, regardless +of which flavor/version of Linux distribution or processor architecture is used, or whether it is a full size HPC +cluster, a virtual machine in the cloud, or a personal workstation. + +We cover the basics of EESSI, different use cases for EESSI, how to add software to EESSI, and highlight some more +advanced features. We will also show how to engage with the community and contribute to the project. diff --git a/isc26-EESSI/attendance.tex b/isc26-EESSI/attendance.tex new file mode 100644 index 0000000..1db0a3c --- /dev/null +++ b/isc26-EESSI/attendance.tex @@ -0,0 +1,21 @@ +We anticipate this EESSI tutorial at ISC to be well attended with 20-50 attendees. This estimate is based on attendance at previous EESSI and EasyBuild events, including: +\begin{itemize} +\item A recent webinar series related to EESSI in May-June 2025 with over 150 registrations; +\item The yearly EasyBuild User Meetings, with over 50 in-person attendees in 2025, alongside over 70 online registrations; +\item An online EESSI tutorial in Dec'23 with over 130 registrations; +\item The in-person (half-day) ISC'22 EasyBuild tutorial with about 20 attendees. +\end{itemize} + +%HV: Do we have the attendance of the workshop series we did? + +%KH I would've gone with 50/25/25, but this works too (maybe better even) +% MG: This was just a blind guess ;) +%KH seems about right I think, we want to keep it beginner-oriented, 25% advanced may be too much... maybe 50/30/20 is less awkward? +% I love how 'awkward' is such an awkward word to type... :D (no, haven't had beer yet) + +% KH: Markus, I'm signing off for tonight... I'll be around tomorrow, definitely in the morning (have a student intern to keep busy in the afternoon, but I'll be around on Slack) +%MG: Yea, I will also stop working soon + +% KH: do we need anything from Maxime? It's probably good to tell him that now, since he'll only be around after 1-2pm tomorrow. +%MG: For the submission, we'll need a short bio (some text) For Alan and the two of us, I will copy from last year unless I receive an update. +% KH I already asked him for a bio. And a picture. I'll mail that too. => DONE diff --git a/isc26-EESSI/audience.tex b/isc26-EESSI/audience.tex new file mode 100644 index 0000000..bed754e --- /dev/null +++ b/isc26-EESSI/audience.tex @@ -0,0 +1,13 @@ +%This tutorial is intended for +\begin{itemize} + \item Researchers who want to empower themselves to use a uniform software stack without compromising on + performance; %on top of what is provided centrally by the HPC support team; + \item Developers who build and test their software across different HPC systems and the cloud; + \item System administrators and user support teams, responsible for the operational aspects of HPC systems and concerned about + hardware optimised scientific software installations; +% \item user support teams who need to provide a consistent central software stack for end users, and want to do so in +% a reproducible way; + %\item Cloud and CI users, who want to use a common stack of optimised scientific software installations; + \item System manufacturers and integrators interested in state-of-the-art software installation tools, who want to + leverage the collective expertise incorporated in EasyBuild and EESSI. +\end{itemize} diff --git a/isc26-EESSI/cv-alan.tex b/isc26-EESSI/cv-alan.tex new file mode 100644 index 0000000..f837173 --- /dev/null +++ b/isc26-EESSI/cv-alan.tex @@ -0,0 +1,90 @@ +%=============================================================================== +% Alan +%=============================================================================== + +\subsection{CV for Alan \'O Cais} + +\begin{description} +\item[] alan.ocais@cecam.org +\end{description} + +\subsection*{Education} + +\begin{description} +\item[] Ph.D Theoretical Physics, 2005, Trinity College Dublin (Ireland) +\item[] M.Sc. High Performance Computing, 2002, Trinity College Dublin (Ireland) +\item[] B.Sc. Theoretical Physics, 2001, Trinity College Dublin (Ireland) +\end{description} + +\subsection*{Professional Experience} + +\begin{description} +\item[] 2025 - present: Independent consultant contributing to the EuroHPC Federation Platform +\item[] 2022 - 2025: Technical Manager of MultiXscale EuroHPC Centre of Excellence at University of Barcelona +\item[] 2016 - 2021: E-CAM Centre of Excellence Software Manager at J\"ulich Supercomputing Centre (Germany) +\item[] 2010 - 2016: Research Fellow at J\"ulich Supercomputing Centre (Germany) +\item[] 2008 - 2010: Scientific Coordinator at The Cyprus Institute (Cyprus) +\item[] 2006 - 2008: Research Fellow at University of Adelaide (Australia) +\item[] 2005 - 2006: Research Fellow at Trinity College Dublin (Ireland) +\end{description} + +\subsection*{Tools and Projects} + +\begin{itemize} + \item[] \emph{MultiXscale EuroHPC Centre-of-Excellence} + \\steering committee member, technical manager, and work package leader (2023--present) + \\{\small{\url{https://www.multixscale.eu}}} + \item[] \emph{European Environment for Scientific Software Installations (EESSI)} + \\active contributor (2020--present) + \\{\small{\url{https://eessi.io} - \url{https://eessi.io/docs}}} + \item[] \emph{EasyBuild: (scientific) software build and installation framework} + \\developer \& co-maintainer (2013--present) + \\{\small{\url{https://easybuild.io} - \url{https://docs.easybuild.io}}} +\end{itemize} + +\subsection*{Conferences, Workshops and Tutorials} +\begin{itemize} +\item[] \emph{Streaming Optimised Scientific Software: an Introduction to EESSI}, online tutorial in context of + MultiXscale EuroHPC CoE, co-organisor, December 2023 + \\{\small{\url{https://github.com/EESSI/docs/tree/main/talks/20231205-Introduction-to-EESSI-CASTIEL2}}} +\item[] \emph{Best Practices for CernVM-FS in HPC}, online tutorial in context of MultiXscale EuroHPC CoE, co-organisor, December 2023 + \\{\small{\url{https://multixscale.github.io/cvmfs-tutorial-hpc-best-practices}}} +\item[] \emph{Maintaining a Modern Scientific Software Stack Made Easy with EasyBuild} tutorial at ISC'21, June 2021 (\url{https://easybuild.io/tutorial}) +\item[] Organiser of the first \emph{European HPC Training Stakeholder Workshop} (in coordination with the European Commission) +\item[] Instructor at all E-CAM Centre of Excellence \emph{\href{https://www.e-cam2020.eu/events?tribe_paged=1&tribe_event_display=list&tribe-bar-date=2015-10-01&tribe-bar-search=Extended}{Extended Software Development Workshops}} +\item[] Local organizer of the \emph{\href{https://github.com/easybuilders/easybuild/wiki/2nd-EasyBuild-User-Meeting}{2nd EasyBuild User Meeting (EUM'17)}}. J\"ulich. Germany. +\item[]Invited instructor at PRACE seasonal training workshops: +\begin{itemize} +\item[] PRACE Autumn School in HPC Programming Techniques, Athens 25-28 November 2014: Lectures on Profiling and Optimization and Benchmarking +\item[] PRACE Winter School, Tel Aviv 10-13 February 2014: Lectures on Profiling and Optimization and Benchmarking +\item[] Joint HP-SEE, LinkSCEEM-2 and PRACE HPC Summer Training, Athens 13-15 July 2011: Lectures on Profiling and Optimization and Benchmarking +\end{itemize} +\end{itemize} + +\subsection*{Selected Publications} + +\paragraph{Conference Papers} + +\begin{itemize} +\item[] A. \'O Cais, P. Steinbach, \emph{Expanding user communities with HPC Carpentry}. Proceedings of the Workshop on HPC Education and Training for Emerging Technologies at ISC2019, Journal of Computational Science Education. 11. 21-25. +\end{itemize} + +\begin{itemize} +\item[] D. Alvarez, A. O'Cais, M. Geimer, K. Hoste, \emph{Scientific Software Management in Real Life: Deployment of EasyBuild on a Large Scale System}. Proceedings of the 3rd International Workshop on HPC User Support Tools, Salt Lake City, USA, 2016. +\end{itemize} + +\paragraph{Journal Papers} + +\begin{itemize} +\item[] B. Dröge, V. Holanda Rusu, K. Hoste, C. van Leeuwen, A. O'Cais, T. Röblitz, \emph{{EESSI}: {A cross‐platform + ready‐to‐use optimised scientific software stack}}. Software: Practice and Experience, 53(1):176-210, Jan. 2022, + \url{https://doi.org/10.1002/spe.3075} +\item[] MJT Oliveira, N Papior, Y Pouillon, V Blum, E Artacho,\dots, \emph{The {CECAM} electronic structure library and the modular software development paradigm}. + J Chem Phys. 2020;153:024117 +\item[] M.S. Mahbub, (Adelaide U. \& Rajshahi U.), Alan O'Cais, Waseem Kamleh, B.G. Lasscock, Derek B. Leinweber, Anthony G. Williams, \emph{Isolating Excited States of the Nucleon in Lattice QCD}, Phys.Rev.D80:054507,2009. +\item[] M.S. Mahbub, (Adelaide U. \& Rajshahi U.) , Alan O'Cais, Waseem Kamleh, Ben G. Lasscock, Derek B. Leinweber, Anthony G. Williams, (Adelaide U.), \emph{Isolating the Roper Resonance in Lattice QCD}, Phys.Lett.B679:418-422,2009. +\item[] Alexandrou, C., et al., \emph{Evaluation of fermion loops applied to the calculation of the n' mass and the nucleon scalar and electromagnetic form factors}, Computer Physics Communications 183.6 (2012): 1215-1224. +\item[] J. Foley, K. Jimmy Juge, A. O'Cais, M. Peardon, S.M. Ryan and J. I. Skullerud, \emph{Practical all-to-all propagators for lattice QCD}, Comput. Phys. Commun. 172 (2005) 145. +\end{itemize} + +\newpage diff --git a/isc26-EESSI/cv-helena.tex b/isc26-EESSI/cv-helena.tex new file mode 100644 index 0000000..5c79238 --- /dev/null +++ b/isc26-EESSI/cv-helena.tex @@ -0,0 +1,73 @@ +%=============================================================================== +% Helena +%=============================================================================== + +\subsection{CV for Helena Vela Beltran} + +\begin{description} +\item[] Do IT Now (Spain) +\item[] Av. Meridiana 358 +\item[] 1015 Barcelona, Spain +\item[] helena.vela@doitnowgroup.com +\end{description} + +\subsection*{Education} + +\begin{description} +\item[] Bachelor in Computer Engineering, Polytechnical University of Catalonia - FIB (Spain) +\end{description} + +\subsection*{Professional Experience} + +\begin{description} +\item[] 2023 - present: Computational Scientist at Do IT Now (Spain) +\item[] 2021 - 2023: HPC Support Engineer at the Barcelona Supercomputing Centre (Spain) +\end{description} + +\subsection*{Tools and Projects} + +\begin{itemize} + \item[] \emph{MultiXscale EuroHPC Centre-of-Excellence} + \\Project partner and work package leader (2023--present) + \\{\small{\url{https://www.multixscale.eu}}} + \item[] \emph{European Environment for Scientific Software Installations (EESSI)} + \\Active contributor and steering committee member (2023--present) + \\{\small{\url{https://eessi.io} - \url{https://eessi.io/docs}}} + \end{itemize} + +\subsection*{Conferences, Workshops and Tutorials} +\begin{itemize} +\item[] \emph{Student Cluster Competition}, contestant with the UPC Team, in the edition of ISC'21 + \\{\small{\url{https://www.hpcwire.com/2021/07/05/isc21-cluster-competition-meet-the-teams/}}} +\item[] \emph{Integration of a Parallel Efficiency Tool into an HPC production cluster},talk in exhibitor forum in the context of WHPC at ISC'23 + \\{\small{\url{https://womeninhpc.org/events/isc-2023-exhibitor-forum-takeover}}} +\item[] \emph{PATC Systems Workshop: Programming MareNostrum 4}, online workshop in context of PRACE, presenter, May 2022 + \\{\small{\url{https://www.bsc.es/education/training/patc-courses/online-patc-systems-workshop-programming-marenostrum-4-0}}} +\item[] \emph{Introduction to HPC for Life Scientists}, on-site worskshop in context of PerMedCoE/BioExcel, presenter and Support attendee, March 2023 + \\{\small{\url{https://www.bsc.es/education/training/other-training/onsite-permedcoebioexcel-introduction-hpc-life-scientists/agenda}}} +\item[] \emph{About EESSI – European Environment for Scientific Software Installations}, talk, presenter, October 2023 + \\{\small{\url{https://www.multixscale.eu/training/}}} +\item[] \emph{Women in HPC 1st MAR Chapter Workshop}, organizer and presenter + \\{\small{\url{https://www.bsc.es/news/events/whpc-1st-mar-chapter-workshop}}} +\item[] \emph{Supporting HPC Centres: Challenges, horror stories and best practices}, EuroPAR, August 2024 + \\{\small{\url{https://easychair.org/smart-program/Euro-PAR2024/2024-08-30.html}}} +\item[] \emph{EESSI BoF Session}, Supercomputing, November 2024 + \\{\small{\url{https://sc24.conference-program.com/presentation/?id=bof126&sess=sess657}}} +\item[] \emph{Supporting cutting edge development of LAMMPS with EESSI}, speaker at Readiness of HPC Extreme-scale Applications Workshop at ISC25, June 2025 + \\{\small{\url{https://sc24.conference-program.com/presentation/?id=bof126&sess=sess657}}} +\item[] \emph{High Performance Computing Communities: Working Together as Regional and National Research Organizations}, Speaker and organizer, ISC25 and SC25 +\item[] \emph{Super(computing)heroes}, Organizer, SC25 + \\{\small{\url{https://sc25.conference-program.com/presentation/?id=bof129&sess=sess4747}}} +\item[] \emph{Introduction to EESSI}, online webinar, June 2025 + \\{\small{\url{https://www.youtube.com/watch?v=FvVbzKLn-C8}}} +\item[] \emph{System Administrators in HPC meet-up}, organizer, October 2025 + \\{\small{\url{https://www.eventbrite.com/e/sysadmins-in-hpc-meet-up-tickets-1642443074449?aff=oddtdtcreator}}} +\end{itemize} + +\subsection*{Publications} + +\begin{itemize} +\item[] H. Vela, M. Garcia-Gasulla, V. Lopez, D. Vicente \emph{Integration of a parallel efficiency tool into an HPC production system }. Poster presented at ISC23 under WHPC. +\end{itemize} + +\newpage diff --git a/isc26-EESSI/cv-kenneth.tex b/isc26-EESSI/cv-kenneth.tex new file mode 100644 index 0000000..c7e12ae --- /dev/null +++ b/isc26-EESSI/cv-kenneth.tex @@ -0,0 +1,111 @@ +%=============================================================================== +% Kenneth +%=============================================================================== + +\subsection{CV for Kenneth Hoste} +\begin{description} +\item[] HPC-UGent - Ghent University, Krijgslaan 299 - building S9, 9000 Ghent (Belgium) +\item[] kenneth.hoste@ugent.be +\end{description} + +\subsection*{Education} +\begin{description} + \item[] PhD in Engineering: Computer Science, 2010, Ghent University (Belgium) + \item[] Masters in Computer Science, 2005, Ghent University (Belgium) +\end{description} + +\subsection*{Professional Experience (Ghent University, Belgium)} +\begin{description} + \item[] 2025--present: Expert in Management of Central Software Installations for Scientific Computing + \item[] 2010--2025: HPC System Administrator +\end{description} + +\subsection*{Tools and Projects} + +\begin{description} + \item[] \emph{EuroHPC Federation Platform (EFP)} - {\small{\url{https://my-eurohpc.eu}}} + \\Lead for Federated Software Catalogue component (2025--present) + \item[] \emph{MultiXscale EuroHPC Centre-of-Excellence} - {\small{\url{https://www.multixscale.eu}}} + \\Project partner and work package leader (2023--present) + \item[] \emph{European Environment for Scientific Software Installations (EESSI)} - {\small{\url{https://eessi.io}}} + \\Core contributor (2020--present) + \\Chair of the EESSI Steering Committee (2025--present) + \item[] \emph{EasyBuild: (scientific) software build and installation framework} - {\small{\url{https://easybuild.io}}} + \\Lead developer \& release manager (2010--present) + \\Chair of the EasyBuild Steering Committee (2025 - present) +\end{description} + +\subsection*{Conferences, Workshops and Tutorials} + +\begin{description} + +\item[] \emph{EESSI webinar series}, co-organiser and presenter, May-June 2025 + \\{\small{\url{https://www.eessi.io/docs/training-events/2025/webinar-series-2025Q2}}} +\item[] \emph{Streaming Optimised Scientific Software: an Introduction to EESSI}, online tutorial in context of + MultiXscale EuroHPC CoE, co-organiser, December 2023 + \\{\small{\url{https://github.com/EESSI/docs/tree/main/talks/20231205-Introduction-to-EESSI-CASTIEL2}}} +\item[] \emph{Best Practices for CernVM-FS in HPC}, online tutorial in context of MultiXscale EuroHPC CoE, co-organiser + and presenter, December 2023 + \\{\small{\url{https://multixscale.github.io/cvmfs-tutorial-hpc-best-practices}}} +\item[] \emph{Introduction to CernVM-FS}, online tutorial, co-presenter, January 2021 + \\{\small{\url{https://cvmfs-contrib.github.io/cvmfs-tutorial-2021}}} +\item[] \emph{Maintaining a Modern Scientific Software Stack Made Easy with EasyBuild} tutorial at ISC'21 + ISC'22, + co-organiser, {\small{\url{https://tutorial.easybuild.io/2022-isc22}}} +\item[] (co-)organisation of \emph{EasyBuild User Meeting} workshops in + \href{https://github.com/easybuilders/easybuild/wiki/1st-EasyBuild-User-Meeting}{Ghent (2016)}, + \href{https://github.com/easybuilders/easybuild/wiki/2nd-EasyBuild-User-Meeting}{J\"ulich (2017)}, + \href{https://github.com/easybuilders/easybuild/wiki/3rd-EasyBuild-User-Meeting}{Amsterdam (2018)}, + \href{https://github.com/easybuilders/easybuild/wiki/4th-EasyBuild-User-Meeting}{Louvain-la-Neuve (2019)}, + \href{https://github.com/easybuilders/easybuild/wiki/5th-EasyBuild-User-Meeting}{Barcelona (2020)}, + online (\href{https://easybuild.io/eum21}{2021} + \href{https://easybuild.io/eum22}{2022}), + \href{https://easybuild.io/eum23}{London (2023)}, + \href{https://easybuild.io/eum24}{Umeå (2024)}, + \href{https://easybuild.io/eum25}{Jülich (2025)} -- + {\small{\url{https://easybuild.io/eum}}} + +\item[] co-organisaton of FOSDEM devroom on \emph{HPC, Big Data \& Data Science} (2014, 2016--2025), + \url{https://archive.fosdem.org/2025/schedule/track/hpc} +\item[] Online EasyBuild tutorial, June 2020, \url{https://tutorial.easybuild.io/2020-06-isc20/} +\item[] (co-)organisation of \emph{Getting Scientific Software Installed} Birds-of-a-Feather sessions at \href{http://2013.isc-hpc.com/isc13_ap/presentationdetails.php?t=contribution&o=2108&a=select&ra=eventdetails}{ISC'13}, \href{https://github.com/easybuilders/easybuild/wiki/SC13-BoF-session}{SC'13}, \href{https://github.com/easybuilders/easybuild/wiki/ISC'14-BoF-session}{ISC'14}, \href{https://github.com/easybuilders/easybuild/wiki/SC14-BoF-session}{SC'14}, \href{https://github.com/easybuilders/easybuild/wiki/SC15-BoF-session}{SC'15}, \href{https://github.com/easybuilders/easybuild/wiki/SC18-BoF-session-Getting-Scientific-Software-Installed}{SC'18}, \href{https://github.com/easybuilders/easybuild/wiki/SC19-BoF-session-Getting-Scientific-Software-Installed}{SC'19} +\item[] \emph{Modern Scientific Software Management using EasyBuild \& co}, invited tutorial at PRACE-VI-SEEM 2017 Spring School, Nicosia (Cyprus), April 2017 (\url{https://events.prace-ri.eu/event/601} - \href{https://users.ugent.be/~kehoste/EasyBuild_20170425_PRACE_Spring_School.pdf}{presentation} - recording \href{https://www.youtube.com/watch?v=5WNcTHRyDxk}{part 1}, \href{https://www.youtube.com/watch?v=fiv_p87w9XM}{part 2}) +%\item[] \emph{Introduction to EasyBuild: Getting Scientific Software Installed With Ease}, invited tutorial at HPC Advisory Council 2016, Lugano (Switzerland), March 2016 (\url{https://www.hpcadvisorycouncil.com/events/2016/swiss-workshop} - presentation \href{https://users.ugent.be/~kehoste/EasyBuild_HPCAC_intro_20160323.pdf}{part 1}, \href{https://users.ugent.be/~kehoste/EasyBuild_HPCAC_start_20160323.pdf}{part 2} - recording \href{https://www.youtube.com/watch?v=cL_UcPIIxzE}{part 1}, \href{https://www.youtube.com/watch?v=yo_KwlDtg0w}{part 2}) +\item[] (co-)organisation of 11 EasyBuild hackathons across Europe + Austin (US) (2011--2016) +\item[] co-organisation of the \href{http://sc14.supercomputing.org/schedule/event_detail-evid=wksp152.html}{1st International Workshop on \emph{HPC User Support Tools} (HUST-14)} at SC'14, New Orleans (USA), Nov. 2014 +%\item[] \emph{5 Years of Getting Scientific Software Installed Using}, presentation at HPC Knowledge Portal conference 2017, San Sebastian (Spain), June 2017 (\url{http://www.hpckp.org/index.php/conference/2017}) + +\end{description} + +\subsection*{Selected Publications} + +\paragraph{Conference Papers} + +\begin{itemize} + +\item[] P. Forai, K. Hoste, G. Peretti-Pezzi, B. Bode, \emph{Making Scientific Software Installation Reproducible On Cray Systems Using EasyBuild}. Cray User Group (CUG) 2016, London, UK, 2016. + +\item[] D. Alvarez, A. O'Cais, M. Geimer, K. Hoste, \emph{Scientific Software Management in Real Life: Deployment of EasyBuild on a Large Scale System}. Proceedings of the 3rd International Workshop on HPC User Support Tools, Salt Lake City, USA, 2016. + +\item[] M. Geimer, K. Hoste, R. McLay, +\emph{Modern Scientific Software Management Using EasyBuild and Lmod}. +Proceedings of the 1st International Workshop on HPC User Support Tools, New Orleans, USA, 2014. + +\item[] K. Hoste, J. Timmerman, A. Georges, S. De Weirdt, \emph{EasyBuild: building software with ease}. High Performance Computing, Networking, Storage and Analysis (SC Companion 2012), Salt Lake City, USA, 2012. + +\item[] K. Hoste, L. Eeckhout, \emph{COLE: Compiler Optimization Level Exploration}. Proceedings of the 6th International Symposium on Code Generation and Optimization (CGO 2008), Boston, USA, 2008. + + +\end{itemize} + +\paragraph{Journal Articles} + +\begin{itemize} + +\item[] B. Dröge, V. Holanda Rusu, K. Hoste, C. van Leeuwen, A. O'Cais, T. Röblitz, \emph{{EESSI}: {A cross‐platform + ready‐to‐use optimised scientific software stack}}. Software: Practice and Experience, 53(1):176-210, Jan. 2023, + \url{https://doi.org/10.1002/spe.3075} + +\item[] K. Hoste, L. Eeckhout, \emph{A Methodology for Analyzing Commercial Processor Performance Numbers}. IEEE Computer, 42(10):70-76, Oct. 2009. + +\item[] K. Hoste, L. Eeckhout, \emph{Microarchitecture-Independent Workload Characterization}. IEEE Micro, 27(3):63-72, May 2007. + +\end{itemize} diff --git a/isc26-EESSI/cv-lara.tex b/isc26-EESSI/cv-lara.tex new file mode 100644 index 0000000..ed0dab4 --- /dev/null +++ b/isc26-EESSI/cv-lara.tex @@ -0,0 +1,43 @@ +%=============================================================================== +% Lara +%=============================================================================== + +\subsection{CV for Lara Peeters} +\begin{description} +\item[] HPC-UGent - Ghent University +\item[] Krijgslaan 281 - building S9, 9000 Ghent (Belgium) +\item[] lara.peeters@ugent.be +\end{description} + +\subsection*{Education} +\begin{description} + \item[] Masters in Art History, 2021, KU Leuven (Belgium) + \item[] Masters in Digital Humanities, 2022, KU Leuven (Belgium) +\end{description} + +\subsection*{Professional Experience} +\begin{description} + \item[] 2023--present: Project employee , Ghent University (Belgium) +\end{description} + +\subsection*{Tools and Projects} + +\begin{itemize} + \item[] \emph{MultiXscale EuroHPC Centre-of-Excellence} + \\project partner and work package leader (2023--present) + \\{\small{\url{https://www.multixscale.eu}}} + \item[] \emph{European Environment for Scientific Software Installations (EESSI)} + \\active contributor (2023--present) + \\{\small{\url{https://eessi.io} - \url{https://eessi.io/docs}}} + \item[] \emph{EasyBuild: (scientific) software build and installation framework} + \\active contributor (2023--present) + \\{\small{\url{https://easybuild.io} - \url{https://docs.easybuild.io}}} +\end{itemize} + +\subsection*{Conferences, Workshops and Tutorials} + +\begin{itemize} + +\item[] \emph{Streaming optimized scientific software installations on any Linux distro with EESSI}, presentation at PackagingCon 2023, + Berlin (Germany), Oktober 2023 {\small{\url{https://cfp.packaging-con.org/2023/talk/9WAN3N/}}} +\end{itemize} diff --git a/isc26-EESSI/cv-sebastian.tex b/isc26-EESSI/cv-sebastian.tex new file mode 100644 index 0000000..89b7cf4 --- /dev/null +++ b/isc26-EESSI/cv-sebastian.tex @@ -0,0 +1,73 @@ +%=============================================================================== +% Sebastian +%=============================================================================== + +\subsection{CV for Sebastian Achilles} + + +\begin{description} +\item[] J\"ulich Supercomputing Centre (JSC) +\item[] Forschungszentrum J\"ulich GmbH +\item[] Wilhelm-Johnen-Stra{\ss}e +\item[] 52425 J\"ulich (Germany) +\item[] s.achilles@fz-juelich.de +\end{description} + +\subsection*{Education} + +\begin{description} +\item[] M.Sc. Simulation Sciences, RWTH Aachen University. +\item[] B.Sc. Physics, 2014, RWTH Aachen University. +\end{description} + +\subsection*{Professional Experience} + +\begin{description} +\item[] 2022 - present: Lead of Software Team, Jülich Supercomputing Center (JSC), Forschungszentrum +–present Jülich GmbH, Jülich. +\item[] 2022 - present: HPC and Cloud System engineer, Jülich Supercomputing Center (JSC), Forschungszentrum +–present Jülich GmbH, Jülich. +\item[] 2020 - 2022: Research Assistant, Jülich Supercomputing Center (JSC), Forschungszentrum +–present Jülich GmbH, Jülich. +\item[] 2017 - 2020: Postgraduate student, Aachen Institute for Advanced Study in Computational Engineering Science (AICES), RWTH Aachen University, Aachen. + +\end{description} + +\subsection*{Tools} + +\begin{itemize} +\item[] \textbf{EasyBuild}: (scientific) software build and installation framework +\item[] Release Manager (2022 - present) +\item[] Developer (2021 - present) +\item[] \url{https://easybuild.io} +\end{itemize} + +\subsection*{Conferences, Workshops and Tutorials} +\begin{itemize} +\item[] \emph{Maintaining a Modern Scientific Software Stack Made Easy with EasyBuild} tutorial at ISC'22, June 2022 (\url{https://easybuild.io/tutorial/isc22}) +\end{itemize} + +\subsection*{Selected Publications} + +\paragraph{Conference Papers} + +\begin{itemize} +\item[] Estela Suarez, Wolfgang Frings, Norbert Attig, Sebastian Achilles, Jacopo De Amicis, Thomas +Eickermann, Eric Gregory, Björn Hagemeier, Andreas Herten, Jenia Jitsev, Dorian Krause, +Edoardo Di Napoli, Jan Meinke, Kristel Michielsen, Bernd Mohr, Dirk Pleiter, Alexandre +Strube, and Thomas Lippert. \emph{Developing Exascale Computing at JSC.} NIC Symposium +2020. Vol. 50. Publication Series of the John von Neumann Institute for Computing (NIC) +NIC Series. NIC Symposium 2020, Jülich (Deutschland). +\end{itemize} + +\paragraph{Journal Papers} + +\begin{itemize} + \item [] Jonas B. Hauck, Carsten Honerkamp, Sebastian Achilles, and Dante M. Kennes. \emph{Electronic +instabilities in Penrose quasi-crystals: competition, coexistence and collaboration of order.} Aug. 31, 2020. + \item[] Xiao Zhang, Sebastian Achilles, Jan Winkelmann, Roland Haas, André Schleife, and Edoardo Di +Napoli. \emph{Solving the Bethe-Salpeter equation on massively parallel architectures.} June 15, 2020. +\end{itemize} + + +\newpage diff --git a/isc26-EESSI/cvs.tex b/isc26-EESSI/cvs.tex new file mode 100644 index 0000000..fab6395 --- /dev/null +++ b/isc26-EESSI/cvs.tex @@ -0,0 +1,5 @@ +\input{cv-kenneth.tex}\newpage +\input{cv-lara.tex}\newpage +\input{cv-helena.tex}\newpage +\input{cv-sebastian.tex}\newpage +\input{cv-alan.tex}\newpage diff --git a/isc26-EESSI/description.tex b/isc26-EESSI/description.tex new file mode 100644 index 0000000..dff2060 --- /dev/null +++ b/isc26-EESSI/description.tex @@ -0,0 +1,254 @@ + +%\comment{Upload detailed description of the tutorial content (2.5 pages maximum) +%- Overview and goals of the tutorial (takeaways for the audience)\\ +%- Detailed outline of the tutorial\\ +%- Description of the hands-on if applicable\\ +%- URLs to sample slides and other material\\ +%Upload Resume or CV of each presenter, including a list of the recently taught courses or tutorials (2 pages maximum per presenter). Please upload one pdf file that includes all presenters CVs.} + +Application developers, HPC sites, and researchers around the world +spend significant amounts of time on optimised software installations. +%Surveys conducted at the +%\emph{``Getting Scientific Software Installed''} Birds-of-a-Feather sessions that we (co-)organised at both SC and ISC +%reveal that this (still) involves a significant amount of `manual' effort. +% (and thus time/manpower). +%In the SC'19 survey, +%In the most recent survey (SC'19), +%less than half of the respondents consistently automate software installation, +%and only ~25\% automate environment module file generation. +%and only ~25\% automatically generate environment module files consistently, as opposed to composing them manually. +%Although the problems that arise with installing scientific software are ubiquitous, +Container-based approaches are often sub-optimal due to usability problems for distributed workloads. +Moreover, the increasing diversity in CPU architectures (the advent of systems powered by Arm CPUs, +and the new RISC-V CPU family on the horizon) is also making the use of container images less attractive. + +Despite these ubiquitous problems and the advent of modern tooling like EasyBuild \& Spack, +there still is inadequate collaboration in the HPC community to date. +%less than 30\% of respondents indicated that they +%work together with other HPC sites regarding software installation, even in most recent surveys. +%Since EasyBuild can help relieve these burdens and foster collaboration, a tutorial introducing this tool is highly relevant to ISC'22 attendees. +A tutorial that introduces an alternative that aims to tackle these problems is therefore very relevant to ISC'26 +attendees. +% KH: updated to use survey results from SC19 (Tue Feb 11th 17:43 CET) +%\comment{MG: Are these numbers still OK? I seem to remember that at SC'19 more people said that they were using Spack or EB.} +%\comment{KH: 25\% Spack, 15\% EasyBuild, see slide 4 in \url{http://easybuilders.github.io/easybuild/files/SC19_GSSI_BoF/GSSI_SC19_Survey_results.pdf}; w.r.t. collaboration, it's about 33\% if you add "yes" and "sometimes" (see slide 10)} + +%The main goal of this tutorial is to facilitate the daily work of its attendees. +% It will introduce EasyBuild as a tool for providing optimised, reproducible, multi-platform scientific software installations in a consistent, efficient, and user-friendly manner. We will explain the scope of EasyBuild and show attendees how to get started, +% how to tap into some advanced features, +% showcase its use on some large-scale systems, +% and show how to engage with the EasyBuild community. + +\subsection*{EESSI: the European Environment for Scientific Software Installations} + +EESSI\footnote{\href{https://eessi.io}{https://eessi.io}} is a collaborative project +between different partners in the HPC community, supported by the MultiXscale EuroHPC Centre of Excellence. +It provides a common stack of optimised scientific software installations for everything from laptops to HPC systems and cloud +infrastructures. The project combines existing well-established projects like +%EasyBuild\footnote{\href{https://easybuild.io}{https://easybuild.io}} to install software on top of a compatibility layer, +%Lmod\footnote{\href{https://lmod.readthedocs.io}{https://lmod.readthedocs.io}} to provide a user-friendly user interface to those installations, +%CernVM-FS\footnote{\href{https://cernvm.cern.ch/fs}{https://cernvm.cern.ch/fs}} to distribute the software installations to client systems, +%and ReFrame\footnote{\href{https://reframe-hpc.readthedocs.io}{https://reframe-hpc.readthedocs.io}} to test this shared software stack. +\emph{EasyBuild} to install software on top of a compatibility layer, +\emph{Lmod} to provide a user-friendly user interface to those installations, +\emph{CernVM-FS} to distribute the software installations to client systems, +and \emph{ReFrame} to test this shared software stack. + +%EasyBuild is used by well over 100 HPC sites worldwide (incl. JSC, CSCS, the Digital Research Alliance of Canada, LUMI, +%\ldots), +%has over 125 unique contributors on a yearly basis, +%and an active Slack channel with over 830 members. +%It has reached a critical mass with a welcoming and active community guaranteeing continued development and support, and +%a growing user community. + +%It has reached critical mass, a point where a large user base means more features and software being added regularly, with an accelerated adoption rate, and a welcoming and engaging community. +%Attendance at the yearly EasyBuild User Meetings has been growing steadily, with close to 100 attendees at the 7th (virtual) edition in Jan'22. +%As such, we strongly believe that EasyBuild, and the community behind it, will have a positive impact on the attendees' work. +% The tutorial content is designed to help with getting started quickly and benefit from EasyBuild right after the conference. +%The tutorial content will be designed to help the attendees getting started with the tool, so they can immediately benefit from it after the conference. + +It is an initiative built on the foundations of the EasyBuild community, which consists of hundreds of HPC sites and +has attracted contributors from all around the world. EESSI takes things a step further, beyond a tool to install scientific software (like +EasyBuild or Spack), by providing a ready-to-use uniform software stack that can be employed anywhere. + +\subsection*{Motivation \& goal} + +The motivation for EESSI is the observation that the landscape of computational science is changing in various ways. +Additional families of general-purpose microprocessors including Arm 64-bit (aarch64) and RISC-V on top of +well-established Intel and AMD processors (both x86\_64), and different types of GPUS (NVIDIA, AMD, Intel) are +increasing the diversity in system architectures. The rapid expansion of computational science beyond traditional +domains like physics and computational chemistry, including bioinformatics, Machine Learning~(ML), and Artificial +Intelligence~(AI) leads to a significant growth of the software stack that is used for running scientific +workloads. The emergence of commercial cloud infrastructure (Amazon EC2, Microsoft Azure, \ldots) and private cloud +infrastructure (OpenStack, \ldots) has competitive advantages over on-premise infrastructure for computational workloads, such +as near-instant availability, increased flexibility, a broader variety of hardware platforms, and faster access to new +generations of microprocessors. In contrast, the human resources that are available in HPC user support teams +to help scientists with getting the software they require installed (among many other things) remains limited. +These reasons indicate that there is a strong need for more collaboration on +building and installing scientific software to avoid duplicate work across researchers, software developers, +and HPC user support teams. + +%It goes one step further by providing a truly uniform software stack. +%It already has a wide spectrum of collaborators despite being a relatively young project. + +\begin{figure}[h] + \centering + \includegraphics[width=0.69\textwidth]{eessi-high-level-overview.png} + \caption{A high-level overview of the EESSI project.} + \label{fig:eessi-high-level-overview} +\end{figure} + +The main goal of EESSI is to provide a collection of scientific software installations that work across a wide range of +different platforms, including HPC clusters, cloud infrastructure, and personal workstations and laptops, without making +compromises on the performance of that software. +% +Software installations included in EESSI are optimized for specific generations of microprocessors by targeting a +variety of instruction set architectures (ISAs), like for example \texttt{x86\_64} processors supporting the +AVX-512 instruction set, and Arm processors that support SVE instructions. + +%To provide optimized installations of scientific software stacks for a diverse set of system architectures, the EESSI +%project consists of 3 layers, which are constructed by leveraging various established open source software projects, +%see Figure~\ref{fig:eessi-high-level-overview}. +To provide optimized installations of scientific software stacks for a diverse set of system architectures +The high-level design of EESSI consists of 3 layers, which are constructed by leveraging various established open source software projects, +see Figure~\ref{fig:eessi-high-level-overview}. At the time of writing, EESSI includes over 600 unique software projects +and supports 14 different CPU microarchitectures and 3 generations of NVIDIA GPUs, which totals to over 16,000 software installations. +% the filesystem layer to distribute the software stack; the compatibility layer to level the ground across different client operating systems; the software layer to run optimized applications and provided their dependencies. +%\begin{itemize} +%\item The filesystem layer uses CernVM-FS to distribute the EESSI software stack to client systems +%\item The compatibility layer levels the ground across different (versions of) the Linux operating system (OS) +% of client systems that use the software installations provided by EESSI. It consists of a limited set of libraries +% and tools that are installed in a non-standard filesystem location (a "prefix"), which were built from source for +% the supported CPU families using Gentoo Prefix. +%\item The top layer of EESSI is called the software layer, which contains the actual scientific software applications +% and their dependencies. Building, managing, and optimising the software installations included in the software +% layer is done using EasyBuild, a well-established software build and installation framework for managing +% (scientific) software stacks on High-Performance Computing (HPC) systems. Next to installing the software itself, +% EasyBuild also automatically generates environment module files. These files, which are essentially small Lua +% scripts, are consumed via Lmod, a modern implementation of the concept of environment modules which provides a +% user-friendly interface to end users of EESSI. The initialisation script that is included in EESSI +% automatically detects the CPU family and microarchitecture of a client system by leveraging either +% \texttt{archspec}, a small Python library, or \texttt{archdetect}, a minimal pure bash implementation of the same +% concept. +%\end{itemize} + +%By also covering some of the more advanced features (such as packaging builds, rpath-ing, user-space installations to complement/extend system installations) we want to convince more people to not only start using these tools, but also to actively join their (largely overlapping) respective communities, and maybe even to contribute back themselves in one way or another. We want to explicitly highlight the community-oriented aspects of both tools: + +%\paragraph{Target audience} +%This tutorial is intended for HPC and domain support teams, application developers, and end-users of HPC systems. EasyBuild can help relieve attendees from the time-consuming and tedious tasks involved with installing scientific software stacks, by automating software installations and module file generation, and by serving as an excellent platform for collaboration with other HPC sites and support teams. It can also be utilized by end users and developers to manage a (partial) software stack themselves in an efficient way. Lmod provides end users with a powerful yet flexible way of managing their working environment through various advanced features that are missing in the well-established Tcl-based environment modules tool, while providing a responsive user interface by supporting an easily-maintained module files cache. + +%\paragraph{Content Level} +%50\% introductory, 30\% intermediate, 20\% advanced + +%\paragraph{Prerequisites} +%Basic knowledge of using a Unix-style command line interface is desirable. Some familiarity with the issues that arise when compiling/installing scientific software and using environment modules is helpful, though not strictly necessary. A virtual machine image or access to a prepared environment on AWS (Amazon Web Services) will be provided for the hands-on, but no prior knowledge is required to use it. + +%\paragraph{Tutorial content} +%We will start of by sketching the traditional way in which HPC support teams deal with installing software, and outline the problems with it. Based on these observations, we will motivate the need for tools that support automation and offer a simple yet powerful user interface to efficiently tackle these problems, and explain how EasyBuild and Lmod fulfill these requirements. + +% The tutorial covers installing and configuring EasyBuild, and basic usage through hands-on demos and guided examples. It showcases the main features and capabilities, and also briefly describes an alternative hierarchical environment modules organisation supported by EasyBuild and its benefits and implications. +% %The installation and configuration of EasyBuild will be covered, and basic usage will be presented through demos and guided examples. The main features and capabilities will be outlined and explained, and we will briefly describe an alternative approach to organising environment module files in a hierarchical layout, present the benefits and implications of this approach, and show how EasyBuild supports this. +% Next we cover how to add support for new software (versions) to EasyBuild, how EasyBuild can be customized to adhere to site policies, and how software installations can be performed in distributed manner. +% We also compare EasyBuild with similar projects to help attendees decide which is the best approach for them. +% %The second part of the tutorial will cover some advanced topics including adding support to EasyBuild for building and \emph{TODO MISSING PART} +% %In this part we also compare with some competing projects so attendees can decide whether EasyBuild is the best choice for their use case. +% Extensive guided examples help consolidate the theory in real knowledge. +% %Special emphasis will be put on the guided examples, where the lessons can be consolidated in real knowledge. +% Finally, three EasyBuild case studies are presented. + +% The tutorial covers motivation, goals and the high-level design of EESSI, as well as the usage through hands-on demos and guided examples. It showcases the main features and capabilities, and also describes the various ways to access EESSI: native, as a production setup in HPC as well as without administrator rights. Next we cover how to different use cases of EESSI, such as portable worksflows, within a CI as well as adding software to EESSI. Troubleshooting access, Testing of the software and Performance evaluation of EESSI will also be covered. Extensive guided examples help consolidate the theory in real knowledge. + +\subsection*{EESSI Community + Recognition and Adoption} + +The EESSI community has been growing quickly in the last couple of years; the EESSI Slack currently has over 500 +members. +At Supercomputing 2024, EESSI received the \textbf{HPCWire Readers' Choice Award} +in the ``Best HPC Programming Tool or Technology" +category.\footnote{\href{https://www.eessi.io/docs/blog/2024/09/20/hpcwire-readers-choice-awards-2024/}{https://www.eessi.io/docs/blog/2024/09/20/hpcwire-readers-choice-awards-2024/}} + +EESSI has been broadly embraced in the European HPC ecosystem, and is already available on dozens of HPC +sites, including several of the EuroHPC JU +supercomputers.\footnote{\href{https://www.eessi.io/docs/systems/}{https://eessi.io/docs/systems}} + +In addition, it is currently being integrated in the upcoming \textbf{EuroHPC Federation Platform +(EFP)}\footnote{\href{https://my-eurohpc.eu}{https://my-eurohpc.eu}}, +as the Federated Software Catalogue that will provide a uniform software stack. + +\subsection*{Tutorial scope and organisation} + +This tutorial is an introduction to EESSI, covering its motivation, goals, high-level design, and the use cases it +enables (like portable workflows, usage a CI environment, building software on top of it, etc.). +Through guided hands-on exercises attendees will get a thorough understanding of the basics, +and be incentived and empowered to learn more and use it in their own daily workflow. + +%The main features and functionalities of EESSI are highlighted, as well as the different ways to access the software stack, such as native installation, use in an HPC +%production setup, or without administrator privileges. +%The tutorial also covers various use cases for EESSI, including +%portable workflows, integration into a CI environment, adding software to the EESSI, and also configuring GPU support. +%Troubleshooting access, testing the software, evaluating the performance of EESSI and configuring GPU support are also covered. +%Extensive instructor-led examples are used to put the theoretical knowledge into practice. + +% At the \textbf{J\"ulich Supercomputing Centre}, EasyBuild is used on multiple supercomputers and prototypes, including JUWELS and JURECA. We cover the highly customized setup used at JSC, the concept of \emph{build stages} used to structure the module +% system, and tools like EasyBuild hooks, a developer module and user installations, which facilitate collaboration on the software stack by over 30 experts. + +% \textbf{LUMI}, a EuroHPC JU pre-exascale system, is an HPE Cray EX system with AMD Instinct GPUs. +% We will outline why EasyBuild was selected for LUMI, and explain how +% the setup is focused on empowering users to create their own project software environment on top of the main stack, +% with the help of a distributed support team. In addition, we will show how EasyBuild +% integrates with the HPE Cray Programming Environment, and cover why and how the LUMI project maintains +% its own versions of toolchains and develops many LUMI-specific EasyBuild build recipes. + +%We will conclude by showing how EasyBuild is used in large production setups, and provide pointers on how to get in touch with its (growing) community for getting help or to contribute back. Additionally, competing projects will be briefly introduced and compared to EasyBuild, so the attendees can decide whether EasyBuild is the best choice for their use case. +% KH: OK, fixed \comment{MG: ``with the respective communities'' $\rightarrow$ ``with its (growing) user community''?} + +%\paragraph{Expected attendance} +%Previous events related to the tutorial topic we (co-)organized were well attended. The \emph{``Getting Scientific Software Installed"} Birds-of-a-Feather sessions at SC'13, ISC'14 and SC'14 were well attended, with 74, 40, and over 100~attendees, respectively. The 1st HPC User Support Tools (half-day) workshop we co-organized at SC'14, where a paper on EasyBuild and Lmod entitled \emph{``Modern Scientific Software Management Using EasyBuild and Lmod"} was presented, was attended by about 60 people. The recent 2nd EasyBuild User Meeting had 35 attendees as well as remote participants in the US, Canada, Europe and Australia {\bf not verified!}. + +%Based on this, the relevance of the topic to SC'17 attendees (see above), and the feedback we get from the EasyBuild/Lmod communities and other interested parties, we expect this tutorial to be well attended too. We strongly believe an attendance of 40-50 people is likely. + +%\paragraph{Ensuring cohesion} +%We will provide a single cohesive set of slides that covers the entire tutorial. This will be backed up by extensive documentation on the EasyBuild and Lmod documentation pages (\url{http://easybuild.readthedocs.io}, \url{http://lmod.readthedocs.io}). Additionally, a prepared virtual machine image---or access to an AWS instance---will be made available, which will be used during the tutorial for the hands-on sessions. + + +%\paragraph{Previous talks and tutorials, and update for SC'17} +% EasyBuild has been presented at SC and ISC BoFs (\emph{Getting Scientific Software Installed} in SC'13, SC'14, ISC'14, +% SC'15, SC'18, and SC'19) and Workshops (PyHPC'12, HUST'14, and HUST'16). This tutorial was also presented +% (fully online, half-day) at ISC'21 which was well attended with over 25 participants and in-person (half-day) at ISC'22 with about 20 participants. +% The feedback and attendance has always been positive, which is the primary motivation for this tutorial proposal. The organisers have been actively training user support staff and administrators on EasyBuild in various events in the US and Europe since 2011. + +The tutorial organisers have successfully and extensively worked together on several presentations, +events, and hands-on tutorials and workshops on the topic under consideration several times in recent years. +A common template +%will be created to guarantee +will guarantee +a coherent visual appearance, and using our previous experience, we will provide high-quality content and materials. +Moreover, the presenters have experience in organising tutorials in the context of SC and ISC, which helps to understand +%what is expected +expectations +and how to structure the material +to help ISC attendees to get the most out of it. + +%\paragraph{Sample slides} + +%\begin{itemize} +%\item \url{http://sourceforge.net/projects/lmod/files/Lmod_tutorial_sea_2014.pdf} +%\item \url{http://users.ugent.be/~kehoste/Lmod-intro_20150209.pdf} +%\item \url{http://users.ugent.be/~kehoste/EasyBuild-intro-Basel_20150209.pdf} +%\item \url{http://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html} +%\item \url{http://hust16.github.io/presentations/eb-hust16.pdf} +%\end{itemize} + +%\comment{MG: According to the RFT, they expect info regarding the target audience, percentage of content split as beginner, intermediate, advanced, and estimated number of attendees (with short explanation if applicable). However, I have no clue on the latter...} +%\comment{KH: Based on attendance at user meetings (and Spack tutorials), I think an estimated attendance of 50-100 people at ISC'19 is reasonable. +% Spack has about 20-30 attendees at last years ISC I think (but Spack is more US focused), while at SC they had 50-75 attendees I think.} +%\comment{MG: 50-100 is a lot for ISC, I would say. The overall number of tutorial attendees is much lower than at SC, and the audience is also a bit different. I would probably say 20-50 -- and if the room in the end is overfull...} +%\comment{KH: OK for 20-50, let's prove ourselves wrong. ;) } + + +%KH: So you would go with 20-50? Is that ambitious enough? +%MG: I think so. Attendance is lower than at SC. And more business people... +%KH: I'm OK with 20-50, so let's go with that... +%MG: With my initial comment, I wanted to point out that these sections (target audience, percentage, etc.) are expected as part of the tutorial proposal... So where should we put it? +%KH: the form ask you to pick 20-50 or 50-80, I don't think it needs to go in the PDF (but we can add it there, sure). After the "Travel support" section? +%MG: Well, at some places it suggests to copy from the proposal ;) +%KH: Let's add a small "Expected attendance" section, mentioning 20-50 + motivation for that number (based on attendance at user meetings (50+), PRACE tutorial ~30 I think in 2017), etc.) diff --git a/isc26-EESSI/eessi-high-level-overview.png b/isc26-EESSI/eessi-high-level-overview.png new file mode 100644 index 0000000..c270cc7 Binary files /dev/null and b/isc26-EESSI/eessi-high-level-overview.png differ diff --git a/isc26-EESSI/eessi-logo.png b/isc26-EESSI/eessi-logo.png new file mode 100644 index 0000000..1bd4b6f Binary files /dev/null and b/isc26-EESSI/eessi-logo.png differ diff --git a/isc26-EESSI/handson.tex b/isc26-EESSI/handson.tex new file mode 100644 index 0000000..1f2d86b --- /dev/null +++ b/isc26-EESSI/handson.tex @@ -0,0 +1,42 @@ +A significant portion of the tutorial time is used for guided examples and hands-on, +as they are fundamental to exposing the benefits of EESSI. +This highlights the practical nature of the tutorial. +Before each example session the theoretical concepts are explained through a consistent set of presentation materials. +The guided examples will be carried out in a pre-configured environment on virtual machines in the Cloud that can be +accessed by the +attendees from their laptops using SSH or a standard internet browser. +%The examples cover accessing EESSI in different ways such as native, in a production HPC setup as well as inside +%containers, the use cases of EESSI, adding support for new software to EESSI, troubleshooting, GPU support, selected +%advanced features, and how to contribute to EESSI. +% Each example builds on the previous one and hence also showcases a typical workflow. +%The guided examples will happen mostly in the proximity of a coffee break allowing the attendees to continue +%a bit during the coffee break should they want to and ensuring the maximum benefit from the tutorial. + +The presentation material for this tutorial is based on previous tutorials, for example the EESSI webinar series +from May-June~2025 (slides + recordings available at +\url{https://eessi.io/docs/training-events/2025/webinar-series-2025Q2}). + +It should be noted that even though this tutorial has never been presented at ISC, all the authors have extensive +experience in other tutorials and workshops, both inside and outside the ISC and SC conference series, and both +in-person and through online webinars. +Additionally, they engaged in other collaborative efforts within the EESSI and EasyBuild community, like hackathons. +Providing coherent and streamlined tutorial is well within the organisers' experience. + +% This tutorial was presented in the half-day format at ISC'22 +% see \url{https://easybuilders.github.io/easybuild-tutorial/2022-isc22}. +% The authors have extensive experience in other tutorials and workshops, +% and are involved in other collaborative efforts within the EasyBuild community. +% Providing a coherent and streamlined tutorial is well within the authors' experience. + + +%The guided examples sessions provided in this tutorial are fundamental to exposing the benefits of EasyBuild. The attendees will be incrementally walked through an example which they can choose to repeat it for themselves in a prepared environment (supported by the tutorial team). The set of examples are structured sequentially, building on top of each other to follow the typical workflow for a user. Detail will be gradually incremented, with each example exposing deeper capabilities, ensuring that all the attendees learn the concepts in an organised and clear way. + +%The examples will be carried out in pre-configured environments available online and accessed using the attendees laptops via SSH. They will cover installation and configuration of EasyBuild, basic EasyBuild usage, adding support for new software to EasyBuild, and how to contribute to the project. The guided examples will happen mostly in the proximity of the coffee break, allowing scope for attendees to use that time should they want to, ensuring the maximum benefit for the tutorial. + +%Half of the tutorial time will be focused on the guided examples, highlighting the practical nature of the tutorial. +%Before each guided example session the theoretical concepts will be explained using a consistent set of slides. The +%tutorial contents will be (loosely) based on the tutorial that was given at the PRACE VI-SEEM 2017 Spring School (see +%\url{http://users.ugent.be/~kehoste/EasyBuild_20170425_PRACE_Spring_School.pdf}, relevant subset uploaded to the +%Linklings submission system), where the presentation material will be updated to focus on EasyBuild, reflect recent +%changes in EasyBuild, include guided examples, and integrate with the EasyBuild documentation hosted at +%\url{https://docs.easybuild.io}. diff --git a/isc26-EESSI/isc26-eessi-tutorial.pdf b/isc26-EESSI/isc26-eessi-tutorial.pdf new file mode 100644 index 0000000..7da13b6 Binary files /dev/null and b/isc26-EESSI/isc26-eessi-tutorial.pdf differ diff --git a/isc26-EESSI/main.tex b/isc26-EESSI/main.tex new file mode 100644 index 0000000..e312c7f --- /dev/null +++ b/isc26-EESSI/main.tex @@ -0,0 +1,188 @@ +\documentclass[a4paper,11pt]{article} + +% Allow coloured url links and hyperlinked table of contents etc.... +\usepackage[colorlinks=true, linkcolor=gray, urlcolor=blue, citecolor=black]{hyperref} +\usepackage{authblk} +\usepackage{todonotes} + +\usepackage{enumitem} +\setlist{itemsep=2pt, parsep=2pt} + +\setlength{\textwidth}{6.5in} +\setlength{\textheight}{8.6in} +\setlength{\topmargin}{0.0in} +\setlength{\headheight}{0.0in} +\setlength{\oddsidemargin}{0.0in} +\setlength{\evensidemargin}{0.0in} + +\newcommand{\ignore}[1]{} + +\newif\ifremark +\long\def\remark#1{ +\ifremark% + \begingroup% + \dimen0=\columnwidth + \advance\dimen0 by -1in% + \setbox0=\hbox{\parbox[b]{\dimen0}{\protect\em #1}} + \dimen1=\ht0\advance\dimen1 by 2pt% + \dimen2=\dp0\advance\dimen2 by 2pt% + \vskip 0.25pt% + \hbox to \columnwidth{% + \vrule height\dimen1 width 3pt depth\dimen2% + \hss\copy0\hss% + \vrule height\dimen1 width 3pt depth\dimen2% + }% + \endgroup% +\fi} + +\remarktrue +%%\remarkfalse + +\newenvironment{myenumerate} +{ \begin{enumerate} + \setlength{\itemsep}{0pt} + \setlength{\parskip}{0pt} + \setlength{\parsep}{0pt} } +{ \end{enumerate} } + +\renewcommand{\baselinestretch}{0.95} +\newcommand{\comment}[1]{\todo[inline]{#1}} + + +\begin{document} + +%=============================================================================== + +\title{ + \centering + \includegraphics[width=0.32\textwidth]{eessi-logo.png}\\[0.5em] + \textbf{\Large Introduction to EESSI:\\the European Environment for Scientific Software Installations}\\ +\vspace{2mm}{\large \emph{ISC'26 tutorial proposal}} +} + +\date{} + +\author[1]{Kenneth Hoste} +\author[1]{Lara Peeters} +\author[3]{Helena Vela Beltran} +\author[2]{Sebastian Achilles} +\author[1]{Alan \'O Cais} +\affil[1]{HPC-UGent, Ghent University, Belgium} +\affil[2]{Do IT Now Spain} +\affil[3]{J\"ulich Supercomputing Centre, Forschungszentrum J\"ulich GmbH, Germany} + + +\renewcommand\Authands{ and } + +\maketitle + +%=============================================================================== + +\section*{Abstract} +\input{abstract.tex} + +\paragraph{Topic area:} Programming Environments \& System Software, Introductory Tutorial + +\paragraph{Keywords:} Computing Infrastructure, Reproducibility, Scientific Software Development, System Software \& Runtime Systems + + +%=============================================================================== + +\newpage + +%=============================================================================== + +%\section*{Scope and Tools} +% +%\subsection*{Scope} +% +%Building (scientific) software from source code is preferred in an HPC setting +%where performance is critical. Due to increasing diversity of HPC users, the adoption of community codes and the expansion of the typical application software stack (e.g., libraries for MPI, linear algebra functions, solvers, I/O libraries, hardware abstraction layers, accelerator frameworks,\ldots) delivering a reliable, optimised build becomes increasingly complex. Further complicating matters is that application users often require reproducibility of this same software stack between architectures since they may be using a number of different HPC sites at once. +% +%Ensuring an optimally performing build of an application across architectures places an enormous burden firstly on the development team of the application itself and then on HPC user support teams to reproduce this build in their own unique environments. Application users and developers also frequently have customisations of applications for their own use case, requiring them to also shoulder this burden across multiple sites. +% +%In addition, an HPC workflow or set of HPC tools can easily rely on conflicting versions or configurations of the same libraries. An adequate solution for this (in common use in HPC environments) is the concept of module files. However, most tools available for consuming these module files and setting up the user environment based on them have their shortcomings and problems, and are frequently no longer actively maintained or developed for increasingly complex hardware environments. +% +%This tutorial covers two open-source tools that aim to tackle these issues: \textbf{EasyBuild}, a software build and installation framework that can address the needs of the developer, the user and the user support teams; and \textbf{Lmod}, a modern and +%feature-rich modules tool. +% +%\subsection*{EasyBuild (\url{http://hpcugent.github.io/easybuild})} +% +%\textit{EasyBuild} eases the often difficult task of building and installing (scientific) +%software, by providing a framework with which this task can be automated with a limited +%amount of work. It also serves as a platform for collaboration, enabling a community +%that works together by sharing implementations of build-and-install procedures and +%specifications. It can be used to install multiple versions of applications and +%libraries side-by-side, by installing them to a dedicated installation prefix and generating +%corresponding module files. EasyBuild features a plug-in architecture w.r.t.\ +%support for software packages, compilers, and libraries (MPI, BLAS, LAPACK, etc). +% +%The EasyBuild framework is written in Python, and provides functionality commonly +%required when building and installing software. Generic or application-specific +%build-and-install procedures can be implemented in a concise way, and can be easily shared with +%others. As such, it is a very powerful and valuable tool for both user support teams +%and end users of HPC infrastructure, to efficiently deal with the often error-prone +%and time-consuming task of getting scientific software installed (correctly). +% +%\subsection*{Lmod (\url{https://www.tacc.utexas.edu/research-development/tacc-projects/lmod})} +% +%\textit{Lmod} is a modern replacement for the well-established (Tcl-based) Environment +%Modules system. Its main goal is to provide users easy access +%to their (scientific) software stack, without hindering experts. Lmod +%implements the system admins (or in our case the EasyBuild) point of view about how the software +%stack and its components relate to each other. It is the handshake +%between the software stack installers and end users, and delivers to the users +%the ability to configure and manage their working software stack +%while benefiting from the hard work and disciplined building of the +%system. Lmod is feature-rich, well supported, continuously enhanced, +%mostly compatible with the traditional Tcl-based environment modules tool, and is backed +%by a vibrant community. +% +%Lmod like other user environment management systems allows users to +%``load'' modules of their choosing to access compilers, MPI stacks, +%applications and libraries and also unload/reload as necessary to +%meet their software needs, next to other more advanced features that make +%it a powerful and flexible alternative to other established module tools. +% +% +%\newpage +%\setcounter{section}{1} +\section{Detailed Description of the Tutorial} +\input{description.tex} + +\subsection*{Target audience} +\input{audience.tex} +%\newpage + +\input{outline.tex} +%\newpage + +\subsection*{Hands-on and presentation materials} +\input{handson.tex} + +\newpage +\section{Logistics} + +\subsection*{Content level} +60\% beginner, 25\% intermediate, 15\% advanced + +\subsection*{Prerequisites} +\input{prerequisites.tex} + +\subsection*{Expected attendance} +\input{attendance.tex} + +%\subsection*{Travel support} +%\input{travelsupport.tex} +\newpage + +\section{CVs} +\input{cvs.tex} +%\newpage + +%\section{Release Statement} +%\input{release.tex} +%\newpage + + +\end{document} diff --git a/isc26-EESSI/outline.tex b/isc26-EESSI/outline.tex new file mode 100644 index 0000000..a828dbd --- /dev/null +++ b/isc26-EESSI/outline.tex @@ -0,0 +1,85 @@ +\subsection*{Outline} + +We believe that a half-day format would be most appropriate for this tutorial, as it would allow ample time for guided +examples and hands-on practice, in addition to providing a comprehensive overview of EESSI. The tutorial outline for the half-day format is included below. + +% We prefer a full-day format for this tutorial, since this allows for spending sufficient time +% on guided examples and hands-on, as well as an in-depth look in EESSI. If necessary we can also +% present a condensed version in a half-day format. +% +% The tutorial outline for both the full-day and half-day formats is included below. + +% \subsubsection*{Full-day format (7 hours of tutorial content)} +% +% \begin{itemize}[style=standard, labelwidth=1.9cm] +% \item [09:00-10:00] \emph{(60min)} Introduction to EESSI +% \begin{itemize} +% \item Motivation + goals (15min) +% \item High-level design + inspiration (15min) +% \item Using EESSI (15min) +% \item MultiXscale (funding) (5min) +% \item EESSI community (10min) +% \end{itemize} +% \item [10:00-11:00] \emph{(60min)} Hands-on: Using EESSI +% \item [11:00-11:30] \emph{(30min coffee break)} +% \item [11:30-13:00] \emph{(90min)} Getting access to EESSI, incl. hands-on +% \begin{itemize} +% \item native installation (20min) +% \item production setup in HPC: proxy + mirror server (30min) +% \begin{itemize} +% \item Stratum-1 setup + init sync +% \item setup proxy + use +% \item show impact on start-up performance +% \end{itemize} +% \item alternative access mechanisms (without administrator rights): containers, cvmfsexec (20min) +% \item use private mirror server (20min) +% \end{itemize} +% \item [13:00-14:00] \emph{(60min lunch break)} +% \item [14:00-15:00] Use cases, incl. hands-on (60min) +% \begin{itemize} +% \item Uniform software env +% \item Portable workflows +% \item EESSI in CI env +% \item Facilitate training +% \item Collab with dev +% \end{itemize} +% \item [15:00-16:00] Adding software to EESSI, incl. hands-on (60min) +% \item [16:00-16:30] \emph{(30min coffee break)} +% \item [16:30-16:50] Troubleshooting access to EESSI, incl. hands-on (20min) +% \item [16:50-16:10] Testing software in EESSI, test suite (20min) +% \item [17:10-17:30] Performance evaluation of EESSI (20min) +% \item [17:30-17:50] Configure GPU support (20min) +% \item [17:50-18:00] \emph{(10min)} Q\&A + closing remarks +% +% \end{itemize} + +%=============================================================================== + +\subsubsection*{Half-day format (3.5 hours of tutorial content)} + +\begin{itemize}[style=standard, labelwidth=1.9cm] + + + \item [00:00-00:30] \emph{(30min)} Introduction to EESSI: motivation, design, getting access, basic usage, use + cases, high-level comparison with other software installation tools +% \begin{itemize} +% \item Motivation + goals (10min) +% \item High-level design + inspiration (15min) +% \item EuroHPC MultiXscale CoE (funding) (5min) +% \end{itemize} + \item [00:30-01:00] \emph{(30min)} Initial hands-on: Running software using EESSI in a virtual Slurm cluster +% \begin{itemize} +% \item Using a native installation (10min) +% \item Hands-on (20min) +% \item Alternative access mechanisms: containers, cvmfsexec (15min) +% \end{itemize} + \item [01:00-01:45] \emph{(45min)} Installing software on top of EESSI: Python virtual environments, using EESSI-extend (15 min. presentation + 30 min. hands-on). + \item [01:45-02:00] \emph{(15min)} Using EESSI in Continuous Integration (CI) environments (presentation) + \item [02:00-02:30] \emph{(30min coffee break)} + \item [02:30-03:15] \emph{(45min)} Using EESSI in CI: hands-on exercises with GitHub Actions + \item [03:15-03:45] \emph{(30min)} Advanced topics (incl. MPI, GPU, using Spack on top of EESSI) + \item [03:45-04:00] \emph{(15min)} Q\&A + closing remarks + +\end{itemize} + +%\newpage diff --git a/isc26-EESSI/prerequisites.tex b/isc26-EESSI/prerequisites.tex new file mode 100644 index 0000000..06622e4 --- /dev/null +++ b/isc26-EESSI/prerequisites.tex @@ -0,0 +1,7 @@ +Attendees wishing to participate in the guided hands-on exercises are expected to use their +own laptop to access a prepared environment through a standard internet browser. +%with a working SSH client. + +Detailed information on how to prepare for this tutorial will be provided +through the tutorial website, similar to +\url{https://tutorial.easybuild.io/2022-isc22}. diff --git a/isc26-EESSI/travelsupport.tex b/isc26-EESSI/travelsupport.tex new file mode 100644 index 0000000..30adf3b --- /dev/null +++ b/isc26-EESSI/travelsupport.tex @@ -0,0 +1,2 @@ +The tutorial presenters request free passes for their tutorial, +as well as travel support for two presenters, one from Spain, one from Belgium.