titan

Since 4/15/14 10:45 pm

eos

Since 4/9/14 02:50 pm

rhea

Since 4/15/14 05:30 pm

hpss

Since 4/15/14 09:50 am
OLCF User Assistance Center

Can't find the information you need below? Need advice from a real person? We're here to help.

OLCF support consultants are available to respond to your emails and phone calls from 9:00 a.m. to 5:00 p.m. EST, Monday through Friday, exclusive of holidays. Emails received outside of regular support hours will be addressed the next business day.

Tutorials

Task-oriented, hands-on technical demonstrations that offer more detail than can be presented in KnowledgeBase articles.

Accelerator Programming

Tutorials designed to demonstrate GPU programming techniques in C and Fortran.
  • OpenACC Vector Addition
    This sample shows a minimal conversion of our vector addition CPU code to an OpenACC accelerator directives version for the PGI, Cray, and HMPP implementations.
  • OpenACC Game of Life
    Introduction: This sample shows the Game of Life CPU code converted to an OpenACC accelerator directive version. The full source can ...
  • Accelerator interoperability
    The following C and Fortran examples show how to combine OpenACC data regions with GPU libraries such as CUFFT. Since ...
  • Accelerator Interoperability II
    Introduction: The following C and Fortran examples show how to leverage OpenACC, cuRand, and Thrust in a single application. This example ...
  • Compiling mixed GPU and CPU code
    Introduction This tutorial will cover linking GPU code compiled with NVCC and CPU code compiled with the Cray compiler wrappers cc/CC/ftn. ...
  • GPUDirect: CUDA aware MPI
    Introduction: Cray’s implementation of MPICH2 allows GPU memory buffers to be passed directly to MPI function calls, eliminating the need to ...
  • CUDA Proxy: Managing GPU context
    Introduction: The default GPU compute mode for Titan is Exclusive Process. In this mode many threads within a process may access ...
  • CUDA Vector Addition
    Introduction This sample shows a minimal conversion from our vector addition CPU code to C for CUDA, consider this a CUDA ...
  • CUDA Game of Life
    Introduction For this tutorial we will cover three different CUDA versions of our GOL program, each highlighting a different CUDA memory ...
  • CUDA Fortran Vector Addition
    Introduction This sample shows a minimal conversion from our vector addition CPU code to PGI CUDA FORTRAN, consider this a CUDA ...
  • CUDA Fortran Game of Life
    Introduction For this sample we will cover two different CUDA Fortran versions of our GOL program. The first will strictly use ...
  • OpenCL Vector Addition
    Introduction This sample shows a minimal conversion from our vector addition CPU code to an OpenCL version, consider this a OpenCL ...
  • OpenCL Game of Life
    Introduction For this tutorial we will cover two different OpenCL versions of our GOL program. The first will strictly use global ...
  • Accelerating Serial Code for GPUs
    Introduction Serial CUDA OpenACC Thrust Introduction The use of GPU acceleration can add a useful level of parallelization to your code. This tutorial will show how to parallelize ...
  • PGI Accelerator Vector Addition
    This tutorial covers PGI Accelerator directives, If you are interested in PGI OpenACC support please see: OpenACC Vector Addition Introduction This sample ...
  • PGI Accelerator Game of Life
    This tutorial covers PGI Accelerator directives, If you are interested in PGI OpenACC support please see: OpenACC Vector Addition Introduction This sample ...
  • HMPP Game of Life
    This tutorial covers CAPS HMPP Accelerator directives, If you are interested in CAPS OpenACC support please see: OpenACC Vector Addition Introduction This ...
  • HMPP Vector Addition
    This tutorial covers CAPS HMPP accelerator directives, If you are interested in CAPS OpenACC support please see: OpenACC Vector Addition Introduction This ...
  • Basic Programming

    Tutorials designed to demonstrate fundamental programming techniques in C and Fortran. These tutorials are used as a baseline for exploring more advanced programming techniques.
  • Running ParaView on Titan
    Introduction ParaView is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data ...
  • PETSc
    Introduction This tutorial describes how to use PETSc for domain decomposition to parallelize (with MPI) a solver for the simple advection ...
  • Serial to Parallel: Monte Carlo Operation
    Introduction This tutorial covers how to write a parallel program to calculate π using the Monte Carlo method. The first code is ...
  • CPU Game of Life
    Introduction The GOL is an example of cellular automaton that utilizes a 2 dimensional stencil. For each game iteration the integer ...
  • CPU Vector Addition
    Introduction The vector addition sample adds two vectors A and B to produce C, where Ci = Ai + Bi. In ...