Computer Science

Computer Science

One petabyte of tape storage for under $10,000?

Python for Scientific Computing

Python is a modern general purpose programming language that is popular in scientific computing for its readable syntax and extremely rich ecosystem of scientific and mathematical modules. The morning section will provide an introduction to some widely used packages, including common idioms for manipulating and visualizing data. The afternoon section will cover advanced modules and techniques relevant to high performance computing.

Data Storage Systems and Data Analysis Workflows for Research

In this tutorial you will learn about the data storage systems available for academic research at the University of Minnesota. An overview of the kinds of storage systems that are available, policies for getting access to them, a comparison of their characteristics, and examples of how they can be accessed will be presented. You will also be given an overview of how the characteristics of UMN storage will impact the stability and throughput of various applications and workflows.


This tutorial provides an introduction on how to write a parallel program using OpenMP, and will help researchers write better and more portable parallel codes for shared memory Linux nodes. The course will cover the Compiler Directives (44), Runtime Library Routines (35), and Environment Variables (13) relevant to OpenMP. OpenMP supports C/C++ and Fortran implementations. Examples of how to enable OpenMP on the Intel, GNU, and PGI compilers will be given. The fork-join model of thread parallel execution will be described.


This one-day, hands-on workshop provides an introduction on how to write a parallel program using MPI and will help researchers write better and portable parallel codes for distributed-memory Linux clusters. The tutorial will focus on basic point-to-point communication and collective communications, which are the most commonly used MPI routines in high- performance scientific computation. In addition, the advantage of using MPI non-blocking communication will be introduced. Each session of the workshop will combine a lecture with hands-on practice.

Parallel Computing Overview

This tutorial will help users learn the basics of parallel computation methods, including strategies for collecting calculations together for parallel execution. A brief description of parallel programming using MPI message passing will be given. A brief description of parallel programming using OpenMP will also be given. The hybrid MPI/OpenMP model will be briefly described. This will be a fast crash course on the most basic parallel computation and programming methods. Examples of how to compile and execute simple parallel programs will be given. 

Compiling and Debugging

This tutorial will help users learn the basics of compiling and debugging their code on MSI systems. Particular attention will be paid to code written in Fortran, C, and C++. Basic methods for debugging will be outlined, with users being able to explore different debugging tools. This tutorial will focus primarily on compiling serial programs,but brief information on compiling and debugging parallel programs will also be given. Attendees should have a basic knowledge of Linux and rudimentary knowledge of a programming language.

Interactive Computing

This two part tutorial will first introduce you to the concept of interactive high performance computing, as distinct from batch computing. We will cover the Citrix (Windows) and NICE EnginFrame (Linux) interactive computing environments hosted by MSI. Attendees will learn how to launch virtual desktops at MSI, connect to a variety of resources, load software modules, and build complex research workflows.

Intel Xeon Phi Coprocessor Developer Training

Intel will be providing training, to help software developers optimize their codes for the Xeon Phi coprocessor. This training is being held at the Minnesota Supercomputing Institute at the University of Minnesota. Current University students, staff, and faculty are invited.

See the program description. While the training is free, you must pre-register.


The training will cover:

Introduction to Linux

This tutorial will provide an introduction to the Linux operating system, with particular attention paid to working from the command line. The tutorial will cover basics such as fundamental commands, editing files, understanding directories and permissions, and remote access. No previous Linux experience is required.