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

Using the Hoffman2 Cluster (Schedule)

This session is a general introduction to how to use UCLA Hoffman2 Cluster. The objective is to familiarize current and potential cluster users with the Hoffman2 Cluster, so they can make the best use of UCLA computational resources. The following topics will be covered:

  • Overview of computational resources accessible to the UCLA campus community, especially Hoffman2 Cluster components.
  • How to access and login to the Hoffman2 Cluster, primarily in terminal/command-line mode.
  • Exploration of how to run various computational tasks on or from the Hoffman2 Cluster, illustrated by hands-on example transcripts.
  • A brief introduction to Sun Grid Engine (SGE) commands and how to achieve more control over resources.

This session is appropriate for entry-level and mid-level cluster users. No prerequisite knowledge is required, but some working experience with basic Unix system commands and Fortran or C programming languages will be helpful.

Introduction to Parallel Computing and OpenMP (Schedule)

This session introduces basic parallel computing concepts and OpenMP, a widely used application programming interface (API) for shared-memory parallel programming. This session will be of particular interest to those who want to speed up existing sequential code on today's multicore processors. The covered topics include:

  • Basic concepts in parallel computing
  • Distributed-memory and shared-memory programming models
  • OpenMP (with code examples)
  • Work share constructs and clauses
  • Synchronization
  • Interaction with OS and hardware

Knowledge of Fortran or C programming languages is required.

Introduction to MPI (Schedule)

This session introduces MPI, a widely used application programming interface (API) for distributed-memory parallel programming. This session will be of particular interest to those who want to develop computational codes in a cluster environment. The covered topics include:

  • Data types and communicators
  • Point-to-point communication
  • Collective communications
  • Blocking and non-blocking operations, synchronization
  • Parallel file I/O

Working knowledge of Fortran or C programming is required.

Parallel Computing Lab (Schedule)

This session provides hands-on experience in the practical issues of writing and running parallel programs. You will be given a temporary account on 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 the Hoffman2 Cluster will also be discussed and demonstrated.

  • Before coming to this session, you should know how to use a text editor in the Unix environment. We recommend using vi, nano (similar to pico) or emacs, which are available on the Hoffman2 Cluster
  • This session will be held in a CLICC classroom in Powell library building

Working knowledge of Fortran or C programming is required. The number of seats is limited to CLICC classroom capacity (approximately 20).

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.

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.

Working knowledge of Fortran or C programming is required.

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