NOVA PULSE
NovaPulse
HPC, AI & Scientific Computing
Cognitive & Twins City
Robot & Avatars
Virtual & Augmented Reality
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



