Multi‐Core Programming

Session 1 (1.5 hours): Multi‐core Programming in general

  1. Fundamental concepts: speedup, Amdahl’s law, Gustafson's law, Anti‐Amdahl’s law, work, span, etc.
  2. Multi‐core architecture: Moore’s Law, memory wall, hyper‐threading, etc.
  3. Multi‐threading: data race, determinacy race, synchronization, critical section, mutex, fence, barrier, messages, etc.
  4. Multi‐threading problems: deadlock, priority inversion, false sharing, memory consistency, livelock in TM, etc.

Session 2 (1.5 hours): Programming platforms (1)

  1. Pthreads
  2. OpenMP
  3. MPI
  4. Cilk
  5. VOPP

Session 3 (1.5 hours): Programming platforms (2)

  1. Threading Building Blocks
  2. Transactional Memory
  3. Existing Compile time and runtime optimisation techniques

Targeted audience

Students and programmers who would like to learn parallel programming with multi‐core computers. This tutorial will introduce fundamental concepts for parallel programming, multi‐corearchitectures, programming platforms, and multi‐threading problems. There will be some demonstrations for programming with MPI, OpenMP, Cilk, Pthreads, and VOPP.


Zhiyi Huang, Mariusz Nowostawski and Tim Huang from the University of Otago

Dr. Zhiyi Huang is a Senior Lecturer in the Department of Computer Science at the University of Otago, New Zealand. He received his BSc degree in 1986 and PhD degree in 1992 in Computer Science from the National University of Defense Technology (NUDT) in China. Since 1986, he has been working on parallel/distributed computing for more than 20 years. His main interests include parallel/distributed computing, cluster computing, multi‐core systems, distributed shared memory, transactional memory, high‐performance computing, virtualization of computer architectures, operating systems, and computer networks. Dr Huang had been a visiting professor at EPFL (Swiss Federal Institute of Technology Lausanne) and Tsinghua University in 2005. He is now the Technical Liaison of the Sun Microsystems Center of Excellence in OpenSPARC that is based in the University of Otago.

Dr. Mariusz Nowostawski is a Lecturer in the Department of Information Science at the University of Otago. He is an expert in multi‐core programming, operating systems and virtualization. He gained comprehensive expertise in computer architectures, parallel programming environments such as PVM, MPI and OpenMP. He worked with the Linux kernel since 1995 and with OpenSolaris since 2005 when it became open source. In 1998, he conducted his first massivel parallel project for regular carbon isotopes structures discovery at the University of Birmingham, UK. Since 2006, Dr Nowostawski has been employed as the Chief Research Officer for World45 and has managed the collaboration with the University of Otago and Sun Microsystems. This includes several projects related to parallel packet processing on multi‐core architectures, distributed shared memory, virtualization and remote direct memory access.

Tim Huang is currently a PhD student in the Systems Research Group at the University of Otago. His main research area is parallel programming with an emphasis on View-Oriented Parallel Programming and Transactional Memory. He obtained his MSc degree from the University of Southern Denmark and his BEng degree fro Zhejiang University, China.

Last modified: Monday, 02-Feb-2009 14:27:36 NZDT