Workshops

The following are the workshops I coordinated and taught since 1994. The workshops help University of Iowa faculty, researchers, and graduate students to design and conduct high performance computing, data analaysis, and scientific data visualization.

2008

Scientific Computing Series Workshops
High Performance Computing (Introduction)
Parallel Programming with MPI (Beginner)
Parallel Programming with MPI (Intermediate)
Parallel Programming with MPI (Advanced)
Distributed Parallel Computing in Heterogeneous Systems
Parallel Algorithms and Applications
Data Visualization using Telplot
Data Processing and Data Analysis using MatLab
Introduction to Parallel Numerical Libraries
Introduction to LINUX Clusters

2007

Scientific Computing Series Workshops
High Performance Computing (Introduction)
Parallel Programming with MPI (Beginner)
Parallel Programming with MPI (Intermediate)
Parallel Programming with MPI (Advanced)
Distributed Parallel Computing in Heterogeneous Systems
Parallel Algorithms and Applications
Data Visualization using Telplot
Data Processing and Data Analysis using MatLab
Introduction to Parallel Numerical Libraries
Introduction to LINUC Clusters

2006

Scientific Computing Series Workshops
High Performance Computing (Introduction)
Parallel Programming with MPI (Beginner)
Parallel Programming with MPI (Intermediate)
Parallel Programming with MPI (Advanced)
Distributed Parallel Computing in Heterogeneous Systems
Parallel Algorithms and Applications
Data Visualization using Telplot
Data Processing and Data Analysis using MatLab
Introduction to Parallel Numerical Libraries
Introduction to LINUC Clusters

2005

Scientific Computing Series Workshops

High Performance Computing (Introduction)
Parallel Programming with MPI (Beginner)
Parallel Programming with MPI (Intermediate)
Parallel Programming with MPI (Advanced)
Distributed Parallel Computing in Heterogeneous Systems
Parallel Algorithms and Applications
Data Visualization using Telplot
Data Processing and Data Analysis using MatLab
Introduction to Parallel Numerical Libraries
Introduction to LINUC Clusters

2004


HIgh Performance Computing Series Workshops

High Performance Computing (23 Feb. 2004, 9-12 am) (Presentation Materials)

This workshop addresses basic concepts and knowledge of high performance computing, GRID-enhanced distributed computing, client/server computing, as well as the cutting edge technology in HPC. It covers massive parallel computers, HPC clusters, HPC architectures, HPC environments, parallel programming concepts, high performance network, and interconnection and switching, pipelining, message passing, partitioning, load balancing, fault-tolerance, parallel algorithms and applications.


Parallel Computing with MPI (Part 1) (25 Feb. 2004, 9-12 am) (Presentation Materials) (examples)

This workshop focus on using the Message Passing Interface (MPI) standard to write parallel programs on ITS's central HPC cluster with 32 processors in order to demonstrate the portability of the library. The workshop instructor will introduce fundamentals of MPI functions. It teaches basic commands of how to compile and execute MPI enhanced parallel codes in C or Fortran. The MPI topics to be covered in this workshop include a variety of processor-to-processor communication routines, collective operations performed by groups of processors, defining and using high-level processor connection topologies, and user-specified derived data types for message creation. The MPI workshop will be a combination of lectures and hands-on lab session in which the participants will write and execute sample MPI programs.


Parallel Computing with MPI (Part 2) (26 Feb. 2004, 9-12 am) (Presentation Materials)

This workshop continues the MPI lecture by covering non-block sending/receiving, collective communication using broadcasting, collective communication using pack and unpack broadcasting, and collective communication using gather and scatter. It introduces more MPI functions which are very useful in parallel algorithms.

2003

Parallel Computing with MPI, Lecture 1
Parallel Computing with MPI-2, Lecture 2
Scientific Visualization and TecPlot

2001

High Performance Computing (April, 2001)
Parallel Computing Using MPI (April, 2001)

The topic of the first session is "Message Passing Interface (MPI)." The workshop introduces parallel computing concepts and fundamentals of MPI. We will demonstrate how to set up an MPI parallel computing environment and how to compile, link, and execute MPI code.


Quickly Master Fortran77 (Feb. 2001) (Presentation Materials)

1994-2000
JavaScript Programming Language (March 2000)

High Performance Computing and Visualization Overview

This presentation provides an overview of high performance computers that help solve complex scientific problems, generating massive amounts of data in the process, and visualization tools for understanding this data. It includes a brief introduction to parallel programming concepts.


Supercomputing and Visualization Overview

Introduces supercomputers, which are used to solve complex scientific problems, generating large amounts of data in the process. Also describes visualization tools, which help interpret that data. Topics include: How to apply and use NSF national supercomputers; What are the HPC computing facilities at the national supercomputing centers; What HPC computing facilities are available to UI research community; and what are the advances and challenges in scientific computing.

Creating Videos of Scientific Visualization

Describes how to produce VHS and S-VHS videos from your animations. (The visualization lab has some capability for this.) Topics include: Saving animation files from any visualization package (Alias, Data Explorer, Spyglass, etc.), Converting image files to PICS format. Getting animations onto video through the Macintosh video system This system allows you to get scientific visualization animations to video relatively quickly and easily.

Overview of Visualization Packages

This course provides an overview of the visualization software commonly used in the ARCS lab. It will cover each of the three packages briefly with a specific example that demonstrates the basic capabilities of each. This will provide a basis for evaluating the appropriate use of each package.
Spyglass Visualization Package allows the user to transform and display 2-D data in several formats, including color raster images, surface plots, vector plots, and contour plots. Data Explorer is a 3-D visualization environment that enables the user to create, render and manipulate 2-D and 3-D images. Alias Studio is a 3-D modeling, rendering and animation software.

Introduction to Spyglass Visualization Packages

Introduces the functions of the Spyglass packages. Describes how to use Spyglass/Transform to transform and display 2-D data and create color raster images, surface plots, vector plots, and contour plots. Teaches how to use Spyglass/View to display the image or animation and how to use Spyglass/Format to lay out and annotate the color scientific image for slide and printout presentations. Also describes how to use Spyglass/Dicer to display 3-D volumes of data in color, and interactively create orthogonal slices, oblique slices, isosurfaces, blocks, and cutouts for viewing data.

Introduction to IBM Visualization Data Explorer

Introduces Data Explorer, a 3-D visualization workstation environment that allows you to closely link computation and visualization. Explains how to use Data Explorer on an IBM RS\6000 to create 2-D and 3-D images. Topics include:
How to transform numerical data and import it into Data Explorer
How to create a series of modules to access various visualization functions
How to use these modules to manipulate and render images

Introduction to Alias 3-D Modeling, Rendering, and Animation

Introduces Alias graphic design software for producing 2-D and 3-D images and animation. Topics include: creating 3-D objects, designing and modifying objects, rendering surfaces, coloring and lighting, painting and drawing to create texture maps, animating 2-D and 3-D images

Introduction to VRML

The participants will be introduced to the fundamental of VRML, Virtual Reality Modeling Language, which is developed recently with VRML browsers in order to access 3-D virtual reality graphic objects on internet. The course will teach participants about the basic concept, specification history, and current development of VRML. It also introduces many resources of VRML browsers, VRML lectures online, VRML Galleries or libraries, as well as VRML applications to scientific research and education. In addition, it will briefly introduce basic about how to compose a VRML file as a stating point of learning VRML. Topic included: What is VRML, History and current development of VRML, VRML organization and specification, VRML browsers, How to browse VRML files, Online information and resources, Basic Concepts, Building and Grouping Shapes, Building Text Shapes, Transform Shapes, Rotating Shapes, Scaling Shapes

Introduction to C, Part 1

Introduces essentials of programming in the C language. Covers enough syntax and semantics to implement a reasonable program (e.g., search and sort). Topics include: Basic types, Operators and expressions, Basic control flow, including conditionals and loops, Program structure, Input/output

Introduction to C, Part 2

Covers concept and use of pointers, which affect all aspects of C programming. Topics include: Arrays and pointers, Strings, Parameter passing, Input/output

Advanced C Programming, Part 1

Continuation of the Introduction to C courses. Discusses data structures and necessary allocations. Topics include: Record structures, Dynamic memory manipulation, Advanced control flow, including switch, break and continue, Advanced types, Operators and expressions, including type conversions and definitions

Advanced C Programming

Continuation of Advanced C Programming, Part 1. Covers advanced concepts in program structure and functions. Topics include: Overall program structure, Header files
External and static variables, Scoping rules, Macros, Command-line arguments, Function libraries