NAG Technical Lectures at University College London

9 November 2011

Lecture 1: An Introduction to Multicore Programming
and the NAG Library for SMP & multicore

Lecture 2: An Introduction to CUDA Programming
and the NAG Numerical Routines for GPUs

NAG would like to acknowledge and thank the support of University College London, UK PhD Centre in Financial Computing and ESPRC for supporting this event.

Lecture 1: An Introduction to Multicore Programming and the NAG Library for SMP & multicore
The speaker slides are now available - click here
In this seminar we aim to demystify programming your multicore machine. We give an introduction to the terminology and what it really means. We give a brief introduction to the programming language OpenMP, the main language for shared memory machines. We also show you how to get the most out of the NAG Library for SMP & multicore with performance hints and tips.

Lecture 2: An Introduction to CUDA Programming and the NAG Numerical Routines for GPUs
The speaker slides are now available - click here
In this seminar we will demystify programming your NVIDIA GPU. We start by seeing how the need for GPUs arose, and what the main differences are between CPU and GPU hardware. We then explain the CUDA programming model and show how to port sections of a serial or parallel (e.g. OpenMP) program to the GPU. Topics that are covered include:

  • hardware features of NVIDIA's GPUs
  • latency hiding
  • warp divergence

This is an introductory lecture, so more advanced topics (e.g. bank conflicts, etc) will not be covered. We will also show you how (and when) to use the NAG Numerical Routines for GPUs.

Aimed at: Anyone interested in accelerating applications using GPUs, with particular emphasis on Monte Carlo simulation in finance.