Graduate Course: CS 6014

Introduction to Computation as a Research Tool

This three-credit course has been designed by the University of Virginia Alliance for Computational Science and Engineering to provide centralized instruction in programming, computational algorithms, and use of the university’s high-powered computing resources to UVA graduate students who plan on intensive use of computational methods in their research.

Please see the syllabus for more details and contact staff at uvacse@virginia.edu with any questions. The course will be offered in the Spring of 2013. Registration must be carried out through the UVa Student Information System (SIS).

Workshops

High Performance Parallel Computing Bootcamp

Targeted at graduate students, staff, and faculty with computational science and engineering problems that demand high performance, this course will introduce participants to the basics of high-performance parallel computing. When successfully completed, the attendee will know how to:

  • optimize sequential applications,
  • understand the basics of parallel computing,
  • write basic MPI and OpenMP applications

Attendees will use queuing systems such as PBS and existing high-end resources at UVa.
To register, follow this link.

Short Courses

UVACSE Short Courses are open to all UVA students, faculty and staff and are there is no cost to attend.  Please visit Events to find the schedule for upcoming courses and to register.

Introduction to Unix

This short course will give a 2-hour introduction to the Unix command line environment, including common usage patterns such as directory management, file management, and user environment set up.

Bash Shell Scripting

This course will provide an introduction to the BASH shell scripting environment. Attendees will learn how to produce simple shell scripts to automate repetitive tasks and to write jobs scripts for PBS. Prerequisite: Introduction to Unix or equivalent.

Introduction to Python

This course will provide a very basic introduction to the Python programming language. No previous programming experience is required.

Introduction to Matlab

This is an introduction to the Matlab technical computing software package. It will provide an overview of the Matlab interactive development environment, Matlab programming, and Matlab graphics.

Parallel Computing with Matlab

This is a hands-on introduction to using the Parallel Computing Toolbox in Matlab to solve computationally and data-intensive problems on multicore and multiprocessor computers. The class will culminate with examples of how to submit parallel Matlab programs to the ITC Linux clusters.

Prerequisite: Unix and Bash or equivalent. You must have the ability to operate in a Unix environment to submit parallel Matlab programs to the Linux clusters. You should also already be familiar with using Matlab. This class is primarily meant for graduate students doing research.

Please be sure that you have a research-enabled account that you have successfully logged into before you attend the class. If you do not have one, please visit www.itc.virginia.edu/research/hpc-account (find the “submit a request” link) at least a day before the class.

Parallel Computing with Mathematica

This is a hands-on introduction to using the parallel computing capabilities of Mathematica 7.0 to solve computationally intensive problems on multicore and multiprocessor computers. The class will culminate with examples of how to submit parallel Mathematica programs to the ITS Linux clusters.

Prerequisite: Unix and Bash or equivalent. You must have the ability to move around in a Unix filesystem, to copy files, and so forth. You should also decide on a Unix editor beforehand (gedit, nano, vi, or emacs) and learn some basics of editing with it. You do not need to be fluent with the editor, just know how to move around in a file and make minor changes.

Please be sure that you have a research-enabled account before you attend the class. If you do not have one, please visit www.its.virginia.edu/research/hpc-account (find the “submit a request” link) at least a day before the class.

Programming in Fortran 2003

This four-hour course will provide an introduction to programming in Fortran 2003.

Introduction to the ITC Linux Clusters

This is a hands-on introduction to using the ITC Linux clusters. We will practice editing files, writing a PBS script, and submitting to the queue. As time permits we will compile and submit a parallel (MPI) job.

Prerequisite: Unix Basics or equivalent. You must have the ability to move around in a Unix filesystem, to copy files, and so forth. You should also decide on a Unix editor beforehand (gedit, nano, vi, or emacs) and learn some basics of editing with it. You do not need to be fluent with the editor, just know how to move around in a file and make minor changes.

Please be sure that you have a research-enabled account before you attend the class. If you do not have one, please visit www.itc.virginia.edu/research/hpc-account (find the “submit a request” link) at least a day before the class.

You may bring your own laptop, but if you do be sure that you have SecureCRT installed before class. You may also use the (NX client or X server such as XminG (http://www.straightrunning.com/XmingNotes/).

Users who wish to hone their skills at writing PBS scripts, which are shell scripts, should also consider attending the Bash Scripting short course.

Introduction to Parallel R

This is an introduction to using the R programming language across multiple cores or nodes of a multicore or multinode system. R is primarily a serial language but several add-ons allow a single program to run on multiple processors at once, which can greatly speed it up if done carefully.

Prerequisite: Introduction to the ITS clusters or equivalent. Multicore R can be run on your own workstation (generally at least 4 cores are required for it to be worthwhile) but for large-scale parallelism you will need to use the cluster.

Introduction to Using the Cross Campus Grid (XCG)

This is a hands-on tutorial targeted at XCG users who are doing (or would like to do) high-throughput computing or MPI computing. See the Virginia Center for Grid Research website for more information about grid computing.