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
    • 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

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

      Integrated Development Environments, Version Control Systems, Build Systems

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