June 7‐17, 2010
111 Cummington Mall, Room B25

The Scientific Computing and Visualization (SCV) group, part of Boston University Information Services & Technology, will offer a series of tutorials on high performance computing and scientific visualization. These tutorials are free and open to all members of the Boston University community.

In addition to covering concepts, techniques, and tools which researchers may use in their own computing environments, these tutorials are designed to help you make effective use of the Boston University Scientific Computing Facility and its related scientific visualization resources.

No previous experience is assumed, unless otherwise noted within the tutorial description. Many of the tutorials are hands-on, and are noted as such.

Registration is required, and free of charge. You may register for the entire series, or for only those tutorials which are of interest to you. All sessions will be held at Information Services & Technology, 111 Cummington Mall, Room B25.

We’d like to hear from you about your preferences for future tutorials. Please take this brief survey to help us schedule tutorials that suit your interests and your schedule.

If you have questions about the visualization tutorials, please contact Erik Brisson (ebrisson@bu.edu), and if you have questions about the high performance computing tutorials, please contact Doug Sondak (sondak@bu.edu) or Kadin Tseng (kadin@bu.edu).

Visualization Tutorials – June 7-8

Monday, June 7, 2010

10:00am ‐ 12:00pm: Introduction to Scientific Visualization

We will begin with a brief introduction to techniques and issues involved in scientific visualization, followed by information on graphics software and hardware resources available through SCV. Segments will include:

  • Overview of scientific visualization
  • Using Matlab for visualization
  • The scientific visualization packages VTK and ParaView
  • OpenGL, OpenSceneGraph, and Autodesk Maya for visualization
  • SCV’s DAFFIE and the BU Deep Vision Display wall
  • Designing a visualization workflow for your project

1:00pm ‐ 3:00pm: Graphics and Images for Publication and Presentation

This tutorial will introduce you to the tools and topics to consider when you are preparing graphics and images ‐ both 2D and 3D ‐ for your professional publications and/or presentations. We hope to demystify the idiosyncrasies of the graphics tools and concepts used in the process of creating publication quality graphics. Topics including image quality, resolution, raster and vector file formats, color, and accessibility will be covered. Relevant theoretical background will be included. Requirements from scientific publications and conferences will be addressed.

Practical examples using scientific visualization and plotting software such as MATLAB, ParaView, and Excel will be illustrated.

3:00pm – 4:00pm: Data Wrangling for Scientific Visualization

Using scientific visualization in your research usually involves producing one or more types of output (such as images or animations for presentations, images or animations for the web, and high resolution images for publication) using multiple visualization programs. Moving data through the visualization pipeline often involves converting data file formats, managing large data sets, and staging runs based on resource availability.

Data wrangling is the art of herding data through the production pipeline. We will focus mainly on data formats ‐ for scientific data, scientific visualization data, and 3D graphics files ‐ but will also touch on strategies for managing large projects.

Tuesday, June 8, 2010

1:00pm – 3:00pm: Scientific Visualization Using ParaView (Hands‐on)

ParaView is an open‐source, multi‐platform data analysis and visualization application built on top of VTK. ParaView offers non‐programmers much of the capability of VTK without requiring them to write programs. Through exploration and interaction users can quickly build visualizations to analyze their data using qualitative and quantitative techniques.

This tutorial will present a hands‐on introduction to ParaView. Attendees will get started using this powerful interactive visualization package, and will be guided through the most commonly used visualization techniques.

During this tutorial we will cover the ParaView visualization pipeline, ParaView data types, the ParaView user interface, and common visualization techniques such as Color Mapping, Cutplanes, Contours/Isosurfaces, Hedgehogs, Oriented Glyphs, and Streamlines.

3:00pm – 5:00pm: Scientific Visualization Using VTK (Hands‐on)

The Visualization ToolKit (VTK) is an open source, freely available software system for 3D computer graphics, image processing, and visualization. VTK consists of a C++ class library and several interpreted interface layers including Tcl/Tk, Java, and Python.

This tutorial will present a hands‐on introduction to the Visualization Toolkit (VTK). Attendees will get started using this powerful scientific visualization development software and will be guided through the most commonly used visualization techniques.

During this tutorial we will cover the VTK visualization pipeline, VTK data types, the basics of VTK scripting, and common visualization techniques such as Color Mapping, Cutplanes, Contours/Isosurfaces, Hedgehogs, Oriented Glyphs, and

High Performance Computing Tutorials – June 14-17

Monday, June 14, 2010

1:00pm – 4:00pm: Code Tuning and Parallelization (Hands‐on)

We all hate waiting, whether it’s standing in line at the grocery store or trying to get our code to finish running before the paper deadline. In this tutorial we won’t tackle the grocery line problem, but we will examine methods to evaluate and improve codes’ performance. In the first part of the tutorial we will look at a variety of timers and profilers for determining where the CPU‐intensive parts of the code lie. Also included will be an introduction to quantifying parallel performance. Methods for improving serial code performance will then be examined. The second part of the tutorial will be a hands‐on session in which we will take a sample C or Fortran code and evaluate and improve its performance. Prerequisite is some working knowledge of C or Fortran. Basic knowledge of Unix/Linux will also be helpful.

Tuesday, June 15, 2010

1:00pm – 4:00pm: Parallelization with OpenMP (Hands‐on)

OpenMP is a method for parallelizing C, C++, and Fortran programs on shared‐memory systems, including multi‐core PCs and blade servers. We will first cover basic concepts of multi‐threaded code parallelization. A significant amount of code parallelization can be realized with only a few OpenMP directives, and these will be discussed first to get a “quick start.” Additional OpenMP directives, functions, and environment variables will then be covered. Finally, we will have a hands‐on session in which we will parallelize a sample C or Fortran code. Prerequisite is some working knowledge of C or Fortran. Basic knowledge of Unix/Linux will also be helpful.

Wednesday, June 16, 2010

10:00am – 12:00pm: Tuning MATLAB Codes For Better Performance (Hands‐on)

Being an interpretive language, MATLAB provides many features to enhance the ease‐of‐use of interactive operations. However, these features may have the adverse effect of degrading computational performance. This is especially pronounced on jobs that require long run times and large memory. This tutorial identifies these pitfalls and demonstrates ways to improve user code performance.

1:00pm – 4:00pm MATLAB Parallel Computing Toolbox (Hands‐on)

MATLAB Parallel Computing Toolbox is now available to Boston University’s MATLAB users. This toolbox enables users to solve computationally intensive and data intensive problems on multi‐cored personal computers, laptops, and especially the Katana Linux Cluster managed by the Scientific Computing and Visualization group of Information Services & Technology.

Parallel processing operations such as parallel for‐loops, parallel numerical algorithms, and message‐passing functions let you implement task‐ and data‐parallel algorithms in MATLAB. Converting serial MATLAB applications to parallel MATLAB applications usually requires few code modifications and no programming in a low‐level language.

Thursday, June 17, 2010

10:00am – 12:00pm: Introduction to MPI, Part One (Hands‐on)

On contemporary computers, speeding up computations is most often achieved by employing multiprocessors concurrently on shared‐memory multi‐cored nodes or multiprocessor distributed‐memory clusters. MPI is a library of communication functions to enable and enhance multiprocessing on these computer architectures. This tutorial introduces many of the basic MPI functions through practical examples. Working knowledge of C or Fortran is required to attend the course. Basic knowledge of Unix/Linux will be helpful.

1:00pm – 4:00pm: Introduction to MPI, Part Two (Hands‐on)

This tutorial is a continuation of Introduction to MPI, Part One (Hands‐on) described above. We recommend that, if you are interested in this tutorial, you register for both sessions.