Training: Course Catalog

This list includes all courses offered by TACC throughout the year, organized by field. To view upcoming courses and registration information, visit Training. To view/download lecture slides, labs, and other materials from recent and upcoming courses, visit Course Materials.

Computational Biology

Introduction to High Performance Computing for Life Scientists

This one-day workshop is intended to introduce life scientists to high performance computing at TACC. Attendees will learn how to utilize the vast array of resources that TACC offers for Computational Biology. Topics to be covered include computing, storage and visualization systems, life science software, basic Unix and compiling methods. A hands-on lab session will provide an opportunity to work with TACC systems directly. The class is intended for high performance computing "novices" and advanced computing skills are NOT required. A working knowledge of Unix is helpful but not necessary.

High Performance Computing for NextGen Sequence Analysis

This one–day workshop is intended to introduce life scientists to high performance computing at the Texas Advanced Computing Center (TACC) with a specific emphasis on NextGen Sequence analysis. Attendees will learn how to utilize an array of computational and software resources that TACC offers for Computational Biology. Topics to be covered include large-scale computing, data management, loading and running applications. An introduction to general sequence analysis concepts along with specific, real-world examples will also be provided. A hands-on lab session will give attendees an opportunity to work with TACC systems on NextGen sequence data sets.

The class is intended for biologists and advanced programming skills are not required. However, a working knowledge of Unix is expected.

High Performance Computing

C Programming Basics

Basic C programming skills are essential for researchers in areas of High Performance Computing. These skills can bedirectly applied to resources at the Texas Advanced Computing Center and in any Unix environment. This class is intended for the beginner wishing to gain more experience in C programming.

C++ Programming Basics

C++ is a powerful language used in in a number of extensible numerical software libraries.  Its multi-paradigm feature set allows for a number of applications without sacrificing the performance that low-level code can provide.  While C++ is often characterized as an "experts-only" language, the basic features are both accessible to novices and provide useful abstractions for any code. Our class will be broken into a morning session on basic language syntax, e.g., control flow, IO, and objects.  The afternoon session will focus on intermediate features, e.g., memory management, templates, and the STL.  Our examples will largely be drawn from scientific computing codes and each session will include a lab with help getting started. Prerequisite: Basic unix skills will be assumed and some programming knowledge would be beneficial.

Data Intensive Computing on Stampede

This one day workshop will introduce participants to the four data intensive computing modes Stampede is designed to provide: 1) high throughput data processing, 2) parallel data analysis, 3) large shared memory applications, and 4) large-scale visualization.  The material will focus on using the job launchers, parallel R, and visualization tools available on Stampede. The workshop will use a mixture of lecture and hands-on training to explore how users can use Stampede for their data driven computing needs.

Defensive Programming Part 1

This is the first talk in a two-part series on Defensive Programming. Modern scientific programming is fraught with potential peril. Even simple programs routinely perform trillions of operations, making it impossible to check the calculations by hand. This talk provides tips, techniques, and tools for scientists and engineers to help them survive. Topics to be discussed are: effective tools for creating software; unit and system testing; designing with testing in mind; DRY: do not repeat yourself; language specific defenses; and out of bounds errors.

Defensive Programming Part 2

This is the second talk in a two-part series on Defensive Programming. Having introduced system testing in the first talk in this series, this talk will explain how system testing is used in developing scientific software. Dr. McLay will show how testing is important, reduces development time, and extends the use and lifetime of a project.  Actual experiences with system testing will be presented.  During hands-on lab
sessions, "TM", a software testing tool will be introduced, and Dr. McLay will work with attendees to apply it to their projects. Either Part 1 or Part 2 can be taken independent of the other.

Fortran90/95 Programming

Fortran programming skills are essential for researchers in areas of High Performance Computing. These skills can be directly applied to resources at the Texas Advanced Computing Center and in any Unix environment. The class is intended for the intermediate user wishing to gain more experience in Fortran90/95 programming. Basic knowledge of Fortran or another mid/high-level programming language is a prerequisite.

Introduction to Parallel Computing with OpenMP

This course, designed for the programmer with little or no experience with parallel computing or supercomputers, will present an introduction to the concepts of parallel programming, and specifically the use of OpenMP for C and Fortran programmers.  This course introduces basic OpenMP concepts and foundational programming techniques.

Linux/Unix Basics for HPC

This foundational class provides beginner and intermediate users with basic Linux/Unix command line environment experience. The lecture will emphasize common strategies used for interacting with clusters and HPC resources. A student guide with suggested supplemental reading and a Linux/Unix command line environment practice lab, as well as a Command Reference Guide (with interactive system and batch commands) are included. No prerequisite.

Optimize your Code for the Intel Xeon Phi

The Innovative Technology component of the XSEDE Stampede supercomputer at TACC provides access to 8 PetaFlops of computing power in the form of the new Intel Xeon Phi Coprocessor, also known as MIC. This workshop is designed to introduce Stampede users to the MIC architecture in a practical manner. Multiple lectures and hands-on exercises will be used to get the user acquainted with the MIC platform and explore the different execution modes as well as parallelization and optimization through example testing and reports.  The workshop will be divided in four sections: Introduction to the MIC architecture; native execution and optimization; offload execution; and symmetric execution. In each section the users will spend half the time doing guided hands-on exercises.

Parallel Computing on Stampede

Parallel Computing on Stampede covers the architecture, user environment and proper use of Stampede.  This class should be of particular interest to computational scientists interested in developing and porting codes for this system.

PerfExpert: Really Simple Program Optimization

This one-day workshop will introduce and apply PerfExpert, a performance optimization tool that is truly simple to use.  PerfExpert requires no expertise in performance assessment, and the measurement and analysis process works directly on the production program without annotations or modifications.  The goal is that at the end of the workshop, each participant will leave with a version of her/his favorite application that is optimized for execution on Stampede and the ability to apply PerfExpert independently to other programs.  The morning session will give examples of applying PerfExpert to several different types of applications.  The afternoon session will be a laboratory where the PerfExpert development team will work with each workshop participant to optimize an application code of her/his choice.

Profiling and Debugging Serial and Parallel Programs

The course covers profiling and debugging technologies available at TACC for performance optimization and debugging of serial and parallel codes. The course contains instructions for beginners and advanced users, along with a lab with demos and examples.

Profiling and Optimization of Parallel Programs

This course will cover the basic skills required to undertake detailed performance analysis of MPI applications. The training will use standard packages available including IPM and PerfExpert to derive floating point, memory subsystem and MPI application performance metrics.  The course will include instructions on general optimization strategies.  Instructors will present the instrumentation steps for an example application.

Scientific Visualization

ACES Vislab New User Training

The ACES Visualization Laboratory ("Vislab"), located in ACES 2.404a, has been refurbished and upgraded, and is now open to all UT faculty, students, and staff, as well as UT System and XSEDE users. In order to activate your account on systems in the Vislab, a training session is required. Previous Vislab users (before renovation) are also required to attend the training as we have a completely different set of equipment. All Vislab training is held in the lab itself.

Hands-On Introduction to Scientific Visualization

In this one-day class, users will learn about the scientific visualization and data analysis resources available at TACC, including remote visualization on Ranger and Spur, and large-scale visualization on Stallion and Bronco. A significant portion of the class will involve hands-on interaction with the systems, and users are encouraged to bring data for use in the class (sample data will be provided as well).

Introduction to Computer Graphics and Scientific Visualization

In this one-and-half-day training session, we will teach the attendees fundamental concepts in scientific visualization and computer graphics, and introduce them to various visualization software packages that TACC supports.

Introduction to Scientific Visualization

Users will receive instructions on the use of remote visualization software to visualize data sets generated on systems such as Ranger.  A review of the scientific visualization process will precede an overview of the visualization software available to TACC users, including the parallel visualization software VisIt and Paraview.  Labs will provide students with the opportunity to prepare data sets to be visualized using these applications. In addition, attendees will be introduced to the Longhorn visualization portal.