Difference between revisions of "Parallel Scientific Computing - May 2011"

From oldwiki.scinet.utoronto.ca
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
The goal of the workshop was to enable young researchers already experienced in scientific computing to leave with the knowledge necessary to begin writing the parallel codes needed for their research. The workshop consisted of a mix of lectures and immediate feedback on practical assignments, designed to ensure that students leave with significant experience in both OpenMP and MPI, two of the standards for parallel computing today. GPGPU Programming with Cuda was also briefly introduced.  
 
The goal of the workshop was to enable young researchers already experienced in scientific computing to leave with the knowledge necessary to begin writing the parallel codes needed for their research. The workshop consisted of a mix of lectures and immediate feedback on practical assignments, designed to ensure that students leave with significant experience in both OpenMP and MPI, two of the standards for parallel computing today. GPGPU Programming with Cuda was also briefly introduced.  
  
==Slides (PDF)==
+
==Lectures==
* [[Media:5dayMonMorning.pdf | Monday May 9 Morning + Afternoon + Tuesday May 10 Morning - Intro to Class, brief C tutorial, introduction to OpenMP]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_Intro_Parallel/Monday_Morning_Intro_Parallel.mp4 Intro to Class and to Parallel Programming] <br />[[File:MonMorIntro_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_Intro_Parallel/Monday_Morning_Intro_Parallel.mp4]] <br />[[Media:Monday_Morning_Intro_Parallel.pdf|Slides]]
* [[Media:MPI.pdf | Tuesday May 10 Afternoon + Wednesday May 11 Morning - Introduction to MPI]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_SciNet_Resources/Monday_Morning_SciNet_Resources.mp4 SciNet Resources] <br />[[File:MonMorSN_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_SciNet_Resources/Monday_Morning_SciNet_Resources.mp4]] <br />[[Media:Monday_Morning_SciNet_Resources.pdf|Slides]]
* [[Media:Hydro-may2011.pdf‎ | Wednesday May 11 Afternoon - Hydrodynamics]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_C_Review/Monday_Morning_C_Review.mp4 C Review] <br />[[File:MonMorC_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_C_Review/Monday_Morning_C_Review.mp4]] <br />[[Media:Monday_Morning_C_Review.pdf| Slides]]
* [[Media:Snug_techtalk_revcontrol.pdf | May 12 Thursday Morning - Version Control]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP1/Monday_Afternoon_OpenMP1.mp4 Introduction to OpenMP - part 1] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP2/Monday_Afternoon_OpenMP2.mp4 part 2] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP3/Monday_Afternoon_OpenMP3.mp4 part 3] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP4/Tuesday_Morning_OpenMP4.mp4 part 4] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP5/Tuesday_Morning_OpenMP5.mp4 part 5] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP6/Tuesday_Morning_OpenMP6.mp4 part 6] <br />[[File:MonAftOMP1_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP1/Monday_Afternoon_OpenMP1.mp4]] [[File:MonAftOMP2_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse//Monday_Afternoon_OpenMP2/Monday_Afternoon_OpenMP2.mp4]] [[File:MonAftOMP3_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP3/Monday_Afternoon_OpenMP3.mp4]] <br/> <br/>[[File:TueMorOMP4_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse//Tuesday_Morning_OpenMP4/Tuesday_Morning_OpenMP4.mp4]] [[File:TueMorOMP5_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse//Tuesday_Morning_OpenMP5/Tuesday_Morning_OpenMP5.mp4]] [[File:TueMorOMP6_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP6/Tuesday_Morning_OpenMP6.mp4]] <br />[[Media:Monday_Afternoon_OpenMP1.pdf| Slides of all 6 OpenMP parts]]
* [[Media:Best-practice-debug.pdf | Thursday May 12 Morning - Parallel Debugging]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Afternoon_MPI1/Tuesday_Afternoon_MPI1.mp4 Introduction to MPI - part 1] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Wednesday_Morning_MPI/Wednesday_Morning_MPI.mp4 part 2]<br/>[[File:TueAftMPI1_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Afternoon_MPI1/Tuesday_Afternoon_MPI1.mp4 ]] [[File:WedMorMPI_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Wednesday_Morning_MPI/Wednesday_Morning_MPI.mp4]] <br/> [[Media:MPI.pdf | Slides of both MPI parts]]
* [[Media:ThurdayAfternoonNbody.pdf | Thursday May 12 Afternoon - N-body Part 1 (openmp)]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Wednesday_Afternoon_Hydro/Wednesday_Afternoon_Hydro.mp4 Hydrodynamics]<br/>[[File:WedAftHyd_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Wednesday_Afternoon_Hydro/Wednesday_Afternoon_Hydro.mp4]]<br/>  [[Media:Hydro-may2011.pdf‎ | Slides]]
* [[Media:Nbody-mpi.pdf | Thursday May 12 Afternoon - N-body Part 2 (mpi)]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Morning_BP_Revision_Control/Thursday_Morning_BP_Revision_Control.mp4 HPC Best Practices and Version Control]<br/>[[File:ThuMorBPR_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Morning_BP_Revision_Control/Thursday_Morning_BP_Revision_Control.mp4]] <br/> [[Media:Snug_techtalk_revcontrol.pdf | Slides]]
* [[Media:Snugio.pdf | Friday May 13 Morning - I/O Best practices on the parallel file system]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Morning_Debugging/Thursday_Morning_Debugging.mp4 Parallel Debugging]<br/>[[File:ThuMorDbg_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Morning_Debugging/Thursday_Morning_Debugging.mp4]] <br/> [[Media:Best-practice-debug.pdf | Slides]]
* [[Media:Gpgpu.pdf | Friday May 13 Morning - CUDA GPU programming]]
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Afternoon_Nbody_OpenMP1/Thursday_Afternoon_Nbody_OpenMP1.mp4 N-Body - part 1] [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Afternoon_Nbody_OpenMP2_MPI/Thursday_Afternoon_Nbody_OpenMP2_MPI.mp4 part 2]<br/>[[File:ThuAftNB1_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Afternoon_Nbody_OpenMP1/Thursday_Afternoon_Nbody_OpenMP1.mp4]] [[File:ThuAftNB2_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Afternoon_Nbody_OpenMP2_MPI/Thursday_Afternoon_Nbody_OpenMP2_MPI.mp4]] <br/>[[Media:ThurdayAfternoonNbody.pdf | Slides of the OpenMP part]]<br/> [[Media:Nbody-mpi.pdf | Slides of the MPI part]]
 
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Friday_Morning_IO/Friday_Morning_IO.mp4 I/O on a Parallel File System]<br/>[[File:FriMorIO.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Friday_Morning_IO/Friday_Morning_IO.mp4]] <br/> [[Media:Snugio.pdf | Slides]]
==Videos (to come)==
+
# [http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Friday_Morning_GPGPU/Friday_Morning_GPGPU.mp4 Intro to GPGPU Programming] <br/>[[File:FriMorGPU_FirstFrame.png|180px|Click for Video|link=http://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Friday_Morning_GPGPU/Friday_Morning_GPGPU.mp4]]<br/>  [[Media:Gpgpu.pdf | Slides]]
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_Intro_Parallel/Monday_Morning_Intro_Parallel.mp4 Intro to Class and to Parallel Programming]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_SciNet_Resources/Monday_Morning_SciNet_Resources.mp4 SciNet Resources]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Morning_C_Review/Monday_Morning_C_Review.mp4 C Review]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP1/Monday_Afternoon_OpenMP1.mp4 Introduction to OpenMP - part 1][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP2/Monday_Afternoon_OpenMP2.mp4 part 2][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Monday_Afternoon_OpenMP3/Monday_Afternoon_OpenMP3.mp4 part 3][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP4/Tuesday_Morning_OpenMP4.mp4 part 4][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP5/Tuesday_Morning_OpenMP5.mp4 part 5][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Morning_OpenMP6/Tuesday_Morning_OpenMP6.mp4 part 6]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Tuesday_Afternoon_MPI1/Tuesday_Afternoon_MPI1.mp4 Introduction to MPI - part 1][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Wednesday_Morning_MPI2/Wednesday_Morning_MPI2.mp4 part 2]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Wednesday_Afternoon_Hydro/Wednesday_Afternoon_Hydro.mp4 Hydrodynamics ]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Morning_BP_Revision_Control/Thursday_Morning_BP_Revision_Control.mp4 HPC Best Practices and Version Control]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Morning_Debugging/Thursday_Morning_Debugging.mp4 Parallel Debugging]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Afternoon_Nbody_OpenMP1/Thursday_Afternoon_Nbody_OpenMP1.mp4 N-Body - part 1][https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Thursday_Afternoon_Nbody_OpenMP2_MPI/Thursday_Afternoon_Nbody_OpenMP2_MPI.mp4 part 2]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Friday_Morning_IO/Friday_Morning_IO.mp4 IO on a Parallel File System]
 
# [https://support.scinet.utoronto.ca/CourseVideo/PPPcourse/Friday_Morning_GPGPU/Friday_Morning_GPGPU.mp4 Intro to GPGPU Programming]
 
  
 
==Source Code==
 
==Source Code==
 
*[[Media:Ppp2011code.tgz | Tar-ball of the source code used in class]]
 
*[[Media:Ppp2011code.tgz | Tar-ball of the source code used in class]]

Latest revision as of 11:01, 3 June 2011

This was an intensive week-long workshop on Scientific Parallel Programming, held at SciNet on the University of Toronto St. George campus.

The goal of the workshop was to enable young researchers already experienced in scientific computing to leave with the knowledge necessary to begin writing the parallel codes needed for their research. The workshop consisted of a mix of lectures and immediate feedback on practical assignments, designed to ensure that students leave with significant experience in both OpenMP and MPI, two of the standards for parallel computing today. GPGPU Programming with Cuda was also briefly introduced.

Lectures

  1. Intro to Class and to Parallel Programming
    Click for Video
    Slides
  2. SciNet Resources
    Click for Video
    Slides
  3. C Review
    Click for Video
    Slides
  4. Introduction to OpenMP - part 1 part 2 part 3 part 4 part 5 part 6
    Click for Video Click for Video Click for Video

    Click for Video Click for Video Click for Video
    Slides of all 6 OpenMP parts
  5. Introduction to MPI - part 1 part 2
    Click for Video Click for Video
    Slides of both MPI parts
  6. Hydrodynamics
    Click for Video
    Slides
  7. HPC Best Practices and Version Control
    Click for Video
    Slides
  8. Parallel Debugging
    Click for Video
    Slides
  9. N-Body - part 1 part 2
    Click for Video Click for Video
    Slides of the OpenMP part
    Slides of the MPI part
  10. I/O on a Parallel File System
    Click for Video
    Slides
  11. Intro to GPGPU Programming
    Click for Video
    Slides

Source Code