Difference between revisions of "GPU621/DPS921"

From CDOT Wiki
Jump to: navigation, search
(Created page with '{{GPU621/DPS921 Index | 20141}} Please help make this page resourceful for all GPU621/DPS921 students to use! = Course Material = == GPU621 - Parallel Algorithms and Programmi…')
 
Line 5: Line 5:
 
= Course Material =
 
= Course Material =
  
== GPU621 - Parallel Algorithms and Programming Techniques ==
+
== GPU621/DPS921 - Parallel Algorithms and Programming Techniques ==
<table>
+
*Large data and compute-intensive problems benefit from parallel solutions.&nbsp; Modern hardware has parallel processing capabilities in varying degrees.&nbsp; Students study a set of industry-standard parallel patterns and learn how to implement parallel algorithms on multi-processor accelerators, shared memory systems and distributed systems using a range of programming models.
<tr valign=top>
+
* [https://secure.senecac.on.ca/ssos/findWithoutSemester/GPU6921/SICT GPU621 Course Outline]
<td>
+
* [https://secure.senecac.on.ca/ssos/findWithoutSemester/DPS921/SICT DPS921 Course Outline]
  
*Modern GPU (Graphics Processing Unit) technology supports massively parallel computations, which complements the serial processing capabilities of CPU technology. This course teaches students how to read, write, and debug programs that use both CPU and GPU technology. Students learn to reorganize existing programs into serial code that runs on the CPU and parallel code that runs on the GPU. Students also study cases that have benefited from CPU+GPU programming.
 
* [https://scs.senecac.on.ca/course/GPU621 Course Outline]
 
</td>
 
<td>
 
[[Image:NV_CUDA_Teaching_Center_Small.jpg]]
 
</td>
 
</tr>
 
</table>
 
 
== DPS915 - Introduction to Parallel Programming ==
 
<table>
 
<tr valign=top>
 
<td>
 
 
*Modern GPU (Graphics Processing Unit) technology supports massively parallel computations, which complements the serial processing capabilities of CPU technology. This course teaches students how to read, write, and debug programs that use both CPU and GPU technology. Students learn to reorganize existing programs into serial code that runs on the CPU and parallel code that runs on the GPU. Students also study cases that have benefited from CPU+GPU programming and develop a CPU+GPU application for a client.
 
 
* [https://scs.senecac.on.ca/course/dps915 Course Outline]
 
</td>
 
<td>
 
[[Image:NV_CUDA_Teaching_Center_Small.jpg]]
 
</td>
 
</tr>
 
</table>
 
  
 
== External Links ==
 
== External Links ==
* [https://scs.senecac.on.ca/~gpu610/pages/content/index.html Course Web Site – Lecture Notes]
+
* [https://scs.senecac.on.ca/~gpu621/pages/content/index.html Course Web Site – Lecture Notes]
* [https://cs.senecac.on.ca/~gpu610/pages/timeline.html Course Web Site – Timeline]
+
* [https://cs.senecac.on.ca/~gpu621/pages/timeline.html Course Web Site – Timeline]
<!--
 
* [svn://zenit.senecac.on.ca/dpsgpu/trunk Class Samples]
 
-->
 
  
 
== Workshops ==
 
== Workshops ==
 
* The workshops provide timely opportunities to implement some of the material covered during the lectures. Each workshop is graded and all submissions are through [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].
 
* The workshops provide timely opportunities to implement some of the material covered during the lectures. Each workshop is graded and all submissions are through [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].
 
* Detail Specifications
 
* Detail Specifications
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w1.html Initial Profile]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w1.html Programming Models]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w2.html BLAS]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w2.html Debugging]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w3.html Device Query and Selection]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w3.html Map-Reduce]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w4.html cuBLAS]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w4.html Map-Scan]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w5.html Thrust]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w5.html Convolution]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w6.html A Simple Kernel]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w6.html Fork-Join]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w7.html Reduction]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w7.html Pipeline]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w8.html Thread Divergence]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w8.html Bin]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w9.html Coalesced Memory Access]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w9.html MPI]
*# [https://scs.senecac.on.ca/~gpu610/pages/workshops/w10.html CUDA to OpenCL]
+
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w10.html Fortran]
 +
*# [https://scs.senecac.on.ca/~GPU621/pages/workshops/w11.html Matlab]
 
* Grading - The due date for each workshop is noted in [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].  The penalty for late submission is 50% of the workshop mark.
 
* Grading - The due date for each workshop is noted in [https://open.senecac.on.ca/cms/course/view.php?id=438 Moodle].  The penalty for late submission is 50% of the workshop mark.
  
 
== Assignments  ==
 
== Assignments  ==
# [https://scs.senecac.on.ca/~gpu610/pages/assignments/a1.html Select and Assess]
+
# [https://scs.senecac.on.ca/~GPU621/pages/assignments/a1.html Prefix Sum Analysis]
# [https://scs.senecac.on.ca/~gpu610/pages/assignments/a2.html Parallelize]
+
# [https://scs.senecac.on.ca/~GPU621/pages/assignments/a2.html MPI Project]
# [https://scs.senecac.on.ca/~gpu610/pages/assignments/a3.html Optimize]
 
  
 
== Evaluation ==
 
== Evaluation ==

Revision as of 11:51, 13 January 2014


GPU621/DPS921 | Participants | Groups and Projects | Resources | Glossary

Please help make this page resourceful for all GPU621/DPS921 students to use!

Course Material

GPU621/DPS921 - Parallel Algorithms and Programming Techniques

  • Large data and compute-intensive problems benefit from parallel solutions.  Modern hardware has parallel processing capabilities in varying degrees.  Students study a set of industry-standard parallel patterns and learn how to implement parallel algorithms on multi-processor accelerators, shared memory systems and distributed systems using a range of programming models.
  • GPU621 Course Outline
  • DPS921 Course Outline


External Links

Workshops

Assignments

  1. Prefix Sum Analysis
  2. MPI Project

Evaluation

  • Assignments and Presentation 30%
  • Workshops 20%
  • Test 20%
  • Exam 30%

Resources

  • Software Support