Parallel Programming in Matlab, Python, and R

ABSTRACT:  RC is pleased to offer a workshop for those who are interested in learning more about parallelization in scripted languages. 

AUDIENCE:  People who know how to code in one of the above languages to do serial tasks, but want to understand how to code in parallel.

CORE COMPETENCIES:  We expect you to know the following:   

How to SSH
Have a basic understanding of Linux including how to navigate a Linux filesystem from the command line
How to use a text editor in a remote environemnt
How to Program in your particular language

WHEN:  May 15-18, 2017; 9 am-5 pm

Attendance on May 15 is required for all attendees.  For May 16-18, you may attend all sessions or just the one relevant to your appropriate language.  The information given on days 16-18 will not be dependent on each other, but we will expect you to know everything we cover on May 15.

WHERE: 

May 15:  ARCE 620

ARCE Building
East Campus
3100 Marine Street
Boulder, CO

May 16, 17, 18:  COMP 123

COMP (Computer Center) Building
East Campus
3645 Marine Street
Boulder, CO

We will not be offering this workshop over Zoom.

COST: 

$75/person/day for May 16-18 (May 15 is included in the cost)

Lunch and breaks are included
 

HOW TO REGISTER:  https://www.regonline.com/parallelprogrammingworkshop1

If you need assistance paying for the registration fee, please fill out an application to receive a scholarship here:  https://docs.google.com/a/colorado.edu/forms/d/e/1FAIpQLSed9symMDhGgMWUwFl8IB2_Z4L61hatRmhzFuZX0A5JBGs6Pw/viewform

 

Applications are due May 1. 

 

TOPICS:

Agenda may change prior to the workshop.

May 15, 2017

  • 09:00 am - 09:15 am:  Introduction
  • 09:15 am - 10:15 am:  Basics of Parallel Computing  (Shelley Knuth)
  • 10:15 am - 10:30 am:  Break
  • 10:30 am - 12:30 pm:  Best Practices in Parallel Computing (Pete Ruprecht)
  • 12:30 pm – 01:30 pm:  Lunch
  • 01:30 pm – 03:30 pm:  Using Slurm in Parallel Computing (Pete Ruprecht)
  • 03:30 pm – 03:45 pm:  Break
  • 03:45 pm – 04:45 pm:  Profiling your code (Thomas Hauser)

May 16, 2017:

  • 09:00 am - 09:15 am:  Introduction
  • 09:15 am - 10:30 am:  Matlab General Parallel Constructs, Vectorization, Multi-threading, and Parfor (Shelley Knuth)
  • 10:30 am - 10:45 am:  Break
  • 10:45 am - 12:15 pm:   Matlab Spmd, Distributed arrays, GPUs, and the cloud (Shelley Knuth)
  • 12:15 pm – 01:15 pm:  Lunch
  • 01:15 pm – 02:30 pm:  High Throughput Computing with Bash scripting and GNU parallel (Jonathon Anderson)
  • 02:30 pm – 02:45 pm:  Break
  • 02:45 pm – 04:00 pm:  High Throughput Computing with Job Arrays and the CURC loadbalancer (Jonathon Anderson)

May 17, 2017:

  • 09:00 am - 09:15 am:  Introduction
  • 09:15 am - 10:30 am:  Efficient Serial Programming using NumPy
  • 10:30 am - 10:45 am:  Break
  • 10:45 am - 12:15 pm:   Parallel Programming with IPyParallel
  • 12:15 pm – 01:15 pm:  Lunch
  • 01:15 pm – 02:30 pm:  Advanced Topics:  Python Environment Management;  MPI4PY
  • 02:30 pm – 02:45 pm:  Break
  • 02:45 pm – 04:00 pm:  Parallelize Your Code!  (Hackathon/Consulting time)

May 18, 2017:

  • 09:00 am - 09:15 am:  Introduction
  • 09:15 am - 10:00 am:  Efficient Serial Programming in R
  • 10:00 am - 10:30 am:  Writing Serial R programs that can be parallelized easily
  • 10:30 am - 10:45 am:  Break
  • 10:45 am - 12:15 pm:   Parallel Programming in R with the parallel package
  • 12:15 pm – 01:15 pm:  Lunch
  • 01:15 pm – 02:30 pm:  Parallel Programming in R with the Rmpi package
  • 02:30 pm – 02:45 pm:  Break
  • 02:45 pm – 04:00 pm:  Parallelize Your Code!  (Hackathon/Consulting time)