Learning How to program on HPC cluster (part II: C, Fortran, debugging and profiling)

Europe/Brussels
SHANON (building Maxwell, first floor) (Louvain-La-Neuve)

SHANON (building Maxwell, first floor)

Louvain-La-Neuve

Place du Levant 3 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
20 / 50
    • 09:30 11:00
      Introduction to programming with C language 1h 30m

      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:15 12:45
      Debugging and profiling scientific code, and commercial optimized libraries 1h 30m

      When a piece of software does not work the way it is expected to, it needs debugging. Then, when it works, it needs profiling to remove the bottlenecks. This session will also present the standard optimized librairies that will allow you to code faster and more efficiently.

      Contents:

      • Debugging principles
      • The GNU debugger (gdb)
      • The Intel debugger
      • Advanced features of Intel Cluster studio
        • the support of MIC architecture (Xeon Phi)
        • the Guided Auto Parallelism
        • the Coarray Fortran support
      • Intel MKL

      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.)
      • Passive knowledge of either C, Fortran, Octave, Python or R
      • Working knowledge of C or Fortran
      • Familiarity with OpenMP and MPI

      Type: Hands-on
      Target audience: Programmers
      Must: This session is important for programmers who want to optimize their code for usage on a cluster.

      Speaker: Bernard Van Renterghem (UCL CISM)
    • 14:00 16:30
      Introduction to structured programming with Fortran 2h 30m

      Fortran is the historical language of scientific computing. Many often-used mathematical libraries used nowadays were writen initially in Fortran and have evolved with both the language and the hardware. 

      Contents:

      • Historical perspective
      • Syntax
      • Printing and formatting
      • Memory management
      • Fortran I/O

      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 programmer
      Must: This session is a nice-to-have for those who need to develop fast scientific software.

      Speaker: Pierre-Yves Barriat (UCL/ELIC)