| 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
|