Learning How to program on HPC cluster (part II: C, Python)

Europe/Brussels
SCES A.04B (Louvain-La-Neuve)

SCES A.04B

Louvain-La-Neuve

Place des Sciences,2 1348 Louvain-la-Neuve Belgium
Description
In this session we will cover the basics of some of the most common programming languages for HPC (syntax and basic concept)

Contents:

  • Introduction to programation with C language
  • Debugging and profiling scientific code, and commercial optimized libraries
  • Introduction to structured programming with Fortran

Prerequisite:

  • Being able to use SSH with private keys 
  • Being familiar with a text editor 
  • Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)
Type: Hands-on
Target audience: Rookie programmers
Must: This session is a must for anyone who needs to write programs.
Registration
Registration
39 / 50
    • 09:30 10:45
      Introduction to programming with C language 1h 15m

      C is a very performant language on which are build C++ but also Python (and many others). Even if this language is now mainly superseeded by C++, it is important to understand the basic of the language if you want to learn C++ and or Cuda programming (for GPU).

      Contents:

      • Basic of C programming
      • pointer concept
      • array
      • memory management

       

      Prerequisite:

      • Being able to use SSH with private keys 
      • Being familiar with a text editor 
      • Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)

      Prerequisite for:

      • CUDA programming

      Type: Hands-on
      Target audience: Rookie programmer
      Must: This session is a nice-to-have for those who need to develop fast scientific software.

      Speaker: Olivier Mattelaer (UCLouvain/CISM)
    • 11:00 12:30
      C++ 1h 30m

      Introduction to object-oriented programming, classes and templates in C++. Learn useful design patterns that will help you design the architecture of your project.

      Content:
      - From C to C++
      - What is a class ? What is an object ?
      - Template programming
      - Inheritance, abstract classes and interfaces
      - Some more design patterns
      - Good practices
      - Some pointers to libraries and projects of interest

      Prerequisite:
      - Being familiar with a text editor
      - Being familiar with programming (at least beginner level)
      - Understanding what a compiler is

      Target audience: Rookie programmer

      Speaker: Nicolas Potvin (ULB département informatique)
    • 13:45 16:45
      Introduction to Python 3h

      Python is a programming language that can be used both for scientific computing (as a replacement for Fortran or C/C++) and for everyday scripting (as a replacement for Bash or Perl), but also to develop full programs with a GUI as well as headless services. It is a very nice tool to include in any scientist's toolbox.

      Contents:

      • Language syntax
      • The core modules
      • Installing external modules
      • Writing and distributing modules

      Prerequisite:

      • Being able to use SSH with private keys 
      • Being familiar with a text editor 
      • Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)
      • Notions of programming

      Type: Hands-on
      Target audience: Rookie programmer
      Must: This session is a nice-to-have for those who do not know Python.

       

      Speaker: Mr Jérôme de Favereau (UCLouvain/IRMP/CP3)