Undergraduate Petascale Modules


Completed Materials

Results: 1-10 of 22
Petascale
shodor.org
  By: Angela B. Shiflet, George W. Shiflet, Shay M. Ellison
Curricular materials designed to teach parallel computational modeling to undergraduate or graduate students in science and other STEM disciplines. The module begins with the construction of a cellular automaton model of microbial biofilms using Mathematica. This model is then re-implemented with C and parallelized using MPI.
View Metadata
Petascale
shodor.org
  By: Angela B. Shiflet, George W. Shiflet
Curricular materials designed to teach computational modeling to undergraduate or graduate students in science and other STEM disciplines. The module teaches the construction of a graphical network-based model of epidemiology and social networks using Mathematica.
View Metadata
Petascale
shodor.org
  By: David Joiner
This module introduces the N-body problem, which seeks to account for the dynamics of systems of multiple interacting objects. Galaxy dynamics serves as the motivating example to introduce a variety of computational methods for simulating change and criteria that can be used to check for model accuracy. Finally, the basic issues and ideas that must be considered when developing a parallel implementation of the simulation are introduced.
View Metadata
Petascale
shodor.org
  By: Henry Neeman
What the heck is supercomputing? Who uses supercomputing, how, and why? How does supercomputing work? What does the explosive growth of computing power mean for students, faculty and professionals? This module consists of several submodules, exploring the following topics: Overview: What the Heck is Supercomputing; The Tyranny of the Storage Hierarchy; Instruction Level Parallelism; and Stupid Compiler Tricks.
View Metadata
Petascale
shodor.org
  By: Henry Neeman
The second of three modules, this module dives more deeply into the world of HPC and parallel computing. The primary topics explored are: Shared Memory Multithreading; Distributed Multiprocessing; Applications and Types of Parallelism; and Multicore Madness.
View Metadata
Petascale
shodor.org
  By: David Joiner
This teaching module introduces stochastic approaches to finding optimum solutions for adequately defined systems. Because these approaches are intrinsically random, large numbers of random samples are typically required to find robust optima. This results in either long single simulation runs, or the need for multiple replicated simulations considered as an ensemble, or both. Monte Carlo, simulated annealing and genetic algorithm approaches to optimization are introduced in this module and applied to a few example problems, and parallelization strategies and their resulting performance gains are assessed.
View Metadata
Petascale
shodor.org
  By: Angela B. Shiflet, George W. Shiflet, Jesse A. Hanley
Many computational science models involve matrices. This module will provide a foundation for understanding matrices and some of their operations with examples from population dynamics and will provide background material for other computational science modules. The module will also have a discussion of the importance of matrices in many models that employ high performance computing. The model will have two accompanying tutorials. One will include some of the basics of MPI. The other will provide an introduction to matrices in Mathematica along with Grid Mathematica.
View Metadata
Petascale
shodor.org
  By: Angela and George Shiflet
This page provides download links for a set of curricular materials designed to teach parallel computational modeling to undergraduate or graduate students in science and other STEM disciplines. The module begins with a description of the importance of age-structure in biological populations. Algorithms, implementation, parameter sweeping and analysis of age-structured models is then presented for both serial and parallel implementations.
View Metadata
Petascale
shodor.org
  By: Aaron Weeden
This module teaches: 1) How to approximate the area under a curve using a Riemann sum, 2) how approximating the area under a curve is used in solutions to scientific problems, 3) how to implement parallel code for Area Under a Curve (including versions that use shared memory via OpenMP, distributed memory via the Message Passing Interface (MPI), and hybrid via a combination of MPI and OpenMP), 4) how to measure the performance and scaling of a parallel application in multicore and manycore environments, and 5) how Area Under a Curve falls into the MapReduce "dwarf" (a class of algorithms that have similar communication and computation patterns). Upon completion of this module, students should be able to: 1) Understand the importance of approximating the area under a curve in modeling scientific problems, 2) Design a parallel algorithm and implement it using MPI and/or OpenMP, 3) Measure the scalability of a parallel code over multiple or many cores, and 4) Explain the communication and computation patterns of the MapReduce dwarf. It is assumed that students will have prerequisite experience with C or Fortran 90, *nix systems, and modular arithmetic.
View Metadata
Petascale
shodor.org
  By: Aaron Weeden
This module teaches: 1) Conway's Game of Life as an example of a cellular automaton, 2) how cellular automata are used in solutions to scientific problems, 3) how to implement parallel code for Conway's Game of Life (including versions that use shared memory via OpenMP, distributed memory via the Message Passing Interface (MPI), and hybrid via a combination of OpenMP and MPI), 4) how to measure the performance and scaling of a parallel application in multicore and manycore environments, and 5) how cellular automata fall into the Structured Grid "dwarf" (a class of algorithms that have similar communication and computation patterns). Upon completion of this module, students should be able to: 1) Understand the importance of cellular automata in modeling scientific problems, 2) Design a parallel algorithm and implement it using OpenMP and/or MPI, 3) Measure the scalability of a parallel code over multiple or many cores, and 4) Explain the communication and computation patterns of the Structured Grid dwarf. It is assumed that students will have prerequisite experience with C or Fortran 90, *nix systems, and modular arithmetic.
View Metadata
Results: 1-10 of 22

In Development

General purpose GPU curriculum
By: Paul Gray
University of Northern Iowa
Outline: Basics of GPGPU computing. * Introduction to highly-threaded computing * Compare and contrast - serial computing - pthread parallelism - MPI - GPU environments * GPU environments - Graphics cards for graphics output - GPGPU cards * GPGPU development NVidia's CUDA platform OpenCL Others - Software and tools + compiling codes for GPPGPU environments + debugging codes # debugging codes using virtual environments # debugging codes using (real) hardware # debugging tools Performance comparison - Analysis by communication paradigms + No communication (SSE-style computations) + Limited communication (Linear algebra routines) + Communication-dominated (n-body) + namd and other ported packages. ...
[ more ]
Multidimensional Benchmarking with PetaKit
By: Charles Peck
Earlham College
High performance computing raises the bar for benchmarking. Existing benchmarking applications such as Linpack measure raw power of a computer in one dimension, but in the myriad architectures of high performance cluster computing an algorithm may show excellent performance on one cluster while on another cluster of the same benchmark it performs poorly. Petakit aims to improve this weakness of sttandard benchmarking by using multidimensional benchmarking technique that would measure a cluster's abilities via multiple unique tests rather than just one. In its final form, PetaKit will support thirteen different tests - one for each of the the thirteen dwarfs of computing as published in Berkeley's parallel computing research paper. This module describes the current state of PetaKit, its infrastructure, and in broad terms how the greater system works . For a lab, a modified version of PetaKit is included so that students may learn to implement their own software to interface with PetaKit and make their own performance graphs. ...
[ more ]
Introduction to Scientific Computing
By: Jennifer Houchins
Shodor
A set of curricular materials designed to introduce scientific computing to undergraduate or graduate students in science and other STEM disciplines. The module teaches the principles of scientific computing using code examples in the C programming language. The module will demonstrate techniques for dealing with common computing issues such as underflow/overflow, numerical integration, and approxximations....
[ more ]
Scaling the Bootable Cluster CD to Petascale
By: Charles Peck
Earlham College
The LittleFe/BCCD groups have secured funding from Intel and the SC Steering Committee to put 25 LittleFe/BCCD units in the field this summer and fall. This will substantially increase the exposure and usage for the BCCD, something that we're ready for now that we've completed the migration to a Debian based build model with updated toolchains and such. I propose to lead a project which would moove the BCCD to be a more useful tool for petascale education. This would entail the following three sub-projects: 1) Update all the examples that are shipped with the BCCD, e.g. Dave Joiner's new version of GalaxSee and others. Many of the existing examples don't scale well and we believe that they should to be of use as core counts and node counts continue to increase. This would include instrumenting all of them with the PetaKit software we developed previously (which would also be included as a standalone entity with associated curriculum). 2) Develop curriculum modules and associated software programs that use molecular dynamics as the basis for examples of how to develop, debug, test and deploy hybrid models, that is MPI+OpenMP, MPI+CUDA, and MPI+OpenCL. These would be teaching modules designed to be used as stand-alone entities by people either teaching themselves about hybrid models or by faculty teaching a class with a unit on one or more hybrid models. 3) Build the linkages so that jobs could first be run under a scheduler under the BCCD and then easily submitted to TeraGrid or other large-scale resources directly from the BCCD. ...
[ more ]
An Introduction to Parallel Fourier Psuedospectral Methods for Solving Partial Differential Equations
By: Benson Muite
University of Michigan
1) Use of separation of variables to solve partial differential equations. 2) Introduction to fast Fourier transform. 3) Review of time stepping methods for ordinary differential equations. 4) Introduce example partial differential equations, heat equation, Allen-Cahn equation, Schrodinger equation, Navier-Stokes equations 5) Introduce solvers for the above equations in MATLAB to explain how they work in an elementary serial setting. 6) Introduce well documented example parallel solvers for the above equations in Fortran parallelized using MPI. 7) Discuss effect of computer architecture on efficiency of above solvers. 8) Encourage students to modify codes to examine the behavior of other partial differential equations. ...
[ more ]
Applications of Markov Chains to Biological Models
By: Angela Shiflet
Wofford College
Markov Chains have numerous applications in biology from ecology to bioinformatics. This module will explore some of these applications along with the need for high performance computing in solving some of the problems.