Class Descriptions

High Performance Computing | Course Materials

Please note that not every class is offered every quarter, but most classes can be made available to departments on request. You can contact atshpc@ucla.edu to arrange a special presentation.

High Performance Computing

Parallel Computing Using MPI-Message Passing Interface

This class has been designed to familiarize you with Parallel Computing using MPI. At the end of this three-session class you will be able to write simple parallel programs. This will allow you to take advantage of the parallel nature of a Beowulf cluster, such as the one available to you at ATS, or one that your department or professor might have. In today's computing environment, Beowulf clusters, built with off-the-shelf commodity components, are the only economical way to run large codes in a reasonable time.

In order to understand the topics presented in this class, you should have some experience in programming with Fortran or C and should plan to attend all the sessions, starting with the first.

First Session - Introduction to Parallel Computing (Schedule)

This session presents an overview of today's parallel computing,biased towards writing parallel computational codes. The following topics will be covered:

  • Basic concepts in parallel computing
  • Overview of distributed-memory and shared-memory programming models
  • Loop parallelization using OpenMP (shared-memory)
  • Simple MPI examples (distributed-memory)
  • Introduce UCLA's computational resources -- Hoffman2 cluster and UC Grid

Knowledge of Fortran or C programming languages is helpful.
Contact atshpc@ucla.edu if you have questions.

Second Session - Parallel Programming Using MPI (Schedule)

This session introduces MPI, biased towards writing parallel scientific codes. The covered topics include:

  • MPI basics -- data types and communicators
  • point to point communication
  • collective communications -- broadcast, gather/scatter, all to all
  • blocking and non-blocking operations, synchronization
  • MPI I/O -- writing files in parallel

Working knowledge of Fortran or C programming is required.
Contact atshpc@ucla.edu if you have questions.

Third Session - Parallel Computing Lab (Schedule)

This session is a hands-on session to exercise practical issues of writing and running parallel programs. You will be given a temporary account of the Hoffman2 cluster and use it, through ssh (secure shell), to edit compile and execute OpenMP and MPI programs. Batch job submission using SGE (Sun Grid Engine) on Hoffman2 will also be discussed and demonstrated.

NOTE 1: Before coming to this session, you should know how to use a text editor under the Linux environment. We recommend using vi, nano (similar to pico) or emacs, which are available on Hoffman2 cluster.

NOTE 2: this session will be held in a CLICC classroom (in Powell library building)

Working knowledge of Fortran or C programming is required.

Contact atshpc@ucla.edu if you have questions.

Special Topics of Parallel Computing (Schedule)

Assumes the knowledge of topics covered in Sessions 1-3. This session discusses patterns and advanced practices of converting a serial code to a parallel one, or writing new parallel codes, using MPI. Samples of real computational code will be used in the presentation.

Working knowledge of Fortran or C programming is required.

Contact atshpc@ucla.edu if you have questions.

Open-source HPC Programming Environment (Schedule)

This session introduces stable, high-performance libraries for carrying out operations commonly seen in scientific codes. An overview of each of these libraries will be given, followed by examples of how to use them. Specifics about using these libraries on the Hoffman2 cluster will be explained and demonstrated.

The topics include:

  • BLAS -- basic linear algebra subroutines
  • LAPACK -- dense matrix algebra, including matrix solves, least squares, eigenvalue, and singular value decomposition problems
  • FFTW -- a portable and fast FFT implementation
  • Other computational libraries (e.g. sparse matrix solvers), if time permits
  • Working knowledge of Fortran or C programming is required.

Contact atshpc@ucla.edu if you have questions.

Accessibility Information
Please send comments about this site to webmaster at ats.ucla.edu.