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

From Microlab Classes
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 34: Line 34:
 
| 0
 
| 0
 
|
 
|
* [00] Course overview and synopsis
+
[00] Course overview and synopsis<br>
* [00] Course requirements
+
[00] Course requirements
 
|
 
|
 
|  
 
|  
Line 43: Line 43:
 
| 1
 
| 1
 
|
 
|
* [01a] Review of CS data structures and algorithms
+
[01a] Review of CS data structures and algorithms<br>
* [01b] Problem identification and solving
+
[01b] Problem identification and solving
 
|
 
|
 
[SQ01] CS problems<br>
 
[SQ01] CS problems<br>
Line 54: Line 54:
 
| 2
 
| 2
 
|
 
|
* [02a] Review of asymptotic analysis
+
[02a] Review of asymptotic analysis<br>
* [02b] Amortized analysis
+
[02b] Amortized analysis<br>
* [02c] High-level optimization
+
[02c] High-level optimization
 
|
 
|
 
[SQ02] Asymptotic analysis<br>
 
[SQ02] Asymptotic analysis<br>
Line 67: Line 67:
 
| 3
 
| 3
 
|
 
|
* [03a] Choosing a platform
+
[03a] Choosing a platform<br>
* [03b] x86 assembly introduction
+
[03b] x86 assembly introduction<br>
* [03c] x86 assembly reference
+
[03c] x86 assembly reference
 
|
 
|
 
[SE01] Profiling and assembly<br>
 
[SE01] Profiling and assembly<br>
Line 86: Line 86:
 
| 5
 
| 5
 
|
 
|
* [04a] Review of linear algebra operations
+
[04a] Review of linear algebra operations<br>
* [04b] Solving problems using linear algebra
+
[04b] Solving problems using linear algebra<br>
* [04c] Linear algebra and computers
+
[04c] Linear algebra and computers
 
|
 
|
 
[SQ03] Linear algebra<br>
 
[SQ03] Linear algebra<br>
Line 100: Line 100:
 
| 6
 
| 6
 
|
 
|
* [05a] Cache behavior of linear algebra operations
+
[05a] Cache behavior of linear algebra operations<br>
* [05b] Matrix-matrix multiplication part 01
+
[05b] Matrix-matrix multiplication part 01<br>
* [05c] Matrix-matrix multiplication part 02
+
[05c] Matrix-matrix multiplication part 02
 
|
 
|
[SQ04] Matrix-matrix Multiplication<br>
+
[SQ04] Matrix-matrix multiplication<br>
 
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=156637 <nowiki>[SQ04] Knowledge check</nowiki>]<br>
 
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=156637 <nowiki>[SQ04] Knowledge check</nowiki>]<br>
 
<br>
 
<br>
 
[SE02] Caching in MMM<br>
 
[SE02] Caching in MMM<br>
[https://colab.research.google.com/drive/1tj7VoRqeZ9TuhO3Cl2A0OEnwGKqy9_xW <nowiki>[SE02] Google Colab</nowiki>]
+
[https://colab.research.google.com/drive/1tj7VoRqeZ9TuhO3Cl2A0OEnwGKqy9_xW <nowiki>[SE02] Google Colab</nowiki>]<br>
 
[https://uvle.upd.edu.ph/mod/assign/view.php?id=156639 <nowiki>[SE02] Submission bin</nowiki>]
 
[https://uvle.upd.edu.ph/mod/assign/view.php?id=156639 <nowiki>[SE02] Submission bin</nowiki>]
 
|
 
|
Line 118: Line 118:
 
| 7
 
| 7
 
|
 
|
* [06a] BLAS and ATLAS
+
[06a] BLAS and ATLAS
 
|
 
|
 
[SE03] BLAS<br>
 
[SE03] BLAS<br>
Line 136: Line 136:
 
| 10
 
| 10
 
|
 
|
* [07a] Gaussian elimination
+
[10a] Gaussian elimination<br>
* [07b] Matrix inversion
+
[10b] Sparse linear algebra
* [07c] Sparse linear algebra
 
* [07d] Matrix decomposition
 
* [10a] Parallel computing concepts
 
* [10b] Limits of parallel computing
 
 
|
 
|
[SQ05] Parallel programming
+
[SQ05] Sparse matrices and BLAS<br>
 +
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=156660 <nowiki>[SQ05] Knowledge check</nowiki>]<br>
 
|
 
|
 +
[[:File:Coe163_2020s2_07a_gaussian_elim.pdf | [10a slides]]]<br>
 +
[[:File:Coe163 2020s2 07b sparse mat.pdf | [10b slides]]]
 
|-
 
|-
 
| 11
 
| 11
 
|
 
|
* [11a] Parallel computing algorithms
+
[11a] Parallel computing introduction<br>
 +
[11b] Parallel programming and hardware
 
|
 
|
[SE04] Parallel computing algorithms
+
[SQ06] Parallel computing and hardware<br>
 +
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=235662 <nowiki>[SQ06] Quiz</nowiki>]<br>
 
|
 
|
 +
[[:File:Coe163 2s2122 11a parallel programming intro.pdf | [11a slides]]]<br>
 +
[[:File:Coe163 2s2122 11b parallel programming hardware.pdf | [11b slides]]]
 
|-
 
|-
 
| 12
 
| 12
 
|
 
|
* [12a] Single instruction multiple data vectorization
+
[12x] Parallel programming algorithms
* [12b] OpenCL/OpenMP
 
 
|
 
|
[SE05] OpenCL/OpenMP
 
 
|
 
|
 
|-
 
|-
 
| 13
 
| 13
 
|
 
|
* [13a] GPU programming basics
+
[13a] GPU programming basics<br>
* [13b] CUDA programming with Numba
+
[13b] CUDA programming with Numba
 
|
 
|
 
[CE] Capstone exercise
 
[CE] Capstone exercise
Line 184: Line 185:
 
| 17
 
| 17
 
|
 
|
* Finals week
+
Finals week
 
|
 
|
 
|
 
|

Latest revision as of 10:34, 7 May 2022

Course Information

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

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

Instructors:

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

Student Assistants:

  • Brian Bascos
  • Christian Eric Cosca
  • Jean Abigail de Padua

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, Google Meet, Zoom, other quiz platforms.

Course Outline

Week Topics Academic Requirements Resource Links
0

[00] Course overview and synopsis
[00] Course requirements

[guide]
[00 slides]

1

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

[SQ01] CS problems
[SQ01] Quiz

[01a slides]
[01b slides]

2

[02a] Review of asymptotic analysis
[02b] Amortized analysis
[02c] High-level optimization

[SQ02] Asymptotic analysis
[SQ02] Quiz

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

3

[03a] Choosing a platform
[03b] x86 assembly introduction
[03c] x86 assembly reference

[SE01] Profiling and assembly
[SE01] Specifications
[SE01] Submission bin

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

4
5

[04a] Review of linear algebra operations
[04b] Solving problems using linear algebra
[04c] Linear algebra and computers

[SQ03] Linear algebra
[SQ03] Knowledge check

[04x guide]
[04a slides]
[04b slides]
[04c slides]

6

[05a] Cache behavior of linear algebra operations
[05b] Matrix-matrix multiplication part 01
[05c] Matrix-matrix multiplication part 02

[SQ04] Matrix-matrix multiplication
[SQ04] Knowledge check

[SE02] Caching in MMM
[SE02] Google Colab
[SE02] Submission bin

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

7

[06a] BLAS and ATLAS

[SE03] BLAS
[SE03] Google Colab
[SE03] Submission bin

[06a slides]

8
READING BREAK
9
LENTEN BREAK
10

[10a] Gaussian elimination
[10b] Sparse linear algebra

[SQ05] Sparse matrices and BLAS
[SQ05] Knowledge check

[10a slides]
[10b slides]

11

[11a] Parallel computing introduction
[11b] Parallel programming and hardware

[SQ06] Parallel computing and hardware
[SQ06] Quiz

[11a slides]
[11b slides]

12

[12x] Parallel programming algorithms

13

[13a] GPU programming basics
[13b] CUDA programming with Numba

[CE] Capstone exercise

14
READING BREAK
15
16
17

Finals week

Grading Rubric

32% Short quizzes
48% Software exercises
20% Capstone exercise

Announcements

February 2022