Lectures on Modern Scientific Programming

Europe/Budapest
Building 3, 2nd floor, Council Room (Wigner RCP)

Building 3, 2nd floor, Council Room

Wigner RCP

1121 Budapest, Konkoly-Thege Miklós Str. 29-33.,
Description

Lectures on Modern Scientific Programming


The Wigner GPU-Lab organizes a three-day seminar series on Modern Scientific Programming in 23-25 November, 2015. These lectures review topics relevant to everyone working on scientific simulations or high-performance computing.
The lectures are highly recommended to those who are:

  • Actively engaged in high-performance computing or analysis
  • Author code where execution time is important
  • Wish to learn (more) about parallel computing
  • University students who plan to use programming daily in their field

The lectures may be of interest to those who are:

  • Using interpreted math environments (Mathematica, Maple, Matlab, etc.) and wish to understand the run time costs
  • Seasoned programmers but care to learn good practices and a few tricks

The lectures are free to attend, but registration is required for the secured entry to the KFKI Campus!

Participants
    • 09:00 12:00
      Overview of modern hardware details and programming language basics

      Modern Computing Hardware (CPU/GPU), Low-level insights to CPUs and GPUs, Overview of programming languages and paradigms

      • 09:00
        Modern Computing Hardware (CPU/GPU), Low-level insights 1h 30m
        Slides
      • 10:30
        Break 15m
      • 10:45
        Overview of programming languages and paradigms 1h 15m
        Slides
    • 12:00 13:30
      Lunch break 1h 30m
    • 13:30 16:30
      Development Tools

      Integrated Development Environments, Version Control Systems, Build Systems

      • 13:30
        Integrated Development Environments 1h 30m
        Slides
      • 15:00
        Break 15m
      • 15:15
        Version Control, Build Systems 1h 15m
        Slides
    • 09:00 12:00
      Modern C++ I.
      • 09:00
        Migrating from Fortran and C to modern C++ 30m
      • 09:30
        C++ Language Basics 1h 15m
      • 10:45
        Break 15m
      • 11:00
        New C++ features 1h
    • 12:00 13:30
      Lunch Break 1h 30m
    • 13:30 16:30
      Modern C++ II.
      • 13:30
        Template Meta-Programming and Multi-Threading 1h 30m
      • 15:00
        Break 15m
      • 15:15
        Coding Guidelines, Best Practices, Recommended Libraries, Future tendencies 1h 15m
    • 09:00 12:00
      Introduction to GPU Programming
      • 09:00
        GPU Programming APIs (CUDA, OpenCL, C++AMP, SyCL) 1h 30m
      • 10:30
        Break 15m
      • 10:45
        GPU Programming Language bindings, compromises, limitations, future 1h 15m
    • 12:00 13:30
      Lunch Break 1h 30m
    • 13:30 16:30
      Introduction to Functional Programming
      • 13:30
        Introduction to Functional Programming 1h 15m
      • 14:45
        Break 15m
      • 15:00
        Functional programming and Parallelism, Examples from Numerical Physics (in C++), relation to Category Theory 1h 30m