Difference between revisions of "2016 Ontario Summer School for High Performance Computing Central"

From oldwiki.scinet.utoronto.ca
Jump to navigation Jump to search
 
(89 intermediate revisions by 5 users not shown)
Line 7: Line 7:
 
Below are descriptions and course material for the Central version, given from July 11th to July 15th, 2016, in Toronto.
 
Below are descriptions and course material for the Central version, given from July 11th to July 15th, 2016, in Toronto.
  
 +
The location of this version of the summer school is:
 +
 +
'''Wallberg Memorial Building'''<br />
 +
'''Rooms 116 and 119'''<br />
 +
University of Toronto<br />
 +
St. George Campus<br />
 +
200 College Street<br />
 +
Toronto, Ontario, M5S 3E5<br />
 +
Canada
 +
 +
More information can be found below and in the [[Media:handout2016.pdf|handout package]].
 +
 +
===Group Picture===
 +
 +
[[File:grouppic_small.jpg|640px]]
 +
 +
Taken Wednesday July 13, 2016.
  
 
__TOC__
 
__TOC__
  
 +
===Sessions===
  
===Introduction to HPC and SciNet===
+
====Introduction to HPC and SciNet====
  
 
=====Abstract=====
 
=====Abstract=====
Line 23: Line 41:
 
''Location''
 
''Location''
  
MC 252
+
Wallberg Building, Room 116
 
 
5 King's College Road
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 37: Line 51:
  
 
=====Slides and other material=====
 
=====Slides and other material=====
 +
 +
* [https://support.scinet.utoronto.ca/~nolta/HPC_intro.pdf Slides]
 +
  
 
----
 
----
  
===Programming Shared Memory Systems with OpenMP===
+
====Programming Shared Memory Systems with OpenMP====
  
 
=====Abstract=====
 
=====Abstract=====
Line 49: Line 66:
 
''Time/date''
 
''Time/date''
  
Monday July 11, 2016, 09:30 - 12:30
+
Monday July 11, 2016, 13:30 - 16:30<br />
 +
Tuesday July 12, 2016, 09:30 - 12:30
  
 
''Location''
 
''Location''
  
MC 252
+
Wallberg Building, Room 116
 
 
5 King's College Road
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 68: Line 82:
 
=====Slides and other material=====
 
=====Slides and other material=====
  
 +
* [[Media:OpenMP2016.pdf | Slides]]
 +
* [[Media:OpenMP_SS2015_code.tar.gz|Code]]
  
 
----
 
----
  
===Introduction to the Linux Shell===
+
====Introduction to the Linux Shell====
  
====Abstract====
+
=====Abstract=====
 +
Working with many of the HPC systems in Ontario involves using the Linux/UNIX command line. This provides a very powerful interface, but it can be quite daunting for the uninitiated. In this half-day session, you can become initiated with this course. This hands on session will cover basic commands and scripting, as well as touching on some powerful constructs like regular expressions. It could be a great boon for your productivity!
  
Working with many of the HPC systems in Ontario involves using the linux/unix command line. This provides a very powerful interface, but it can be quite daunting for the uninitiated. Become initiated with this course. This hands on session will cover basic commands and scripting, as well as touching on some powerful constructs like regular expressions. It could be a great boon for your productivity!
+
=====Details=====
 
 
====Details====
 
 
''Time/date''
 
''Time/date''
  
Monday July 13, 9:30 - 12:30
+
Monday July 11, 13:30 - 16:30
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 404
+
Wallberg Building, Room 119
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 94: Line 105:
 
Dr. Mike Nolta (SciNet)
 
Dr. Mike Nolta (SciNet)
  
====Prerequisites====
+
=====Prerequisites=====
 
A laptop with a linux-like environment.
 
A laptop with a linux-like environment.
  
====Slides and other material====
+
=====Slides and other material=====
* [[Media:SS2015_Introduction_to_the_Unix_Shell.pdf|Slides]]
 
 
 
  
 +
* [[Media:intro_to_the_unix_shell.pdf | Slides ]]
  
 
----
 
----
  
===Data Analysis with R===
+
====R for Data Science====
  
 
=====Abstract=====
 
=====Abstract=====
Line 113: Line 123:
 
''Date/time''
 
''Date/time''
  
Monday July 13, 9:30 - 12:30
+
Tuesday July 12, 2016, 09:30 - 12:30
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 405
+
Wallberg Building, Room 119 <br>
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 129: Line 135:
 
=====Prerequisites=====
 
=====Prerequisites=====
  
Some programming experience in any language. You should have used and written functions. Bring a laptop with a R and Rstudio installed.
+
Some programming experience in any language. You should have used and written functions. Bring a laptop with R or Rstudio installed.
  
 
=====Slides and other material=====
 
=====Slides and other material=====
[https://wiki.scinet.utoronto.ca/wiki/images/7/73/Intro-R.pdf Slides].
 
  
 +
* [https://wiki.scinet.utoronto.ca/wiki/images/b/b1/Intro_R.pdf Slides]
  
 
----
 
----
  
 +
====Programming Clusters with MPI====
  
===Parallel R===
+
=====Abstract=====  
 
+
In this 1.5-day session, through lectures interspersed with hands-on labs, the students will learn the basics of MPI programming. Examples and exercises will be based on parallelization of common scientific computing problems.
=====Abstract=====
 
This session will cover parallel programming R, with a focus on parallel data analysis. Topics covered include snow, parallel, and foreach/doparallel.
 
  
 
=====Details=====
 
=====Details=====
 
 
''Time/date''
 
''Time/date''
  
Monday July 13, 13:30 - 16:30
+
Tuesday July 12, 2016, 13:30 - 16:30<br />
 +
Wednesday July 13, 2016, 09:30 - 12:30<br />
 +
Wednesday July 13, 2016, 13:30 - 16:30<br />
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 405
+
Wallberg Building, Room 116
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
  
Dr. Erik Spence (SciNet)
+
Dr. Scott Northrup (SciNet)
  
 
=====Prerequisites=====
 
=====Prerequisites=====
Experience with programming in R and a rudimentary understanding of parallel computing.
+
C and/or Fortran scientific programming; experience editing and compiling code in a Linux environment.
  
 
=====Slides and other material=====
 
=====Slides and other material=====
[https://wiki.scinet.utoronto.ca/wiki/images/a/ac/Parallel-R.pdf Slides].
+
* [[Media:MPIss2016.pdf | Slides ]]
 
 
 
 
 
----
 
----
  
 
+
====Parallel R for Data Science====
 
 
===Scientific Computing with Python===
 
  
 
=====Abstract=====
 
=====Abstract=====
In this session, you will be taught how to use python for research computing purposes. Topics include: the basics of python, automation, numpy, scipy, file i/o, and visualization.
+
This half-day session will cover parallel programming in R, with a focus on parallel data analysis. Topics covered will include snow, parallel, and foreach/doparallel.
  
 
=====Details=====
 
=====Details=====
''Time/date'''
 
  
Tuesday July 14, 9:30 - 12:30
+
''Time/date''
 +
 
 +
Tuesday July 12, 2016, 13:30 - 16:30
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 405
+
Wallberg Building, Room 119
 
 
35 St. George Street
 
  
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 195: Line 191:
  
 
=====Prerequisites=====
 
=====Prerequisites=====
A bit of coding experience in any programming or scripting language. Command-line experience in Linux is a plus.
+
Experience with programming in R and a rudimentary understanding of parallel computing.
  
 
=====Slides and other material=====
 
=====Slides and other material=====
[https://wiki.scinet.utoronto.ca/wiki/images/f/f3/Intro-Python.pdf Slides].
 
  
 +
* [https://wiki.scinet.utoronto.ca/wiki/images/0/02/Parallel_R.pdf Slides]
  
 
----
 
----
  
 
+
====Python for Scientific Computing====
===Python for High Performance Computing===
 
  
 
=====Abstract=====
 
=====Abstract=====
This session will cover parallel programming in python, with a focus on parallel data analysis. We will cover subprocess, multiprocessing, pypar and other parallel-enabling python packages.
+
In this half-day session, you will be taught how to use python for research computing purposes. Topics include: the basics of python, automation, numpy, scipy, file i/o, and visualization.
  
 
=====Details=====
 
=====Details=====
 
''Time/date''
 
''Time/date''
  
Tuesday July 14, 13:30 - 16:30
+
Wednesday July 13, 9:30 - 12:30
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 405
+
Wallberg Building, Room 119
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 227: Line 218:
  
 
=====Prerequisites=====
 
=====Prerequisites=====
Python programming experience and a rudimentary understanding of parallel computing.
+
A bit of coding experience in any programming or scripting language. Command-line experience in Linux is a plus.
  
 
=====Slides and other material=====
 
=====Slides and other material=====
[https://wiki.scinet.utoronto.ca/wiki/images/2/2b/Parallel-Python.pdf Slides].
 
 
  
 +
* [https://wiki.scinet.utoronto.ca/wiki/images/1/1a/Intro_Python.pdf Slides]
 
----
 
----
  
  
===Programming Clusters with MPI===
+
====Python for High Performance Computing====
  
 
=====Abstract=====
 
=====Abstract=====
In this two-day session, through lectures interspersed with hands-on labs, the students will learn the basics of MPI programming. Examples and exercises will be based on parallelization of common scientific computing problems.
+
This half-day session will cover parallel programming in python, with a focus on parallel data analysis. We will cover subprocess, multiprocessing, mpi4py and other parallel-enabling python packages.
  
 
=====Details=====
 
=====Details=====
 
''Time/date''
 
''Time/date''
  
Wednesday July 15, 9:30 - 16:30
+
Wednesday July 13, 2016, 13:30 - 16:30
 
 
Thursday July 16, 9:30 - 16:30
 
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 404
+
Wallberg Building, Room 119
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
  
Dr. Scott Northrup (SciNet)
+
Dr. Ramses van Zon (SciNet)
  
 
=====Prerequisites=====
 
=====Prerequisites=====
Programming experience with Fortran or C/C++.
+
A bit of coding experience in any programming or scripting language. Command-line experience in Linux is a plus.
  
 
=====Slides and other material=====
 
=====Slides and other material=====
The slides for this class can be found [http://support.scinet.utoronto.ca/~northrup/SS2015 here].
 
  
 +
* [[Media:hpcpy.pdf | Parallel Python Slides]]
 +
* [[Media:hpcpycode.tar.gz | Parallel Python Code]]
  
 
----
 
----
  
 
+
====Programming GPUs with CUDA====
===Programming GPUs with CUDA===
 
  
 
=====Abstract=====
 
=====Abstract=====
This is an introductory course covering programming and computing on GPUs---graphics processing units---which are an increasingly common presence in massively parallel computing architectures. This session will cover both of the available C-like programming frameworks: NVIDIA’s CUDA-C. The basics of GPU programming will be covered, and students will work through a number of hands on examples. Demonstrations of profiling and debugging applications running on the GPU will also be included. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.
+
This two-day session is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. This session will cover both of the available C-like programming frameworks: NVIDIA’s CUDA C. The basics of GPU programming will be covered, and students will work through a number of hands on examples. Demonstrations of profiling and debugging applications running on the GPU will also be included. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.
  
 
=====Details=====
 
=====Details=====
 
''Time/date''
 
''Time/date''
  
Wednesday July 15, 9:30 - 16:30  
+
Thursday July 14, 2016, 09:30 - 12:30<br />
 
+
Thursday July 14, 2016, 13:30 - 16:30<br />
Thursday July 16, 9:30 - 16:30
+
Friday July 15, 2016, 09:30 - 12:30<br />
 +
Friday July 15, 2016, 13:30 - 16:30  
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 405
+
Wallberg Building, Room 116
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructors''
 
''Instructors''
Line 297: Line 278:
  
 
=====Slides and other materials=====
 
=====Slides and other materials=====
''Day 1:''
 
* [[Media:CUDA_summer_school_2015_central.pdf|Slides]]
 
* [[Media:CUDA_day1.tar.gz|Code]]
 
See also [http://ppomorsk.sharcnet.ca http://ppomorsk.sharcnet.ca]
 
 
''Day 2:''
 
* [[Media:CUDA2.pdf|Slides]]
 
  
 +
[http://ppomorsk.sharcnet.ca/CUDA_day1_2016.tar.gz slides and code for day 1]
  
 
----
 
----
  
 
+
====Visualization====
===Visualization===
 
  
 
=====Abstract=====
 
=====Abstract=====
The first part of this session will be a basic introduction to general-purpose scientific visualization tools such as gnuplot, grace(xmgr), remote tools (tunneling, VNC), python's matplotlib, and examples from other. The second part will be a mix of lecture and hands-on to introduce more specialized scientific visualization software such as vmd, paraview, and visit.
+
The first part of this whole-day session will be a basic introduction to general-purpose scientific visualization tools such as gnuplot, grace(xmgr), remote tools (tunneling, VNC), python's matplotlib, and examples from other. The afternoon part will be a mix of lecture and hands-on to introduce more specialized scientific visualization software such as vmd, paraview, and visit.
  
 
=====Details=====
 
=====Details=====
 
''Time/date''
 
''Time/date''
  
Friday July 17, 9:30 - 16:30
+
Thursday July 14, 2016, 09:30 - 12:30<br />
 +
Thursday July 14, 2016, 13:30 - 16:30
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 404
+
Wallberg Building, Room 119
 
 
35 St. George Street
 
 
 
Toronto, ON M5S 1A4
 
  
 
''Instructor''
 
''Instructor''
Line 331: Line 302:
  
 
=====Prerequisites=====
 
=====Prerequisites=====
Software installed, for the morning session: gnuplot, ssh (graphic client), vnc client, python and matplotlib; afternoon session: ParaView & VisIt.
+
Software installed, for the morning session: gnuplot, xmgr ([http://plasma-gate.weizmann.ac.il/Grace/ Grace],[http://plasma-gate.weizmann.ac.il/Xmgr/ xmgr]), ssh (graphic client), your favorite vnc client (egs. [https://www.realvnc.com/download/viewer/ RealVNC],[http://www.tightvnc.com/download.php TightVNC]), python and matplotlib ([http://matplotlib.org/ matplotlib]); afternoon session: ParaView ([http://www.paraview.org/download/ ParaView]) and VisIt ([https://wci.llnl.gov/simulation/computer-codes/visit/executables VisIt]).
 +
 
 +
For windows machines, it will be useful to install a
 +
[https://wiki.scinet.utoronto.ca/wiki/index.php/FAQ#Do_you_have_a_recommended_ssh_program_that_will_allow_scinet_access_from_Windows_machines.3F ssh-client]
 +
with graphics capabilities.
  
 
=====Slides and other material=====
 
=====Slides and other material=====
Morning session: [http://www.scinethpc.ca/~mponce/ss2015/ss2015_visualization-morning.pdf Visualization I]
+
======Slides======
  
Afternoon session: [http://www.scinethpc.ca/~mponce/ss2015/ss2015_visualization-afternoon.pdf Visualization II]
+
* [https://support.scinet.utoronto.ca/~mponce/ss2016/ss2016_visualization-I.pdf Morning Session]
  
Samples to use during the tutorial: [http://www.scinethpc.ca/~mponce/ss2015/data.tar.gz Data sets]
+
* [https://support.scinet.utoronto.ca/~mponce/ss2016/ss2016_visualization-II.pdf Afternoon Session]
  
An example of a complete visualization session in VisIt: [http://www.scinethpc.ca/~mponce/ss2015/noise-example_VisIt.tar.gz VisIt session] (un-tar this file and load the session from the File/Menu in VisIt using "Restore session with sources...", then choose your local "noise.silo" file to be used within the session).
+
======Datasets & Scripts======
 +
* Morning datasets and scripts: [[Media:Data_scripts.tar.gz | datsets and scripts]]
 +
 
 +
* Python scripts: [[Media:Codes_examples.tar.gz‎ | python's scripts]]
 +
 
 +
* [https://support.scinet.utoronto.ca/~mponce/ss2016/datasets.tar.gz Afternoon dataset]
 +
 
 +
* [https://support.scinet.utoronto.ca/~mponce/ss2016/aneurysm_data.tar.gz Aneurysm dataset]
 
----
 
----
  
===Debugging, Optimization, and Best Practices===
+
====Debugging====
  
 
=====Abstract=====
 
=====Abstract=====
Debugging is an important step in developing a new code, or porting an old one to a new machine. We will discuss the debugging of frequently encountered bugs in serial code with gdb and the debugging of parallel (MPI and threaded) codes with DDT on live systems. Next, we will present general issues, common pitfalls and optimization strategies that are application to HPC systems. By using profiling tools available for parallel programs, we can see when the bottlenecks are. We can try to alleviate them by following common best practices, allowing one to obtain their results more quickly and at the same time minimize their burden on shared system resources. Walk-through examples and case studies will be presented during the session to illustrate the concepts.
+
Debugging is an important step in developing a new code, or porting an old one to a new machine. In this half-day session, we will discuss the debugging of frequently encountered bugs in serial code with gdb and the debugging of parallel (MPI and threaded) codes with DDT on live systems.
  
 
=====Details=====
 
=====Details=====
 
''Date/time''
 
''Date/time''
  
Friday July 17, 9:30 - 16:30
+
Friday July 15, 09:30 - 12:30
  
 
''Location''
 
''Location''
  
Galbraith Building, Room 405
+
Wallberg Building, Room 119
  
35 St. George Street
+
Note the different room number!
  
Toronto, ON M5S 1A4
 
  
 
''Instructors''
 
''Instructors''
  
Dr. Ramses van Zon and Dr. Mike Nolta (SciNet)
+
Dr. Marcelo Ponce (SciNet)
  
 
=====Prerequisites=====
 
=====Prerequisites=====
 
Basic familiarity with a high-level language (C/C++/Fortran) as well as compiling and running programs via the command line environment on a HPC system.
 
Basic familiarity with a high-level language (C/C++/Fortran) as well as compiling and running programs via the command line environment on a HPC system.
 +
  
 
=====Slides and other material=====
 
=====Slides and other material=====
* [[Media:DebugSS2015.pdf | Slides for the debugging session]]
+
* [[Media:debug.pdf | Slides]]
* [[Media:DebugSS2015code.tar.gz | Debuggable code ]]
+
 
* [[Media:SSHPC_OBP2013.pdf|Slides for the best practices session]]
+
* [[Media:Debugcode.tar.gz | Examples]]
  
 +
----
  
 +
====Bring Your Own Code====
  
 +
=====Abstract=====
 +
The final afternoon of the summer school is your chance to get help with your own code from the SciNet software analysts. Bring your code, explain your problem or concerns, and we'll give you advice and work with you to try to improve it.
  
===Group Photo===
+
=====Details=====
 +
''Date/time''
  
 +
Friday July 15, 2016, 13:30 - 16:30
  
[[File:GroupPhotoSS2015.jpg|800px]]
+
''Location''
  
<!--
+
Wallberg Building, Room 119
  
Forty students, who completed three out of five days, were awarded an "Ontario Summerschool on HPC Certificate". -->
+
''Instructors''
 +
 
 +
Various SciNet software analysts.
 +
 
 +
=====Prerequisites=====
 +
None.

Latest revision as of 08:02, 15 July 2016


About

The 2016 Ontario Summer School on High Performance Computing, whose second installment of the year will be hosted by SciNet, provides attendees with opportunities to learn and share knowledge and experience in high performance and technical computing. The format: a five-day workshop with mixed lectures and hands-on sessions on a number of selected subjects, including shared memory programming, distributed memory programming, parallel data processing, and general purpose graphics processing unit programming.

Below are descriptions and course material for the Central version, given from July 11th to July 15th, 2016, in Toronto.

The location of this version of the summer school is:

Wallberg Memorial Building
Rooms 116 and 119
University of Toronto
St. George Campus
200 College Street
Toronto, Ontario, M5S 3E5
Canada

More information can be found below and in the handout package.

Group Picture

Grouppic small.jpg

Taken Wednesday July 13, 2016.

Sessions

Introduction to HPC and SciNet

Abstract

This half-day session will provide an introduction to basic concepts of high-performance computing. It is intended to be a high level primer for those largely new to HPC, and serve as a foundation upon which to build over the coming days. Topics will include motivation for HPC, essential issues, problem characteristics as they apply to parallelism and a high level overview of parallel programming models. Strategies of running large sets of serial processes using e.g. GNU parallel, will also be presented.

Details

Time/date

Monday July 11, 2016, 09:30 - 12:30

Location

Wallberg Building, Room 116

Instructor

Dr. Mike Nolta (SciNet)

Prerequisites

Basic Linux skills are useful to follow along. If you do not have these, consider taking the "Intro to the Linux Shell" in the afternoon.

Slides and other material



Programming Shared Memory Systems with OpenMP

Abstract

In these two half-day sessions, lectures and hands-on labs are interspersed, and the students will learn the basics of shared memory programming with OpenMP. In particular, we will discuss the OpenMP's threads, memory, and performance, reductions and load balancing. We will also discuss extensions to heterogeneous systems such as offered by the OpenMP 4.0 and OpenACC standards.

Details

Time/date

Monday July 11, 2016, 13:30 - 16:30
Tuesday July 12, 2016, 09:30 - 12:30

Location

Wallberg Building, Room 116

Instructor

Dr. Ramses van Zon (SciNet)

Prerequisites

C/C++ and/or Fortran scientific programming; Experience editing and compiling code in a Linux environment.

Slides and other material

Introduction to the Linux Shell

Abstract

Working with many of the HPC systems in Ontario involves using the Linux/UNIX command line. This provides a very powerful interface, but it can be quite daunting for the uninitiated. In this half-day session, you can become initiated with this course. This hands on session will cover basic commands and scripting, as well as touching on some powerful constructs like regular expressions. It could be a great boon for your productivity!

Details

Time/date

Monday July 11, 13:30 - 16:30

Location

Wallberg Building, Room 119

Instructor

Dr. Mike Nolta (SciNet)

Prerequisites

A laptop with a linux-like environment.

Slides and other material

R for Data Science

Abstract

This session offers a brief introduction to R, with a focus on data analysis and statistics.

Details

Date/time

Tuesday July 12, 2016, 09:30 - 12:30

Location

Wallberg Building, Room 119

Instructor

Dr. Erik Spence (SciNet)

Prerequisites

Some programming experience in any language. You should have used and written functions. Bring a laptop with R or Rstudio installed.

Slides and other material

Programming Clusters with MPI

Abstract

In this 1.5-day session, through lectures interspersed with hands-on labs, the students will learn the basics of MPI programming. Examples and exercises will be based on parallelization of common scientific computing problems.

Details

Time/date

Tuesday July 12, 2016, 13:30 - 16:30
Wednesday July 13, 2016, 09:30 - 12:30
Wednesday July 13, 2016, 13:30 - 16:30

Location

Wallberg Building, Room 116

Instructor

Dr. Scott Northrup (SciNet)

Prerequisites

C and/or Fortran scientific programming; experience editing and compiling code in a Linux environment.

Slides and other material

Parallel R for Data Science

Abstract

This half-day session will cover parallel programming in R, with a focus on parallel data analysis. Topics covered will include snow, parallel, and foreach/doparallel.

Details

Time/date

Tuesday July 12, 2016, 13:30 - 16:30

Location

Wallberg Building, Room 119


Instructor

Dr. Erik Spence (SciNet)

Prerequisites

Experience with programming in R and a rudimentary understanding of parallel computing.

Slides and other material

Python for Scientific Computing

Abstract

In this half-day session, you will be taught how to use python for research computing purposes. Topics include: the basics of python, automation, numpy, scipy, file i/o, and visualization.

Details

Time/date

Wednesday July 13, 9:30 - 12:30

Location

Wallberg Building, Room 119

Instructor

Dr. Erik Spence (SciNet)

Prerequisites

A bit of coding experience in any programming or scripting language. Command-line experience in Linux is a plus.

Slides and other material


Python for High Performance Computing

Abstract

This half-day session will cover parallel programming in python, with a focus on parallel data analysis. We will cover subprocess, multiprocessing, mpi4py and other parallel-enabling python packages.

Details

Time/date

Wednesday July 13, 2016, 13:30 - 16:30

Location

Wallberg Building, Room 119

Instructor

Dr. Ramses van Zon (SciNet)

Prerequisites

A bit of coding experience in any programming or scripting language. Command-line experience in Linux is a plus.

Slides and other material

Programming GPUs with CUDA

Abstract

This two-day session is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. This session will cover both of the available C-like programming frameworks: NVIDIA’s CUDA C. The basics of GPU programming will be covered, and students will work through a number of hands on examples. Demonstrations of profiling and debugging applications running on the GPU will also be included. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.

Details

Time/date

Thursday July 14, 2016, 09:30 - 12:30
Thursday July 14, 2016, 13:30 - 16:30
Friday July 15, 2016, 09:30 - 12:30
Friday July 15, 2016, 13:30 - 16:30

Location

Wallberg Building, Room 116

Instructors Dr. Pawel Pomorski and Dr. Sergey Mashchenko (SHARCNET)

Prerequisites

C/C++ scientific programming, experience editing and compiling code in a Linux environment. Some experience with CUDA and/or OpenMP a plus.

Slides and other materials

slides and code for day 1


Visualization

Abstract

The first part of this whole-day session will be a basic introduction to general-purpose scientific visualization tools such as gnuplot, grace(xmgr), remote tools (tunneling, VNC), python's matplotlib, and examples from other. The afternoon part will be a mix of lecture and hands-on to introduce more specialized scientific visualization software such as vmd, paraview, and visit.

Details

Time/date

Thursday July 14, 2016, 09:30 - 12:30
Thursday July 14, 2016, 13:30 - 16:30

Location

Wallberg Building, Room 119

Instructor Dr. Marcelo Ponce (SciNet)

Prerequisites

Software installed, for the morning session: gnuplot, xmgr (Grace,xmgr), ssh (graphic client), your favorite vnc client (egs. RealVNC,TightVNC), python and matplotlib (matplotlib); afternoon session: ParaView (ParaView) and VisIt (VisIt).

For windows machines, it will be useful to install a ssh-client with graphics capabilities.

Slides and other material
Slides
Datasets & Scripts

Debugging

Abstract

Debugging is an important step in developing a new code, or porting an old one to a new machine. In this half-day session, we will discuss the debugging of frequently encountered bugs in serial code with gdb and the debugging of parallel (MPI and threaded) codes with DDT on live systems.

Details

Date/time

Friday July 15, 09:30 - 12:30

Location

Wallberg Building, Room 119

Note the different room number!


Instructors

Dr. Marcelo Ponce (SciNet)

Prerequisites

Basic familiarity with a high-level language (C/C++/Fortran) as well as compiling and running programs via the command line environment on a HPC system.


Slides and other material

Bring Your Own Code

Abstract

The final afternoon of the summer school is your chance to get help with your own code from the SciNet software analysts. Bring your code, explain your problem or concerns, and we'll give you advice and work with you to try to improve it.

Details

Date/time

Friday July 15, 2016, 13:30 - 16:30

Location

Wallberg Building, Room 119

Instructors

Various SciNet software analysts.

Prerequisites

None.