Home
 
Getting Started
 
Access Information
 
Code Development
 
Computing Resources
 
Running Jobs
 
Documentation and Training
 
Events
 
Careers at A*CRC
 
   
HPC Academy  
 
A*STAR Computational Resource Centre (A*CRC) and the University of Illinois Advanced Digital Sciences Center (ADSC) are pleased to announce Singapore's first High Performance Computing (HPC) Academy.

Event: HPC Academy

Dates: This course consisting of lectures, assignments, and hands-on training will take place over three months, from February 28 until June 13, 2013. The sessions will be held on Thursday evenings from 6:00 - 9:00 PM.

Venue: 1 Fusionopolis Way #17-01 Connexis South, Singapore 138632

Instructors:  Dr Dominic (Siu Hung) Chien, A*STAR Computational Resource Centre
  Dr Pierre-Yves Aquilanti, A*STAR Computational Resource Centre
  Dr Grayson Williams, A*STAR Computational Resource Centre
  Prof. Laxmikant Kale, Department of Computer Science, University of Illinois at Urbana-Champaign
  Dr David Bock, National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign
  Dr Dave Semeraro, National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign

High Performance Computing represents the absolute zenith of computing power. HPC systems consist of thousands or millions of processor cores, joined together with high-speed networks, terabytes or petabytes of RAM and storage, and accelerators such as GPUs in order to process massive, computationally intensive datasets. Using and programming HPC systems requires a different approach to traditional serial programming, with unique challenges and opportunities.

The course is designed to help computational scientists and engineers harness the power of parallel computing techniques in applications such as fluid dynamics, molecular dynamics, biology, quantum chemistry, climate and weather modelling, geophysics and more. The course will cover programming methods such as OpenMP and MPI, parallel debugging, visualisation, the NAG mathematical libraries, linear algebra routines, and PETSc, with ample hands-on work sessions on A*CRC's HPC systems. The course will consist of lectures, in-class assignments and examples, and take-home exercises, culminating in a final exam or project at the end of the course, to be graded on a pass/fail basis. The course tuition will be a one-time fee of S$800, and class enrollment will be considered on a first-come basis, up to a maximum class size of 35. Certification will be jointly awarded by University of Illinois and A*CRC.

Prerequisites: Attendees should be comfortable in a UNIX or Linux environment, and be proficient in either the C/C++ or Fortran programming languages.

We look forward to your participation.

Course Fee: S$800 (inclusive of GST of 7%)

Registration is now closed.

Course Syllabus:

Introduction to HPC
Date: Thursday 28 February 18.00 - 21.00
Instructor: Pierre-Yves Aquilanti

The Introduction to HPC course will introduce the students to the key concepts of HPC in conjunction with computational science, and will serve as a basis for understanding the techniques developed in the following courses. During this course, we will present an overview of High Performance Computing, as well as the concepts of performance and scalability and how they can be affected. We will then review developments in HPC such as Amdahl's Law and Moore's Law, which will help the students to understand present and past architectures. After this course, the students will be able to broadly understand the world of High Performance Computing.

OpenMP Programming
Date: Thursday 07 March 18.00 - 21.00
Instructor: Grayson Williams

OpenMP is a programming specification for C and Fortran for shared-memory systems. This course will cover OpenMP for C and Fortran, focusing on directives/pragmas, sections, loops, critical code, reduction and variable scoping. It will be followed a week later by a hands-on session.

MPI Programming
Date: Thursday 21 March 18.00 - 21.00
Instructor: Dominic (Siu Hung) Chien

MPI, or Message Passing Interface, is a programming specification for C and Fortran for distributed-memory systems. This course will cover the usage of MPI with C and Fortran, focusing on message passing concepts, MPI functions, blocking and non-blocking communications, MPI datatypes, and point-to-point and global communications. It will be followed a week later by a hands-on session.

Advanced Parallel Programming
Date: Thursday 04 April 18.00 - 21.00
Instructor: Pierre-Yves Aquilanti

In the Advanced Parallel Programming course, we will introduce the students to different kind of techniques that can be used to parallelize their code and efficiently process data. We will first study the use of Cartesian grids in MPI, which are commonly used in computational science (e.g. for finite difference methods). We then present mixing OpenMP and MPI in the same program to achieve efficient code on hybrid shared/distributed-memory systems, and we also review the tools used to import or export data in a parallel manner. This course will be followed by a hands-on session where the students will have the opportunity to put their knowledge into practice. At the end of this course, the students will be able to understand and put into practice the concepts of hybrid parallelism, Cartesian grids in MPI, and parallel I/O.

Parallel Debugging
Date: Thursday 18 April 18.00 - 21.00
Instructor: Grayson Williams

This course will teach parallel debugging using the Allinea DDT parallel debugger, for which A*STAR and NUS possess a joint 512-node site licence. Topics to be covered include: deadlock, memory leaks, segmentation faults, incorrect results, and memory errors.

Visualisation
Date: Thursday 25 April 18.00 - 21.00
Instructors: David Bock and Dave Semeraro

Visualization is the process of converting large datasets into images such that the patterns and anomalies present in data are more human-friendly. Visualization of scientific data is an important component of HPC. This course will introduce sequential visualization.

BLAS/LAPACK
Date: Thursday 02 May 18.00 - 21.00
Instructor: Dominic (Siu Hung) Chien

BLAS, or Basic Linear Algebra Subprograms, is a thread-safe library for vector and matrix operations, consisting of 57 functions to perform vector, matrix, and sparse vector operations. LAPACK, or Linear Algebra PACKage, is a thread-safe library of approximately 320 linear algebra routines for solving linear equations, linear least squares problems, eigenvalue problems and singular value decomposition. This course will provide an introduction to using BLAS and LAPACK in a parallel environment to solve common linear algebra, vector and matrix problems. This course will be followed by a hands-on session the following week.

Parallel Programming Using CUDA
Date: Thursday 09 May 18.00 - 21.00
Instructor: Kyle Rupnow

Parallel computing with GPUs is becoming more and more widely used in demanding general-purpose scientific and engineering applications. CUDA has been widely adopted throughout the world as the most accessible and intuitive way to achieve massive parallelism - and this is reflected by large number of Universities which include CUDA as part of their standard curriculum, hundreds of technical papers and parallel programming textbooks.
The following topics will be covered in this lecture:
(1) Introduction to GPU computing
(2) CUDA programming basics
(3) CUDA API and data allocation
(4) Matrix multiplication in CUDA
(5) CUDA memory model and tiled parallel algorithm
Parallel computing with GPUs is becoming more and more widely used in demanding general-purpose scientific and engineering applications. CUDA has been widely adopted throughout the world as the most accessible and intuitive way to achieve massive parallelism - and this is reflected by large number of Universities which include CUDA as part of their standard curriculum, hundreds of technical papers and parallel programming textbooks.

The following topics will be covered in this lecture:
(1) Introduction to GPU computing
(2) CUDA programming basics
(3) CUDA API and data allocation
(4) Matrix multiplication in CUDA
(5) CUDA memory model and tiled parallel algorithm

PETSc
Date: Thursday 16 May 18.00 - 21.00
Instructor: Pierre-Yves Aquilanti

The Portable, Extensible Toolkit for Scientific Computation (PETSc) is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. This library is commonly used in computational science and is greatly praised for its quality and efficiency. This course will focus on the usage of parallel linear and nonlinear equation solvers, parallel matrix, and vector assembly routines. We will also review some advanced uses of this library, such as usage in conjunction with MPI libraries, and SLEPc, a library built upon PETSc which focuses on eigenvalue problems. This course will be followed by a hands-on session the following week.

NAG Libraries
Date: Thursday 30 May 18.00 - 21.00
Instructor: NAG

The purpose of this course is to introduce the Numerical Algorithms Group (NAG) Libraries, compilers and tools. NAG produces numerical, data mining components, statistical and visualisation software, compilers and application development tools, for the solution of problems in a wide range of areas such as science, engineering, financial analysis and research. The entire NAG Library of 1,600 mathematical routines and other tools has been installed on A*CRC computers (Fuji, Axle and Aurora).

Final Exam
Date: Thursday 13 June

The course will be graded and the certificate assigned on a pass/fail basis, to be determined on the basis of course attendance and a final examination.
Last Updated - 7th May 2013
 
     
Privacy Policy