Learning How to program on HPC cluster (part I: Scientific software, interpreted languages, compilers)
Tuesday, 7 November 2023 -
09:30
Monday, 6 November 2023
Tuesday, 7 November 2023
09:30
Introduction to scientific software development and deployment
-
Damien François
(
UCLouvain/CISM
)
Introduction to scientific software development and deployment
Damien François
(
UCLouvain/CISM
)
09:30 - 10:15
Room: SHANON (building Maxwell first floor)
<table border="0" cellpadding="10px"> <tbody> <tr> <td colspan="2"> <p>Often, the workflow for researchers is to acquire a piece of software, and either modify it, or wrap it in scripts, or simply install it on the clusters, or all of that at the same time, on many clusters. This session will introduce to the tools that can make this whole process easier.</p> </td> </tr> <tr> <td rowspan="2"> <p><strong>Contents:</strong></p> <ul> <li>Programming paradigms</li> <li>Types of languages and the choice of the language.</li> <li>Tools for deploying software </li> <li>The programmer's toolkit </li> <li>Writing comments and elements of style</li> </ul> </td> <td> <p><strong>Prerequisite:</strong></p> <ul> <li>Being familiar with a text editor </li> <li>Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)</li> </ul> </td> </tr> <tr> <td> <p><strong>Type</strong>: Lecture<br /> <strong>Target audience</strong>: Rookie programmers<br /> <strong>Must: </strong>This session is a nice-to-have.</p> </td> </tr> </tbody> </table>
10:30
Introduction to scripting and interpreted languages (Python, R, Octave)
-
Damien François
(
UCLouvain/CISM
)
Introduction to scripting and interpreted languages (Python, R, Octave)
Damien François
(
UCLouvain/CISM
)
10:30 - 12:00
Room: SHANON (building Maxwell first floor)
<table border="0" cellpadding="10px"> <tbody> <tr> <td colspan="2"> <p>Interpreted languages are often thought as less performance-oriented than compiled languages. Yet, they are often much easier to use and the time spent developing code is much lower than with compiled languages, and many tools are available to make them nearly as performant as compiled languages.</p> </td> </tr> <tr> <td rowspan="2"> <p><strong>Contents:</strong></p> <ul> <li>Use cases, strengths and weaknesses</li> <li>The trilogy: Octave, R, Python</li> <li>Compiling and linking the interpreter</li> <li>Installing additional libraries</li> <li>Using compiled code inside interpreted code</li> <li>Compiling interpreted code</li> </ul> </td> <td> <p><strong>Prerequisite:</strong></p> <ul> <li>Have a basic understanding of procedural programming (conditionals, loops, etc.) </li> <li>Being able to use SSH with private keys </li> <li>Being familiar with a text editor </li> <li>Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)</li> </ul> </td> </tr> <tr> <td> <p><strong>Type</strong>: Hands-on<br /> <strong>Target audience</strong>: Rookie programmers<br /> <strong>Must: </strong>This session is a nice-to-have.</p> </td> </tr> </tbody> </table>
14:00
How to speed up your code at low cost?
-
Bernard Van Renterghem
(
UCL CISM
)
How to speed up your code at low cost?
Bernard Van Renterghem
(
UCL CISM
)
14:00 - 16:00
Room: SHANON (building Maxwell first floor)
<table border="0" cellpadding="10px"> <tbody> <tr> <td colspan="2"> <p>The choice of the compiler (many clusters have several, a.o. gcc, intel, etc.) is important, as is the choice of the compiling options. This sessions reviews the strengths and weaknesses of the compilers and their optimal use. </p> </td> </tr> <tr> <td rowspan="2"> <p><strong>Contents:</strong></p> <ul> <li>The GCC Compiler and its options</li> <li>Intel Compiler Studio</li> <li>The different levels of code optimization</li> <li>Using external libraries</li> <li>Using configure and make</li> <li>Downloading and compiling source code</li> <li>Using linear algebra, signal processing libraries, etc.(BLAS, MKL, ACML, etc.)</li> </ul> </td> <td> <p><strong>Prerequisite:</strong></p> <ul> <li>Being able to use SSH with private keys </li> <li>Being familiar with a text editor </li> <li>Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)</li> <li>Passive knowledge of C or Fortran</li> </ul> </td> </tr> <tr> <td> <p><strong>Type</strong>: Hands-on<br /> <strong>Target audience</strong>: Rookie programmers<br /> <strong>Must: </strong>This session is a must for anyone who needs to compile software from sources.</p> </td> </tr> </tbody> </table>