top of page
Course Parallèles

http://www.acadox.com/class/23814

Agenda

October 4 

08:30-09:00 Breakfast

09:00-12:00 Physics-Waves-Maths

12:00-14:00 Lunch

14:00-16:00 Discretization-Numerical Methods

October 5

08:30-09:00 Breakfast

09:00-12:00 Acoustic 2D – Language and Coding

12:00-14:00 Lunch

14:00-16:00 Acoustic 2D – Optimization and Parallelization

Introduction

This Workshop is meant to share Best Practices in Scientific Computing, spanning a wide range of interests

  • from PDEs or Scientific Problems, Waves

  • through Mathematics, Discretisation, Numerical Method, Solvers

  • to Programming,

  • down to Systems.

Overall, It is meant to strengthen ownership and control of the Scientific Computing Architecture and encourage Creation and Innovation.

Differential Calculus, Discretization and Finite Differences

How to discretize using Taylor Series and Numerical Schemes, How to compromise between accuracy and compute cost.

In its current state, this workshop covers performance improvements techniques through the implementation of the propagation of a 2D acoustic wave by finite difference in the time domain FDTD, in fortran, in python, in MATLAB and in Julia with parallel and vectorization techniques on clusters of nodes of Intel/AMD x86 processors, Intel Phi, and NVidia GPUs.

Acoustic 2D

To illustrate with a program, easy to code, we will use the equation of d'Alembert in acoustics (Hyperbolic PDE), on a 2D grid, and discretised in the first order with a centered finite difference scheme, with Dirichletboundary conditions. In the center of the grid, we use a source of signal, with a gaussian shape. The program calculates the propagation of the created wave, time step after time step. Attention must be brought to the Nyquist or CFL limit.

Acoustic 2D times relative to Fortran

Language Fortran Julia Matlab Python Matlab+Vect Python+Numpy

Ratio                1         1       30      1000            3                       3

This type of application is the kernel of many seismic codes.

Vectorization and Parallelization

Many cores, and techniques to fasten computations.

Fine, Medium, Coarse Grain of Parallelism Standards MPI, OpenMP, OpenACC Various forms with high level language (Matlab, Julia, Python, Fortran)

Parallelization and Vectorization.

Course Get Up To Speed

http://www.acadox.com/class/18615

The Get Up To Speed on Noor training is an Introduction to Research Computing Systems and Applications. It's delivered regularly and is well suited to new students and researchers as well as anyone who'd like to become better at utilizing our resources

This training is meant for Researchers and Students wishing to use the computation power of Clusters and workstations. The first day, we will show the different ways one can access and use the clusters , and how to use the batch scheduler on the cluster. The second day will be focused on learning how to use OpenMP on shared-memory systems and CUDA on GPUs.

You will learn about:

  • Scientific Computing Environment

  • Slurm Workload Management

  • OpenMP, the standard for shared-memory programming

  • CUDA, a programming model created by NVIDIA and implemented by the NVIDIA GPUs.

Get Up to Speed on Noor (November 4 Morning)

  • Get UpToSpeed on Clusters

  • Scientific Computing : 9:00-10:00

  • Demos: Batch, Interactive Hybrid Computing CPU/GPU/MIC : 10:00-10:30

  • OpenMP and MPI example

  • OpenMP and OpenACC example

  • Access to the Clusters in Client/Server mode : 12:00-12:20 (The last link goes to a Prezi presentation. Click on Start Prezi and wait for loading of the presentation).

Presentation Materials

  • UpToSpeed Introduction

  • Linux and Systems Training

  • LSF Training

  • UpToSpeed Linux-CLI Users

Exercises Materials

  • Exercises Windows

  • Exercises Mac

  • Exercises Linux

  • Exercises Linux CLI

Putty and VNC Executables

  • PuTTY

  • VNC

Exercises LSF and Matlab files

  • Matlab

  • Run-LSF

Exercises CP2K and LSF and VMD files

  • CP2K

  • VMD

Examples Hybrid OpenMP/MPI and OpenMP OpenACC codes

  • OpenMP and MPI example

  • OpenMP and OpenACC example

Scheduler Training (November 4 Afternoon)

  • Slurm & LSF Training : 14:00-17:00

  • Scheduler Presentation

CUDA Training (November 5 Morning)

  • CUDA Training

OpenMP Training (November 5 Afternoon)

During this training session we will discuss the basics of OpenMP and how to use OpenMP on the Noor systems. The basics of OpenMP consist of parallel regions, creating threads, synchronization, parallel loops, OpenMP tasks, and the memory model.

  • OpenMP Presentation

  • OpenMP 3.1 Language Specification

  • OpenMP 4.0 Language Specification

  • OpenMP 4.0 Examples

  • OpenMP C Reference Card

  • OpenMP Fortran Reference Card

Glossary

  • Glossary of HPC terms

bottom of page