Difference between revisions of "CoE 163 S2 AY 2020-2021"

From Microlab Classes
Jump to navigation Jump to search
m
m
Line 115: Line 115:
 
[https://colab.research.google.com/drive/1wOzAnnel_qm2z8_LUO1ijSSSw7yWdWMA <nowiki>[ME03] Jupyter notebook</nowiki>]
 
[https://colab.research.google.com/drive/1wOzAnnel_qm2z8_LUO1ijSSSw7yWdWMA <nowiki>[ME03] Jupyter notebook</nowiki>]
 
||
 
||
 +
[[:File:Coe163 2020s2 06a blas atlas.pdf | [06a slides]]]
 
|-
 
|-
 
| 7
 
| 7
Line 124: Line 125:
 
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=478785 <nowiki>[SQ03] Submission bin</nowiki>]<br>
 
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=478785 <nowiki>[SQ03] Submission bin</nowiki>]<br>
 
||
 
||
 +
[[:File:Coe163 2020s2 07a gaussian elim.pdf | [07a slides]]]<br>
 +
[[:File:Coe163 2020s2 07b sparse mat.pdf | [07b slides]]]
 
|-
 
|-
 
| 8
 
| 8
Line 130: Line 133:
 
* Limits of parallel computing
 
* Limits of parallel computing
 
||
 
||
* Short quiz
 
 
||
 
||
 
|-
 
|-
Line 138: Line 140:
 
* OpenCL/OpenMP
 
* OpenCL/OpenMP
 
||
 
||
* Machine exercise
 
 
||
 
||
 
|-
 
|-
Line 145: Line 146:
 
* GPU programming introduction
 
* GPU programming introduction
 
||
 
||
* Machine exercise
 
 
||
 
||
 
|-
 
|-
Line 152: Line 152:
 
* Parallel computing algorithms
 
* Parallel computing algorithms
 
||
 
||
* Short quiz
 
 
||
 
||
 
|-
 
|-
Line 159: Line 158:
 
||
 
||
 
[CE] Parallel Programming with CUDA<br>
 
[CE] Parallel Programming with CUDA<br>
 +
[[:File:Coe163 2020s2 CE.pdf | [CE] Specifications]]<br>
 
[https://uvle.upd.edu.ph/mod/assign/view.php?id=480128 <nowiki>[CE] Submission bin</nowiki>]<br>
 
[https://uvle.upd.edu.ph/mod/assign/view.php?id=480128 <nowiki>[CE] Submission bin</nowiki>]<br>
 
[https://colab.research.google.com/drive/1jjzPTP0QAMLcmiIGJFY_dXxdaGozkHvx <nowiki>[CE] Jupyter notebook</nowiki>]<br>
 
[https://colab.research.google.com/drive/1jjzPTP0QAMLcmiIGJFY_dXxdaGozkHvx <nowiki>[CE] Jupyter notebook</nowiki>]<br>

Revision as of 02:05, 25 June 2021

Course Information

Academic Period: 2nd Semester AY 2020-2021
Units: 3
Workload:

  • 3 hours lecture per week
  • 1-2 hours exercise per week

Instructors:

  • Carl C. Dizon [carl.dizon at eeemail]
  • Isabel M. Austria [isabel.austria at eeemail]
  • Nestor Michael C. Tiglao [nestor at eeemail]

Synopsis: This course aims to 1) present the connection between algorithms, implementation, and computer architecture, 2) provide tools needed to write and apply fast numerical code, and 3) present representative fundamental numerical algorithms.
Delivery Method: Video lectures and digital materials
Online Platforms: UVLe, Piazza, edX, Google Meet, Zoom, other quiz platforms.

Course Outline

Week Topics Academic Requirements Resource Links
0
  • [00] Course overview and synopsis
  • [00] Course requirements

[syllabus]
[00 slides]

1
  • [01a] Review of CS data structures and algorithms
  • [01b] Problem identification and solving

[SQ01] CS problems
[SQ01] Submission bin
[SQ01] Submission bin (late)

[01a slides]
[01b slides]

2
  • [02a] Review of asymptotic analysis
  • [02b] Amortized analysis
  • [02c] Platform-dependent programming

[SQ02] Asymptotic analysis
[SQ02] Submission bin
[SQ02] Submission bin (late)

[02a slides]
[02b slides]
[02c slides]

3
  • [03a] High-level code translation to memory
  • [03b] Introduction to parallel programming
  • [03c] Introduction to x86 assembly

[ME01] Solving and profiling
[ME01] Specifications
[ME01] Submission bin

[03a slides]
[03b slides]
[03c slides]

4
  • [04a] Review of linear algebra operations
  • [04b] Solving problems using linear algebra
  • [04c] Considerations on formulating linear algebra algorithms

[04a slides]
[04b slides]
[04c slides]

5
  • [05a] Cache review
  • [05b] Matrix-matrix multiplication part 01
  • [05c] Matrix-matrix multiplication part 02

[SQ03] Caching in MMM
[SQ03] Submission bin
[SQ03] Submission bin (late)

[ME02] MMM Loop Ordering
[ME02] Submission bin
[ME02] Jupyter notebook

[05a slides]
[05b slides]
[05c slides]
[05c guide]

6
  • Gaussian elimination
  • Matrix inversion

[ME03] BLAS
[ME03] Submission bin
[ME03] Jupyter notebook

[06a slides]

7
  • Sparse linear algebra
  • Matrix decomposition

[SQ04] Matrix Factorization and Sparse Matrices
[SQ03] Submission bin

[07a slides]
[07b slides]

8
  • Parallel computing concepts
  • Limits of parallel computing
9
  • Single instruction multiple data vectorization
  • OpenCL/OpenMP
10
  • GPU programming introduction
11
  • Parallel computing algorithms
12

[CE] Parallel Programming with CUDA
[CE] Specifications
[CE] Submission bin
[CE] Jupyter notebook

Grading Rubric

40% Short quizzes
35% Machine exercises
25% Capstone exercise
55% Short quizzes
45% Machine exercises
10% Capstone exercies