diff --git a/01-deep-learning-on-supercomputers.md b/01-deep-learning-on-supercomputers.md new file mode 100644 index 0000000000000000000000000000000000000000..d52691a3cce90c716c289d45c20c95cdadcf0ecf --- /dev/null +++ b/01-deep-learning-on-supercomputers.md @@ -0,0 +1,42 @@ +--- +author: Alexandre Strube +title: Deep Learning on Supercomputers +# subtitle: A primer in supercomputers` +date: May 31, 2023 +--- +## Communication: + +- [Zoom]([TODO]) +- [Slack]([TODO]) +- [This document: http://go.fzj.de/TODO]([TODO]) + + + +--- + +## Goals for this course: + +- Distribute your ML workload. +- Important: This is _*NOT*_ a basic AI course - It's an showcase of Deep Learning on Supercomputers! + + + +--- + +## Team: + +::: {.container} +:::: {.col} + +:::: +:::: {.col} + +:::: +:::: {.col} + +:::: +::: + + + +--- \ No newline at end of file diff --git a/README.md b/README.md index 93e21b3f56fceb3f6a8c7fd0d9066a506a7a40cb..6a2af0f7adafd1a22b8853da636b530da50e43f4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,28 @@ +--- +author: Alexandre Strube +title: Getting Started with AI on Supercomputers +--- + The older repo was https://gitlab.jsc.fz-juelich.de/MLDL_FZJ/juhaicu/jsc_public/sharedspace/teaching/dl_on_supercomputers +This repo is specifically for the course described in [indico](https://indico3-jsc.fz-juelich.de/event/107) + +--- + +### How to generate HTML + +- You need `pandoc`. On a mac, use `brew install pandoc`. +- After that, just call `make` to create the self-contained HTML files. + +--- + +## Contributing +Please, fork this thing! Use it! And submit merge requests! + +## Authors and acknowledgment +Alexandre Otto Strube, May 2023 + +## Certificate +Human resources make them. Don't bother. +## License +MIT License (https://opensource.org/licenses/MIT) \ No newline at end of file diff --git a/dist b/dist new file mode 120000 index 0000000000000000000000000000000000000000..e9a3310da36253c89750a3f46bdf36e9c433a5f2 --- /dev/null +++ b/dist @@ -0,0 +1 @@ +public/dist \ No newline at end of file diff --git a/email-survey.md b/email-survey.md new file mode 100644 index 0000000000000000000000000000000000000000..58188635bab65cdc332d239485bd0f116be73662 --- /dev/null +++ b/email-survey.md @@ -0,0 +1,23 @@ +--- +author: Alexandre Strube +title: Deep Learning on Supercomputers +# subtitle: A primer in supercomputers` +date: May 31, 2023 +--- + +Hello everyone! + +First of all, I would like to thank each and every one of you for the attendance to this course. +We tried a number of new things, and I hope the course was easy enough to follow, while +being difficult enough to bring you new questions! 🙇♂️ + +There is plenty of compute hours on the compute project for you to play around with +the code we provided, and to hopefully integrate some of what you learned on your own +codes! Let's make those GPUs scream! 😱 + +We were asked for certificates for the course. Don’t worry, we will prepare them. Meanwhile, +it would be very nice if you would give us some feedback, here: https://indico3-jsc.fz-juelich.de/event/107/surveys/13 + +Again, thanks for your time! + +Alexandre and Sabrina \ No newline at end of file diff --git a/footer.html b/footer.html new file mode 100644 index 0000000000000000000000000000000000000000..146f28ff54635aca089cfcf14d4a50ca61a73328 --- /dev/null +++ b/footer.html @@ -0,0 +1,4 @@ +<div id="footer"> + <h1>Mitglied der Helmholtz Gemeinschaft</h1> + <img class="fzjlogo" src="images/Logo_FZ_Juelich_rgb_Schutzzone_transparent.svg" height="5%"/> +</div> diff --git a/images b/images new file mode 120000 index 0000000000000000000000000000000000000000..8bedd26b46d93b59af34e2fe66ca9f23206d5a39 --- /dev/null +++ b/images @@ -0,0 +1 @@ +public/images \ No newline at end of file diff --git a/index.md b/index.md new file mode 100644 index 0000000000000000000000000000000000000000..db468a3357b08fab83d457f0164f47b9c7c719b7 --- /dev/null +++ b/index.md @@ -0,0 +1,10 @@ +--- +author: Alexandre Strube +title: Deep Learning on Supercomputers +# subtitle: A primer in supercomputers` +date: May 31, 2023 +--- + +# Topics: + +- [Deep Learning on Supercomputers](01-deep-learning-on-supercomputers.html) diff --git a/plugin b/plugin new file mode 120000 index 0000000000000000000000000000000000000000..424584917bede5812610ae0e39172aecf5faec9b --- /dev/null +++ b/plugin @@ -0,0 +1 @@ +public/plugin \ No newline at end of file diff --git a/public/.DS_Store b/public/.DS_Store deleted file mode 100644 index 36cd63f7357d71e172397b6ff1be9216a84ef6ce..0000000000000000000000000000000000000000 Binary files a/public/.DS_Store and /dev/null differ diff --git a/public/01-deep-learning-on-supercomputers.html b/public/01-deep-learning-on-supercomputers.html new file mode 100644 index 0000000000000000000000000000000000000000..fc9ad11cd5ff3ccd39f1a9c5b8170358a76f1166 --- /dev/null +++ b/public/01-deep-learning-on-supercomputers.html @@ -0,0 +1,379 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="generator" content="pandoc"> + <meta name="author" content="Alexandre Strube"> + <meta name="dcterms.date" content="2023-05-31"> + <title>Deep Learning on Supercomputers</title> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + <link rel="stylesheet" href="./dist/reset.css"> + <link rel="stylesheet" href="./dist/reveal.css"> + <style> + .reveal .sourceCode { /* see #7635 */ + overflow: visible; + } + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="./dist/theme/sky.css" id="theme"> + <style> + .container{ + display: flex; + } + .col { + flex: 1; + } + + .slides { + font-size: 0.75em; + } + .reveal ul { + display: block; + } + .reveal ol { + display: block; + } + + img { + max-height: 600px !important; + } + + figcaption { + font-size: 0.6em !important; + font-style: italic !important; + } + + .subtitle { + font-style: italic !important; + } + + .date { + font-size: 0.75em !important; + } + + + body { + font-family: "Arial", "sans-serif" + } + + section { + margin: 0; + } + + .reveal .slides { + margin: 0 1vmin; + } + .reveal h1, + .reveal h2, + .reveal h3, + .reveal h4 { + font-family: "Arial", "sans-serif"; + text-transform: Uppercase; + color: #023d6b; + } + + .reveal h1 { + color: #023d6b; + font-size: 250%; + } + + + .reveal h2 + h3 { + text-transform: Unset; + font-size: 80%; + } + + .controls { + visibility: hidden; + } + + .reveal .progress { + position: absolute; + bottom: 1px; + } + + .prompt { + min-width: 0; + width: 0; + visibility: hidden; + } + + div.dateauthor { + padding-top: 4em; + color: white; + } + + div.prompt { + width:0; + } + + + div#footer { + position: fixed; + bottom: 0; + width: 100%; + z-index: 10; + font-size: 0.5em; font-weight: bold; padding: 0 1vmin; height: 20vmin; background: #fff} + #footer h1 { + position: absolute; + bottom: 3.2vmin; + display: block; + padding: 0 1em; + font-size: 1.7vmin; + font-weight: bold; + text-transform: unset; + color: #023d6b; + } + #footer h2 {display: block; padding: 0.em 1em 0;} + + img.fzjlogo { + position: fixed; + bottom: 0; + right: 0; + height: 24vmin; /* The height of the svg is about 3 times the height of the logo */ + margin-bottom: -3vmin; /* Baseline of logo should be about 5% of short side above edge. */ + } + + .rendered_html img, svg { + max-height: 440px; + } + + </style> +</head> +<body> + <div class="reveal"> + <div class="slides"> + +<section id="title-slide"> + <h1 class="title">Deep Learning on Supercomputers</h1> + <p class="author">Alexandre Strube</p> + <p class="date">May 31, 2023</p> +</section> + +<section id="communication" class="slide level2"> +<h2>Communication:</h2> +<ul> +<li class="fragment"><a href="%5BTODO%5D">Zoom</a></li> +<li class="fragment"><a href="%5BTODO%5D">Slack</a></li> +<li class="fragment"><a href="%5BTODO%5D">This document: +http://go.fzj.de/TODO</a></li> +</ul> +<p><img +data-src="images/Logo_FZ_Juelich_rgb_Schutzzone_transparent.svg" /></p> +</section> +<section id="goals-for-this-course" class="slide level2"> +<h2>Goals for this course:</h2> +<ul> +<li class="fragment">Distribute your ML workload.</li> +<li class="fragment">Important: This is <em><em>NOT</em></em> a basic AI +course - It’s an showcase of Deep Learning on Supercomputers!</li> +</ul> +<p><img +data-src="images/Logo_FZ_Juelich_rgb_Schutzzone_transparent.svg" /></p> +</section> +<section id="team" class="slide level2"> +<h2>Team:</h2> +<div class="container"> +<div class="col"> +<figure> +<img data-src="pics/alex.jpg" alt="Alexandre Strube" /> +<figcaption aria-hidden="true">Alexandre Strube</figcaption> +</figure> +</div> +<div class="col"> +<figure> +<img data-src="pics/ilya.jpg" alt="Ilya Zhukov" /> +<figcaption aria-hidden="true">Ilya Zhukov</figcaption> +</figure> +</div> +<div class="col"> +<figure> +<img data-src="pics/jolanta.jpg" alt="Jolanta Zjupa" /> +<figcaption aria-hidden="true">Jolanta Zjupa</figcaption> +</figure> +</div> +</div> +<p><img +data-src="images/Logo_FZ_Juelich_rgb_Schutzzone_transparent.svg" /></p> +</section> +<section class="slide level2"> + +</section> + </div> + </div> + + <script src="./dist/reveal.js"></script> + + <!-- reveal.js plugins --> + <script src="./plugin/notes/notes.js"></script> + <script src="./plugin/search/search.js"></script> + <script src="./plugin/zoom/zoom.js"></script> + + <script> + + // Full list of configuration options available at: + // https://revealjs.com/config/ + Reveal.initialize({ + // Display controls in the bottom right corner + controls: true, + + // Help the user learn the controls by providing hints, for example by + // bouncing the down arrow when they first encounter a vertical slide + controlsTutorial: true, + + // Determines where controls appear, "edges" or "bottom-right" + controlsLayout: 'bottom-right', + + // Visibility rule for backwards navigation arrows; "faded", "hidden" + // or "visible" + controlsBackArrows: 'faded', + + // Display a presentation progress bar + progress: true, + + // Display the page number of the current slide + slideNumber: false, + + // 'all', 'print', or 'speaker' + showSlideNumber: 'all', + + // Add the current slide number to the URL hash so that reloading the + // page/copying the URL will return you to the same slide + hash: true, + + // Start with 1 for the hash rather than 0 + hashOneBasedIndex: false, + + // Flags if we should monitor the hash and change slides accordingly + respondToHashChanges: true, + + // Push each slide change to the browser history + history: false, + + // Enable keyboard shortcuts for navigation + keyboard: true, + + // Enable the slide overview mode + overview: true, + + // Disables the default reveal.js slide layout (scaling and centering) + // so that you can use custom CSS layout + disableLayout: false, + + // Vertical centering of slides + center: true, + + // Enables touch navigation on devices with touch input + touch: true, + + // Loop the presentation + loop: false, + + // Change the presentation direction to be RTL + rtl: false, + + // see https://revealjs.com/vertical-slides/#navigation-mode + navigationMode: 'default', + + // Randomizes the order of slides each time the presentation loads + shuffle: false, + + // Turns fragments on and off globally + fragments: true, + + // Flags whether to include the current fragment in the URL, + // so that reloading brings you to the same fragment position + fragmentInURL: true, + + // Flags if the presentation is running in an embedded mode, + // i.e. contained within a limited portion of the screen + embedded: false, + + // Flags if we should show a help overlay when the questionmark + // key is pressed + help: true, + + // Flags if it should be possible to pause the presentation (blackout) + pause: true, + + // Flags if speaker notes should be visible to all viewers + showNotes: false, + + // Global override for autoplaying embedded media (null/true/false) + autoPlayMedia: null, + + // Global override for preloading lazy-loaded iframes (null/true/false) + preloadIframes: null, + + // Number of milliseconds between automatically proceeding to the + // next slide, disabled when set to 0, this value can be overwritten + // by using a data-autoslide attribute on your slides + autoSlide: 0, + + // Stop auto-sliding after user input + autoSlideStoppable: true, + + // Use this method for navigation when auto-sliding + autoSlideMethod: null, + + // Specify the average time in seconds that you think you will spend + // presenting each slide. This is used to show a pacing timer in the + // speaker view + defaultTiming: null, + + // Enable slide navigation via mouse wheel + mouseWheel: false, + + // The display mode that will be used to show slides + display: 'block', + + // Hide cursor if inactive + hideInactiveCursor: true, + + // Time before the cursor is hidden (in ms) + hideCursorTime: 5000, + + // Opens links in an iframe preview overlay + previewLinks: false, + + // Transition style (none/fade/slide/convex/concave/zoom) + transition: 'fade', + + // Transition speed (default/fast/slow) + transitionSpeed: 'default', + + // Transition style for full page slide backgrounds + // (none/fade/slide/convex/concave/zoom) + backgroundTransition: 'fade', + + // Number of slides away from the current that are visible + viewDistance: 3, + + // Number of slides away from the current that are visible on mobile + // devices. It is advisable to set this to a lower number than + // viewDistance in order to save resources. + mobileViewDistance: 2, + + // reveal.js plugins + plugins: [ + RevealNotes, + RevealSearch, + RevealZoom + ] + }); + </script> + </body> +</html> diff --git a/public/README.html b/public/README.html new file mode 100644 index 0000000000000000000000000000000000000000..8a8d3d1f863a6847dcf20fc731aa489fa6eb159c --- /dev/null +++ b/public/README.html @@ -0,0 +1,361 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="generator" content="pandoc"> + <meta name="author" content="Alexandre Strube"> + <title>Getting Started with AI on Supercomputers</title> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + <link rel="stylesheet" href="./dist/reset.css"> + <link rel="stylesheet" href="./dist/reveal.css"> + <style> + .reveal .sourceCode { /* see #7635 */ + overflow: visible; + } + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="./dist/theme/sky.css" id="theme"> + <style> + .container{ + display: flex; + } + .col { + flex: 1; + } + + .slides { + font-size: 0.75em; + } + .reveal ul { + display: block; + } + .reveal ol { + display: block; + } + + img { + max-height: 600px !important; + } + + figcaption { + font-size: 0.6em !important; + font-style: italic !important; + } + + .subtitle { + font-style: italic !important; + } + + .date { + font-size: 0.75em !important; + } + + + body { + font-family: "Arial", "sans-serif" + } + + section { + margin: 0; + } + + .reveal .slides { + margin: 0 1vmin; + } + .reveal h1, + .reveal h2, + .reveal h3, + .reveal h4 { + font-family: "Arial", "sans-serif"; + text-transform: Uppercase; + color: #023d6b; + } + + .reveal h1 { + color: #023d6b; + font-size: 250%; + } + + + .reveal h2 + h3 { + text-transform: Unset; + font-size: 80%; + } + + .controls { + visibility: hidden; + } + + .reveal .progress { + position: absolute; + bottom: 1px; + } + + .prompt { + min-width: 0; + width: 0; + visibility: hidden; + } + + div.dateauthor { + padding-top: 4em; + color: white; + } + + div.prompt { + width:0; + } + + + div#footer { + position: fixed; + bottom: 0; + width: 100%; + z-index: 10; + font-size: 0.5em; font-weight: bold; padding: 0 1vmin; height: 20vmin; background: #fff} + #footer h1 { + position: absolute; + bottom: 3.2vmin; + display: block; + padding: 0 1em; + font-size: 1.7vmin; + font-weight: bold; + text-transform: unset; + color: #023d6b; + } + #footer h2 {display: block; padding: 0.em 1em 0;} + + img.fzjlogo { + position: fixed; + bottom: 0; + right: 0; + height: 24vmin; /* The height of the svg is about 3 times the height of the logo */ + margin-bottom: -3vmin; /* Baseline of logo should be about 5% of short side above edge. */ + } + + .rendered_html img, svg { + max-height: 440px; + } + + </style> +</head> +<body> + <div class="reveal"> + <div class="slides"> + +<section id="title-slide"> + <h1 class="title">Getting Started with AI on Supercomputers</h1> + <p class="author">Alexandre Strube</p> +</section> + +<section class="slide level2"> + +<p>The older repo was +https://gitlab.jsc.fz-juelich.de/MLDL_FZJ/juhaicu/jsc_public/sharedspace/teaching/dl_on_supercomputers +This repo is specifically for the course described in <a +href="https://indico3-jsc.fz-juelich.de/event/107">indico</a></p> +</section> +<section class="slide level2"> + +<h3 id="how-to-generate-html">How to generate HTML</h3> +<ul> +<li class="fragment">You need <code>pandoc</code>. On a mac, use +<code>brew install pandoc</code>.</li> +<li class="fragment">After that, just call <code>make</code> to create +the self-contained HTML files.</li> +</ul> +</section> +<section id="contributing" class="slide level2"> +<h2>Contributing</h2> +<p>Please, fork this thing! Use it! And submit merge requests!</p> +</section> +<section id="authors-and-acknowledgment" class="slide level2"> +<h2>Authors and acknowledgment</h2> +<p>Alexandre Otto Strube, May 2023</p> +</section> +<section id="certificate" class="slide level2"> +<h2>Certificate</h2> +<p>Human resources make them. Don’t bother.</p> +</section> +<section id="license" class="slide level2"> +<h2>License</h2> +<p>MIT License (https://opensource.org/licenses/MIT)</p> +</section> + </div> + </div> + + <script src="./dist/reveal.js"></script> + + <!-- reveal.js plugins --> + <script src="./plugin/notes/notes.js"></script> + <script src="./plugin/search/search.js"></script> + <script src="./plugin/zoom/zoom.js"></script> + + <script> + + // Full list of configuration options available at: + // https://revealjs.com/config/ + Reveal.initialize({ + // Display controls in the bottom right corner + controls: true, + + // Help the user learn the controls by providing hints, for example by + // bouncing the down arrow when they first encounter a vertical slide + controlsTutorial: true, + + // Determines where controls appear, "edges" or "bottom-right" + controlsLayout: 'bottom-right', + + // Visibility rule for backwards navigation arrows; "faded", "hidden" + // or "visible" + controlsBackArrows: 'faded', + + // Display a presentation progress bar + progress: true, + + // Display the page number of the current slide + slideNumber: false, + + // 'all', 'print', or 'speaker' + showSlideNumber: 'all', + + // Add the current slide number to the URL hash so that reloading the + // page/copying the URL will return you to the same slide + hash: true, + + // Start with 1 for the hash rather than 0 + hashOneBasedIndex: false, + + // Flags if we should monitor the hash and change slides accordingly + respondToHashChanges: true, + + // Push each slide change to the browser history + history: false, + + // Enable keyboard shortcuts for navigation + keyboard: true, + + // Enable the slide overview mode + overview: true, + + // Disables the default reveal.js slide layout (scaling and centering) + // so that you can use custom CSS layout + disableLayout: false, + + // Vertical centering of slides + center: true, + + // Enables touch navigation on devices with touch input + touch: true, + + // Loop the presentation + loop: false, + + // Change the presentation direction to be RTL + rtl: false, + + // see https://revealjs.com/vertical-slides/#navigation-mode + navigationMode: 'default', + + // Randomizes the order of slides each time the presentation loads + shuffle: false, + + // Turns fragments on and off globally + fragments: true, + + // Flags whether to include the current fragment in the URL, + // so that reloading brings you to the same fragment position + fragmentInURL: true, + + // Flags if the presentation is running in an embedded mode, + // i.e. contained within a limited portion of the screen + embedded: false, + + // Flags if we should show a help overlay when the questionmark + // key is pressed + help: true, + + // Flags if it should be possible to pause the presentation (blackout) + pause: true, + + // Flags if speaker notes should be visible to all viewers + showNotes: false, + + // Global override for autoplaying embedded media (null/true/false) + autoPlayMedia: null, + + // Global override for preloading lazy-loaded iframes (null/true/false) + preloadIframes: null, + + // Number of milliseconds between automatically proceeding to the + // next slide, disabled when set to 0, this value can be overwritten + // by using a data-autoslide attribute on your slides + autoSlide: 0, + + // Stop auto-sliding after user input + autoSlideStoppable: true, + + // Use this method for navigation when auto-sliding + autoSlideMethod: null, + + // Specify the average time in seconds that you think you will spend + // presenting each slide. This is used to show a pacing timer in the + // speaker view + defaultTiming: null, + + // Enable slide navigation via mouse wheel + mouseWheel: false, + + // The display mode that will be used to show slides + display: 'block', + + // Hide cursor if inactive + hideInactiveCursor: true, + + // Time before the cursor is hidden (in ms) + hideCursorTime: 5000, + + // Opens links in an iframe preview overlay + previewLinks: false, + + // Transition style (none/fade/slide/convex/concave/zoom) + transition: 'fade', + + // Transition speed (default/fast/slow) + transitionSpeed: 'default', + + // Transition style for full page slide backgrounds + // (none/fade/slide/convex/concave/zoom) + backgroundTransition: 'fade', + + // Number of slides away from the current that are visible + viewDistance: 3, + + // Number of slides away from the current that are visible on mobile + // devices. It is advisable to set this to a lower number than + // viewDistance in order to save resources. + mobileViewDistance: 2, + + // reveal.js plugins + plugins: [ + RevealNotes, + RevealSearch, + RevealZoom + ] + }); + </script> + </body> +</html> diff --git a/public/email-survey.html b/public/email-survey.html new file mode 100644 index 0000000000000000000000000000000000000000..286bc27711e2d5bd14bc76f4ed2922b8e00a3d90 --- /dev/null +++ b/public/email-survey.html @@ -0,0 +1,348 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="generator" content="pandoc"> + <meta name="author" content="Alexandre Strube"> + <meta name="dcterms.date" content="2023-05-31"> + <title>Deep Learning on Supercomputers</title> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + <link rel="stylesheet" href="./dist/reset.css"> + <link rel="stylesheet" href="./dist/reveal.css"> + <style> + .reveal .sourceCode { /* see #7635 */ + overflow: visible; + } + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="./dist/theme/sky.css" id="theme"> + <style> + .container{ + display: flex; + } + .col { + flex: 1; + } + + .slides { + font-size: 0.75em; + } + .reveal ul { + display: block; + } + .reveal ol { + display: block; + } + + img { + max-height: 600px !important; + } + + figcaption { + font-size: 0.6em !important; + font-style: italic !important; + } + + .subtitle { + font-style: italic !important; + } + + .date { + font-size: 0.75em !important; + } + + + body { + font-family: "Arial", "sans-serif" + } + + section { + margin: 0; + } + + .reveal .slides { + margin: 0 1vmin; + } + .reveal h1, + .reveal h2, + .reveal h3, + .reveal h4 { + font-family: "Arial", "sans-serif"; + text-transform: Uppercase; + color: #023d6b; + } + + .reveal h1 { + color: #023d6b; + font-size: 250%; + } + + + .reveal h2 + h3 { + text-transform: Unset; + font-size: 80%; + } + + .controls { + visibility: hidden; + } + + .reveal .progress { + position: absolute; + bottom: 1px; + } + + .prompt { + min-width: 0; + width: 0; + visibility: hidden; + } + + div.dateauthor { + padding-top: 4em; + color: white; + } + + div.prompt { + width:0; + } + + + div#footer { + position: fixed; + bottom: 0; + width: 100%; + z-index: 10; + font-size: 0.5em; font-weight: bold; padding: 0 1vmin; height: 20vmin; background: #fff} + #footer h1 { + position: absolute; + bottom: 3.2vmin; + display: block; + padding: 0 1em; + font-size: 1.7vmin; + font-weight: bold; + text-transform: unset; + color: #023d6b; + } + #footer h2 {display: block; padding: 0.em 1em 0;} + + img.fzjlogo { + position: fixed; + bottom: 0; + right: 0; + height: 24vmin; /* The height of the svg is about 3 times the height of the logo */ + margin-bottom: -3vmin; /* Baseline of logo should be about 5% of short side above edge. */ + } + + .rendered_html img, svg { + max-height: 440px; + } + + </style> +</head> +<body> + <div class="reveal"> + <div class="slides"> + +<section id="title-slide"> + <h1 class="title">Deep Learning on Supercomputers</h1> + <p class="author">Alexandre Strube</p> + <p class="date">May 31, 2023</p> +</section> + +<section class="slide level6"> + +<p>Hello everyone!</p> +<p>First of all, I would like to thank each and every one of you for the +attendance to this course. We tried a number of new things, and I hope +the course was easy enough to follow, while being difficult enough to +bring you new questions! 🙇♂️</p> +<p>There is plenty of compute hours on the compute project for you to +play around with the code we provided, and to hopefully integrate some +of what you learned on your own codes! Let’s make those GPUs scream! +😱</p> +<p>We were asked for certificates for the course. Don’t worry, we will +prepare them. Meanwhile, it would be very nice if you would give us some +feedback, here: +https://indico3-jsc.fz-juelich.de/event/107/surveys/13</p> +<p>Again, thanks for your time!</p> +<p>Alexandre and Sabrina</p> +</section> + </div> + </div> + + <script src="./dist/reveal.js"></script> + + <!-- reveal.js plugins --> + <script src="./plugin/notes/notes.js"></script> + <script src="./plugin/search/search.js"></script> + <script src="./plugin/zoom/zoom.js"></script> + + <script> + + // Full list of configuration options available at: + // https://revealjs.com/config/ + Reveal.initialize({ + // Display controls in the bottom right corner + controls: true, + + // Help the user learn the controls by providing hints, for example by + // bouncing the down arrow when they first encounter a vertical slide + controlsTutorial: true, + + // Determines where controls appear, "edges" or "bottom-right" + controlsLayout: 'bottom-right', + + // Visibility rule for backwards navigation arrows; "faded", "hidden" + // or "visible" + controlsBackArrows: 'faded', + + // Display a presentation progress bar + progress: true, + + // Display the page number of the current slide + slideNumber: false, + + // 'all', 'print', or 'speaker' + showSlideNumber: 'all', + + // Add the current slide number to the URL hash so that reloading the + // page/copying the URL will return you to the same slide + hash: true, + + // Start with 1 for the hash rather than 0 + hashOneBasedIndex: false, + + // Flags if we should monitor the hash and change slides accordingly + respondToHashChanges: true, + + // Push each slide change to the browser history + history: false, + + // Enable keyboard shortcuts for navigation + keyboard: true, + + // Enable the slide overview mode + overview: true, + + // Disables the default reveal.js slide layout (scaling and centering) + // so that you can use custom CSS layout + disableLayout: false, + + // Vertical centering of slides + center: true, + + // Enables touch navigation on devices with touch input + touch: true, + + // Loop the presentation + loop: false, + + // Change the presentation direction to be RTL + rtl: false, + + // see https://revealjs.com/vertical-slides/#navigation-mode + navigationMode: 'default', + + // Randomizes the order of slides each time the presentation loads + shuffle: false, + + // Turns fragments on and off globally + fragments: true, + + // Flags whether to include the current fragment in the URL, + // so that reloading brings you to the same fragment position + fragmentInURL: true, + + // Flags if the presentation is running in an embedded mode, + // i.e. contained within a limited portion of the screen + embedded: false, + + // Flags if we should show a help overlay when the questionmark + // key is pressed + help: true, + + // Flags if it should be possible to pause the presentation (blackout) + pause: true, + + // Flags if speaker notes should be visible to all viewers + showNotes: false, + + // Global override for autoplaying embedded media (null/true/false) + autoPlayMedia: null, + + // Global override for preloading lazy-loaded iframes (null/true/false) + preloadIframes: null, + + // Number of milliseconds between automatically proceeding to the + // next slide, disabled when set to 0, this value can be overwritten + // by using a data-autoslide attribute on your slides + autoSlide: 0, + + // Stop auto-sliding after user input + autoSlideStoppable: true, + + // Use this method for navigation when auto-sliding + autoSlideMethod: null, + + // Specify the average time in seconds that you think you will spend + // presenting each slide. This is used to show a pacing timer in the + // speaker view + defaultTiming: null, + + // Enable slide navigation via mouse wheel + mouseWheel: false, + + // The display mode that will be used to show slides + display: 'block', + + // Hide cursor if inactive + hideInactiveCursor: true, + + // Time before the cursor is hidden (in ms) + hideCursorTime: 5000, + + // Opens links in an iframe preview overlay + previewLinks: false, + + // Transition style (none/fade/slide/convex/concave/zoom) + transition: 'fade', + + // Transition speed (default/fast/slow) + transitionSpeed: 'default', + + // Transition style for full page slide backgrounds + // (none/fade/slide/convex/concave/zoom) + backgroundTransition: 'fade', + + // Number of slides away from the current that are visible + viewDistance: 3, + + // Number of slides away from the current that are visible on mobile + // devices. It is advisable to set this to a lower number than + // viewDistance in order to save resources. + mobileViewDistance: 2, + + // reveal.js plugins + plugins: [ + RevealNotes, + RevealSearch, + RevealZoom + ] + }); + </script> + </body> +</html> diff --git a/public/images/.DS_Store b/public/images/.DS_Store deleted file mode 100644 index 6dd882f9b9465c4f0993f164463d859efc93bf92..0000000000000000000000000000000000000000 Binary files a/public/images/.DS_Store and /dev/null differ diff --git a/public/images/nomnom.jpg b/public/images/nomnom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2f6570effc1da2457ae3565184ea4a4980533656 Binary files /dev/null and b/public/images/nomnom.jpg differ diff --git a/public/images/paralellism-types.jpg b/public/images/paralellism-types.jpg deleted file mode 100644 index cd93ae56ab83ad2d5b12deb993878cf9bf2570b3..0000000000000000000000000000000000000000 Binary files a/public/images/paralellism-types.jpg and /dev/null differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..7e0b9f81807c0bb4ed6871fd7ec390c3e1b9cb7a --- /dev/null +++ b/public/index.html @@ -0,0 +1,338 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <meta name="generator" content="pandoc"> + <meta name="author" content="Alexandre Strube"> + <meta name="dcterms.date" content="2023-05-31"> + <title>Deep Learning on Supercomputers</title> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> + <link rel="stylesheet" href="./dist/reset.css"> + <link rel="stylesheet" href="./dist/reveal.css"> + <style> + .reveal .sourceCode { /* see #7635 */ + overflow: visible; + } + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + div.columns{display: flex; gap: min(4vw, 1.5em);} + div.column{flex: auto; overflow-x: auto;} + div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} + ul.task-list{list-style: none;} + ul.task-list li input[type="checkbox"] { + width: 0.8em; + margin: 0 0.8em 0.2em -1.6em; + vertical-align: middle; + } + .display.math{display: block; text-align: center; margin: 0.5rem auto;} + </style> + <link rel="stylesheet" href="./dist/theme/sky.css" id="theme"> + <style> + .container{ + display: flex; + } + .col { + flex: 1; + } + + .slides { + font-size: 0.75em; + } + .reveal ul { + display: block; + } + .reveal ol { + display: block; + } + + img { + max-height: 600px !important; + } + + figcaption { + font-size: 0.6em !important; + font-style: italic !important; + } + + .subtitle { + font-style: italic !important; + } + + .date { + font-size: 0.75em !important; + } + + + body { + font-family: "Arial", "sans-serif" + } + + section { + margin: 0; + } + + .reveal .slides { + margin: 0 1vmin; + } + .reveal h1, + .reveal h2, + .reveal h3, + .reveal h4 { + font-family: "Arial", "sans-serif"; + text-transform: Uppercase; + color: #023d6b; + } + + .reveal h1 { + color: #023d6b; + font-size: 250%; + } + + + .reveal h2 + h3 { + text-transform: Unset; + font-size: 80%; + } + + .controls { + visibility: hidden; + } + + .reveal .progress { + position: absolute; + bottom: 1px; + } + + .prompt { + min-width: 0; + width: 0; + visibility: hidden; + } + + div.dateauthor { + padding-top: 4em; + color: white; + } + + div.prompt { + width:0; + } + + + div#footer { + position: fixed; + bottom: 0; + width: 100%; + z-index: 10; + font-size: 0.5em; font-weight: bold; padding: 0 1vmin; height: 20vmin; background: #fff} + #footer h1 { + position: absolute; + bottom: 3.2vmin; + display: block; + padding: 0 1em; + font-size: 1.7vmin; + font-weight: bold; + text-transform: unset; + color: #023d6b; + } + #footer h2 {display: block; padding: 0.em 1em 0;} + + img.fzjlogo { + position: fixed; + bottom: 0; + right: 0; + height: 24vmin; /* The height of the svg is about 3 times the height of the logo */ + margin-bottom: -3vmin; /* Baseline of logo should be about 5% of short side above edge. */ + } + + .rendered_html img, svg { + max-height: 440px; + } + + </style> +</head> +<body> + <div class="reveal"> + <div class="slides"> + +<section id="title-slide"> + <h1 class="title">Deep Learning on Supercomputers</h1> + <p class="author">Alexandre Strube</p> + <p class="date">May 31, 2023</p> +</section> + +<section id="topics" class="slide level1"> +<h1>Topics:</h1> +<ul> +<li class="fragment"><a +href="01-deep-learning-on-supercomputers.html">Deep Learning on +Supercomputers</a></li> +</ul> +</section> + </div> + </div> + + <script src="./dist/reveal.js"></script> + + <!-- reveal.js plugins --> + <script src="./plugin/notes/notes.js"></script> + <script src="./plugin/search/search.js"></script> + <script src="./plugin/zoom/zoom.js"></script> + + <script> + + // Full list of configuration options available at: + // https://revealjs.com/config/ + Reveal.initialize({ + // Display controls in the bottom right corner + controls: true, + + // Help the user learn the controls by providing hints, for example by + // bouncing the down arrow when they first encounter a vertical slide + controlsTutorial: true, + + // Determines where controls appear, "edges" or "bottom-right" + controlsLayout: 'bottom-right', + + // Visibility rule for backwards navigation arrows; "faded", "hidden" + // or "visible" + controlsBackArrows: 'faded', + + // Display a presentation progress bar + progress: true, + + // Display the page number of the current slide + slideNumber: false, + + // 'all', 'print', or 'speaker' + showSlideNumber: 'all', + + // Add the current slide number to the URL hash so that reloading the + // page/copying the URL will return you to the same slide + hash: true, + + // Start with 1 for the hash rather than 0 + hashOneBasedIndex: false, + + // Flags if we should monitor the hash and change slides accordingly + respondToHashChanges: true, + + // Push each slide change to the browser history + history: false, + + // Enable keyboard shortcuts for navigation + keyboard: true, + + // Enable the slide overview mode + overview: true, + + // Disables the default reveal.js slide layout (scaling and centering) + // so that you can use custom CSS layout + disableLayout: false, + + // Vertical centering of slides + center: true, + + // Enables touch navigation on devices with touch input + touch: true, + + // Loop the presentation + loop: false, + + // Change the presentation direction to be RTL + rtl: false, + + // see https://revealjs.com/vertical-slides/#navigation-mode + navigationMode: 'default', + + // Randomizes the order of slides each time the presentation loads + shuffle: false, + + // Turns fragments on and off globally + fragments: true, + + // Flags whether to include the current fragment in the URL, + // so that reloading brings you to the same fragment position + fragmentInURL: true, + + // Flags if the presentation is running in an embedded mode, + // i.e. contained within a limited portion of the screen + embedded: false, + + // Flags if we should show a help overlay when the questionmark + // key is pressed + help: true, + + // Flags if it should be possible to pause the presentation (blackout) + pause: true, + + // Flags if speaker notes should be visible to all viewers + showNotes: false, + + // Global override for autoplaying embedded media (null/true/false) + autoPlayMedia: null, + + // Global override for preloading lazy-loaded iframes (null/true/false) + preloadIframes: null, + + // Number of milliseconds between automatically proceeding to the + // next slide, disabled when set to 0, this value can be overwritten + // by using a data-autoslide attribute on your slides + autoSlide: 0, + + // Stop auto-sliding after user input + autoSlideStoppable: true, + + // Use this method for navigation when auto-sliding + autoSlideMethod: null, + + // Specify the average time in seconds that you think you will spend + // presenting each slide. This is used to show a pacing timer in the + // speaker view + defaultTiming: null, + + // Enable slide navigation via mouse wheel + mouseWheel: false, + + // The display mode that will be used to show slides + display: 'block', + + // Hide cursor if inactive + hideInactiveCursor: true, + + // Time before the cursor is hidden (in ms) + hideCursorTime: 5000, + + // Opens links in an iframe preview overlay + previewLinks: false, + + // Transition style (none/fade/slide/convex/concave/zoom) + transition: 'fade', + + // Transition speed (default/fast/slow) + transitionSpeed: 'default', + + // Transition style for full page slide backgrounds + // (none/fade/slide/convex/concave/zoom) + backgroundTransition: 'fade', + + // Number of slides away from the current that are visible + viewDistance: 3, + + // Number of slides away from the current that are visible on mobile + // devices. It is advisable to set this to a lower number than + // viewDistance in order to save resources. + mobileViewDistance: 2, + + // reveal.js plugins + plugins: [ + RevealNotes, + RevealSearch, + RevealZoom + ] + }); + </script> + </body> +</html> diff --git a/public/pics/sabrina.jpg b/public/pics/sabrina.jpg deleted file mode 100644 index 6abef7c6fb045617c0f006f4f21c7d327873a283..0000000000000000000000000000000000000000 Binary files a/public/pics/sabrina.jpg and /dev/null differ diff --git a/public/plugin/.DS_Store b/public/plugin/.DS_Store deleted file mode 100644 index 795ecb83711eca300bd598693d32e2c064dc3584..0000000000000000000000000000000000000000 Binary files a/public/plugin/.DS_Store and /dev/null differ diff --git a/slides.css b/slides.css new file mode 100644 index 0000000000000000000000000000000000000000..2b0ad86851dc75f36ca14e7945ab62e2b4dcaf31 --- /dev/null +++ b/slides.css @@ -0,0 +1,123 @@ +<style> +.container{ + display: flex; +} +.col { + flex: 1; +} + +.slides { + font-size: 0.75em; +} +.reveal ul { + display: block; +} +.reveal ol { + display: block; +} + +img { + max-height: 600px !important; +} + +figcaption { + font-size: 0.6em !important; + font-style: italic !important; +} + +.subtitle { + font-style: italic !important; +} + +.date { + font-size: 0.75em !important; +} + + +body { + font-family: "Arial", "sans-serif" +} + +section { + margin: 0; +} + +.reveal .slides { + margin: 0 1vmin; +} +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4 { + font-family: "Arial", "sans-serif"; + text-transform: Uppercase; + color: #023d6b; +} + +.reveal h1 { + color: #023d6b; + font-size: 250%; +} + + +.reveal h2 + h3 { + text-transform: Unset; + font-size: 80%; +} + +.controls { + visibility: hidden; +} + +.reveal .progress { + position: absolute; + bottom: 1px; +} + +.prompt { + min-width: 0; + width: 0; + visibility: hidden; +} + +div.dateauthor { + padding-top: 4em; + color: white; +} + +div.prompt { + width:0; +} + + +div#footer { + position: fixed; + bottom: 0; + width: 100%; + z-index: 10; +font-size: 0.5em; font-weight: bold; padding: 0 1vmin; height: 20vmin; background: #fff} +#footer h1 { + position: absolute; + bottom: 3.2vmin; + display: block; + padding: 0 1em; + font-size: 1.7vmin; + font-weight: bold; + text-transform: unset; + color: #023d6b; +} +#footer h2 {display: block; padding: 0.em 1em 0;} + +img.fzjlogo { + position: fixed; + bottom: 0; + right: 0; + height: 24vmin; /* The height of the svg is about 3 times the height of the logo */ + margin-bottom: -3vmin; /* Baseline of logo should be about 5% of short side above edge. */ +} + +.rendered_html img, svg { + max-height: 440px; +} + +</style> \ No newline at end of file