diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 245c482..95f334a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Compile LaTeX document (EESSI) uses: xu-cheng/latex-action@f1ca82cbed861b3534e2997dd584944f55b884ed with: @@ -15,7 +15,7 @@ jobs: args: "-output-directory=build -pdf" latexmk_shell_escape: true - name: Store produce PDFs (EESSI) - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: EESSI-ISC24-tutorial path: isc24/EESSI/build/main.pdf @@ -27,7 +27,19 @@ jobs: args: "-output-directory=build -pdf" latexmk_shell_escape: true - name: Store produce PDFs (CernVM-FS) - uses: actions/upload-artifact@v2 + 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 diff --git a/sc24/EESSI/Makefile b/sc24/EESSI/Makefile new file mode 100644 index 0000000..5dc0022 --- /dev/null +++ b/sc24/EESSI/Makefile @@ -0,0 +1,2 @@ +all: + pdflatex main.tex diff --git a/sc24/EESSI/abstract.tex b/sc24/EESSI/abstract.tex new file mode 100644 index 0000000..1d1780a --- /dev/null +++ b/sc24/EESSI/abstract.tex @@ -0,0 +1,18 @@ +Can we avoid having to install a broad range of scientific software from scratch on every HPC cluster or +cloud instance we use without compromising on performance? + +Installing scientific software for supercomputers is typically a tedious, time-consuming task (especially as the +HPC user community becomes more diverse, computational science expands, system architecture diversity increases, the +application software stack deepens and interest in cloud computing for scientific research surges). +Delivering optimised software installations, and providing access to them reliably and reproducibly, +is a highly non-trivial task impacting application developers, HPC user support, and users themselves. + +This tutorial will show attendees how they can stream optimized scientific software instead. +The tutorial introduces the European Environment for Scientific Software Installations (\emph{EESSI}), a collaboration +between European HPC sites \& industry partners, with the common goal of creating a shared repository of scientific +software installations usable on a variety of systems, regardless of Linux flavour or processor architecture, or +whether it's a full size HPC cluster, the cloud, or a desktop. + +We cover the usage of EESSI, different access methods, adding software to EESSI, and highlight some advanced features. +We also show how to engage with the community and contribute back. + diff --git a/sc24/EESSI/attendance.tex b/sc24/EESSI/attendance.tex new file mode 100644 index 0000000..34e29e9 --- /dev/null +++ b/sc24/EESSI/attendance.tex @@ -0,0 +1,20 @@ +\subsection*{Expected attendance} + +Based on attendance at previous EESSI and EasyBuild events, including the yearly EasyBuild User Meetings (over 30 +attendees in the last physical edition in 2023, close to 100 in 2021 and 2022 in an online setting) and previous +related tutorials (PRACE-VI-SEEM 2017 Spring School with 25-30 attendees, a free online EasyBuild tutorial in June'20 +with about 100 attendees, the half-day ISC'21 tutorial with over 25 attendees, and the in-person (half-day) ISC'22 +EasyBuild tutorial with about 20 attendees, and an online EESSI tutorial in Dec'23 had over 130 registrations), we +anticipate this EESSI tutorial to be well attended with 20-50 attendees. + +%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/sc24/EESSI/cv-alan.tex b/sc24/EESSI/cv-alan.tex new file mode 100644 index 0000000..6cfd3ba --- /dev/null +++ b/sc24/EESSI/cv-alan.tex @@ -0,0 +1,92 @@ +%=============================================================================== +% Alan +%=============================================================================== + +\subsection{CV for Alan \'O Cais} + +\begin{description} +\item[] Centre Européen de Calcul Atomique et Moléculaire (CECAM) +\item[] Avenue de Forel 2, BCH 3103 +\item[] 1015 Lausanne, Switzerland +\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[] 2022 - present: Scientific Software Engineer with CECAM +\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/sc24/EESSI/cv-kenneth.tex b/sc24/EESSI/cv-kenneth.tex new file mode 100644 index 0000000..f19c55b --- /dev/null +++ b/sc24/EESSI/cv-kenneth.tex @@ -0,0 +1,106 @@ +%=============================================================================== +% Kenneth +%=============================================================================== + +\subsection{CV for Kenneth Hoste} +\begin{description} +\item[] HPC-UGent - Ghent University +\item[] Krijgslaan 281 - 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} +\begin{description} + \item[] 2010--present: HPC System Administrator, 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 (2020--present) + \\{\small{\url{https://eessi.io} - \url{https://eessi.io/docs}}} + \item[] \emph{EasyBuild: (scientific) software build and installation framework} + \\lead developer \& release manager (2010--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 + 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-organisor, {\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}), + and \href{https://easybuild.io/eum23}{London (2023)}, + {\small{\url{https://easybuild.io/eum}}} + +\item[] co-organisaton of FOSDEM devroom on \emph{HPC, Big Data \& Data Science} (2014, 2016--2023), + \url{https://archive.fosdem.org/2023/schedule/track/hpc_big_data_and_data_science} +\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{itemize} + +\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/sc24/EESSI/cv-sebastian.tex b/sc24/EESSI/cv-sebastian.tex new file mode 100644 index 0000000..89b7cf4 --- /dev/null +++ b/sc24/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/sc24/EESSI/cvs.tex b/sc24/EESSI/cvs.tex new file mode 100644 index 0000000..4168429 --- /dev/null +++ b/sc24/EESSI/cvs.tex @@ -0,0 +1,4 @@ +\section{CVs} +% \input{cv-sebastian.tex}\newpage +\input{cv-alan.tex}\newpage +\input{cv-kenneth.tex}\newpage diff --git a/sc24/EESSI/description.tex b/sc24/EESSI/description.tex new file mode 100644 index 0000000..959529e --- /dev/null +++ b/sc24/EESSI/description.tex @@ -0,0 +1,125 @@ +\section*{Tutorial description} + +The \textbf{European Environment for Scientific Software Installations +(EESSI)}\footnote{\href{https://eessi.io}{https://eessi.io}} project is a collaborative project +between different partners in the HPC community supported by the MultiXscale EuroHPC Centre of Excellence to build a +common stack of optimised scientific software installations for everything from laptops to big HPC systems and cloud +infrastructures. +The project uses EasyBuild to install software on top of a compatibility layer (to give independence from the underlying +OS), and uses CernVM-FS to +distribute the software installations to client systems. + +EESSI is motivated by the observation that the landscape of computational science is changing in +various ways: increasing hardware and user community diversity, and the adoption of public and commercial cloud +infrastructure by research communities. + +The critical benefit is that \textbf{EESSI is providing the +installations themselves}, \textit{not} installation recipes. +Environment modules are used as the user interface, and automatic +detection of the target system architecture is done. +This means that the binary files that make up the optimised +scientific software installation that the users require are streamed (via CernVM-FS) to the host +platform as they are accessed. + +EESSI is an initiative built on the foundations of the EasyBuild community (which is used by well over +100 HPC sites worldwide (incl. JSC, CSCS, the Digital Research Alliance of Canada, LUMI,\ldots)), and 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. + +\subsection*{Tutorial Goals} + +EESSI provides 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. + +The audience will learn how software installations included in EESSI are optimized for specific generations +of microprocessors by targeting a +variety of instruction set architectures (ISAs). The will learn how to access EESSI in different ways such as native, +in a production HPC setup as well as inside containers. + +The hands-on components will showcase the use cases of EESSI, how to add support for new software, +troubleshooting, GPU support, and how they can contribute to EESSI. +% They will also learn that EESSI +% project consists of 3 layers, which are constructed by leveraging various open source software projects: +% \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. Environment modules 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 the bash tool +% \texttt{archdetect}. +% \end{itemize} + +\subsection*{Relevance for conference attendees} + +Application developers, HPC sites, and end users %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. +In the SC'19 survey, +less than half of the respondents consistently automate software installation, +and only ~25\% automate environment module file generation. +Despite these ubiquitous problems, +there is still inadequate collaboration +between HPC sites to date: less than 30\% of respondents indicated that they +work together with other HPC sites regarding software installation, even in most recent surveys. +Hence, an EESSI tutorial is very relevant to SC'24 attendees as this tool helps relieve these burdens and fosters +collaboration. + +\subsection*{Target audience} +This tutorial is intended for +\begin{itemize} + \item End users 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 System managers, administrators and user support teams, responsible for operational aspects of HPC systems \& + concerned about hardware-optimised scientific software installations; + \item Cloud \& CI users, who want to use a common stack of optimised scientific software; + \item System manufacturers and integrators interested in state-of-the-art software installation tools, who want to + leverage the collective expertise incorporated in EESSI and EasyBuild. +\end{itemize} + +\subsection*{Content level} +60\% beginner, 40\% intermediate + +\subsection*{Audience Prerequisites} +Attendees wishing to participate in the guided examples are expected to use their +own notebook computers 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/practical_info/}. + +\subsection*{Tutorial content} +The tutorial covers several critical aspects of EESSI, including its motivation, goals, and high-level design, as +demonstrated through hands-on demonstrations and guided illustrations. 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. +Extensive instructor-led examples are used to put the theoretical knowledge into practice. + +\subsection*{Cohesion measures} +The organisers have successfully worked together on a number of papers, presentation materials, +and hands-on tutorials on the topic under consideration several times in recent years. +A common template +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 +expectations +and how to structure the material +to help SC attendees to get the most out of it. + +\subsection*{Previous editions and potential updates} +The tutorial is based on previous tutorials archived at +\url{https://github.com/EESSI/docs/tree/main/talks/20231205-Introduction-to-EESSI-CASTIEL2}, +but will be updated with new developments in EESSI and EasyBuild. +This tutorial will also be made available on that site, and will also refer to the EESSI documentation on +\url{https://www.eessi.io/docs}. +While this tutorial has never been presented at SC, the authors have extensive +experience in other tutorials and workshops, both inside and outside the SC and ISC conference series. \ No newline at end of file diff --git a/sc24/EESSI/handson.tex b/sc24/EESSI/handson.tex new file mode 100644 index 0000000..fff713d --- /dev/null +++ b/sc24/EESSI/handson.tex @@ -0,0 +1,33 @@ +\subsection*{Hands-on feasibility analysis} +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. +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. + +% 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/sc24/EESSI/main.tex b/sc24/EESSI/main.tex new file mode 100644 index 0000000..ecd2972 --- /dev/null +++ b/sc24/EESSI/main.tex @@ -0,0 +1,102 @@ +\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{ + \textbf{\LARGE Streaming Optimised Scientific Software: an Introduction to EESSI}\\ +\vspace{2mm}{\Large \emph{SC'24 tutorial proposal}} +} + +\date{} + +% \author[1]{Sebastian Achilles} +\author[1]{Kenneth Hoste} +\author[2]{Alan \'O Cais} +% \affil[1]{J\"ulich Supercomputing Centre, Forschungszentrum J\"ulich GmbH, Germany} +\affil[1]{HPC-UGent, Ghent University, Belgium} +\affil[2]{Centre Européen de Calcul Atomique et Moléculaire (CECAM), Switzerland} + + +\renewcommand\Authands{ and } + +\maketitle + +%=============================================================================== + +\section*{Abstract} +\input{abstract.tex} + +\paragraph{Topic area:} Programming Environments \& System Software, Introductory Tutorial + +\paragraph{Keywords:} Computing Infrastructure, Containers in HPC, Reproducibility, Scientific Software Development, System Software \& Runtime Systems + + +%=============================================================================== +\newpage +\input{description.tex} % 2 pages max +\input{handson.tex} % an additional 0.5 page + +\include{outline.tex} +% \input{attendance.tex} % Not requested for SC24 + +\include{cvs.tex} +\newpage + +\subsection*{Release Statement} + +The presenters agree to release the notes and relevant training material for the SC24 tutorial digital copy. + +\input{travelsupport.tex} + +\end{document} diff --git a/sc24/EESSI/outline.tex b/sc24/EESSI/outline.tex new file mode 100644 index 0000000..c987994 --- /dev/null +++ b/sc24/EESSI/outline.tex @@ -0,0 +1,35 @@ +% Note they say "This “detailed course outline” will be the most critical part of the submission", so this probably +% deserves more love + +\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. + + +\subsubsection*{Half-day format, 3 hours of tutorial content} + +\begin{itemize}[style=standard, labelwidth=1.9cm] + + + \item [00:00-00:30] \emph{(30min)} Introduction to EESSI + \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)} Using EESSI, incl. hands-on + \begin{itemize} + \item Using a native installation (10min) + \item Hands-on (15min) + \item Alternative access mechanisms: containers, cvmfsexec (5min) + \end{itemize} + \item [01:00-01:30] \emph{(30min)} Use cases (workflows, CI), incl. hands-on + \item [01:30-02:00] \emph{(30min coffee break)} + \item [02:00-02:15] \emph{(15min)} Testing software in EESSI % AOC: Drop this to recover time? + \item [02:15-02:45] \emph{(30min)} Adding software to EESSI, incl. hands-on + \item [02:45-03:10] \emph{(25min)} GPU support, incl. hands-on + \item [03:10-03:20] \emph{(10min)} EESSI community + \item [03:20-03:30] \emph{(10min)} Q\&A + closing remarks + +\end{itemize} diff --git a/sc24/EESSI/travelsupport.tex b/sc24/EESSI/travelsupport.tex new file mode 100644 index 0000000..d2b058d --- /dev/null +++ b/sc24/EESSI/travelsupport.tex @@ -0,0 +1,5 @@ +\subsection*{Travel support} + +The tutorial presenters request travel support for two presenters from Europe. + +The tutorial presenters, and assistants if possible, also request free passes for their tutorial.