Difference between revisions of "CoE 163 S2 AY 2021-2022"
Carl Dizon (talk | contribs) m |
Carl Dizon (talk | contribs) (Updated course timeline) |
||
Line 11: | Line 11: | ||
* 1-2 hours exercise per week | * 1-2 hours exercise per week | ||
'''Instructors''': | '''Instructors''': | ||
+ | * Isabel M. Austria [isabel.austria at eeemail] | ||
* Carl C. Dizon [carl.dizon at eeemail] | * Carl C. Dizon [carl.dizon at eeemail] | ||
− | * Darvy Ong [darvy.ong | + | * Darvy P. Ong [darvy.ong at eeemail] |
− | |||
* Nestor Michael C. Tiglao [nestor 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. | '''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. | ||
Line 29: | Line 29: | ||
|- | |- | ||
| 0 | | 0 | ||
− | + | | | |
* [00] Course overview and synopsis | * [00] Course overview and synopsis | ||
* [00] Course requirements | * [00] Course requirements | ||
− | + | | | |
− | + | | | |
− | [[:File:Coe163 2020s2 Syllabus.pdf | [ | + | [[:File:Coe163 2020s2 Syllabus.pdf | [guide]]]<br> |
[[:File:Coe163 2020s2 00 about.pdf | [00 slides]]] | [[:File:Coe163 2020s2 00 about.pdf | [00 slides]]] | ||
|- | |- | ||
| 1 | | 1 | ||
− | + | | | |
* [01a] Review of CS data structures and algorithms | * [01a] Review of CS data structures and algorithms | ||
* [01b] Problem identification and solving | * [01b] Problem identification and solving | ||
− | + | | | |
− | [ | + | [SQW01] CS problems<br> |
− | [ | + | [<nowiki>[SQW01] Submission bin</nowiki>]<br> |
− | + | | | |
− | |||
[[:File:Coe163 2020s2 01a review algorithms.pdf | [01a slides]]]<br> | [[:File:Coe163 2020s2 01a review algorithms.pdf | [01a slides]]]<br> | ||
[[:File:Coe163 2020s2 01b problem solving.pdf | [01b slides]]] | [[:File:Coe163 2020s2 01b problem solving.pdf | [01b slides]]] | ||
|- | |- | ||
| 2 | | 2 | ||
− | + | | | |
* [02a] Review of asymptotic analysis | * [02a] Review of asymptotic analysis | ||
* [02b] Amortized analysis | * [02b] Amortized analysis | ||
− | * [02c] | + | * [02c] High-level code translation to memory |
− | + | | | |
− | [ | + | [SEW02] Asymptotic analysis<br> |
− | [ | + | [<nowiki>[SEW02] Submission bin</nowiki>]<br> |
− | + | | | |
− | |||
[[:File:Coe163 2020s2 02a review asymptotic.pdf | [02a slides]]]<br> | [[:File:Coe163 2020s2 02a review asymptotic.pdf | [02a slides]]]<br> | ||
[[:File:Coe163 2020s2 02b amortized analysis.pdf | [02b slides]]]<br> | [[:File:Coe163 2020s2 02b amortized analysis.pdf | [02b slides]]]<br> | ||
Line 64: | Line 62: | ||
|- | |- | ||
| 3 | | 3 | ||
− | + | | | |
− | * [03a] | + | * [03a] Programming languages survey |
− | * [03b] | + | * [03b] Matching programming languages and problems |
* [03c] Introduction to x86 assembly | * [03c] Introduction to x86 assembly | ||
− | + | | | |
− | [ | + | [SEW03] Solving and profiling<br> |
− | [[ | + | [[SEW03] Specifications]]<br> |
− | [ | + | [<nowiki>[ME01] Submission bin</nowiki>] |
− | + | | | |
[[:File:Coe163 2020s2 03a high level optimization.pdf | [03a slides]]]<br> | [[:File:Coe163 2020s2 03a high level optimization.pdf | [03a slides]]]<br> | ||
[[:File:Coe163 2020s2 03b parallel programming intro.pdf | [03b slides]]]<br> | [[:File:Coe163 2020s2 03b parallel programming intro.pdf | [03b slides]]]<br> | ||
− | |||
|- | |- | ||
| 4 | | 4 | ||
− | + | | | |
* [04a] Review of linear algebra operations | * [04a] Review of linear algebra operations | ||
* [04b] Solving problems using linear algebra | * [04b] Solving problems using linear algebra | ||
− | * [04c] | + | * [04c] Cache behavior of linear algebra operations |
− | | | + | | |
− | + | [SQW04] Linear algebra<br> | |
+ | | | ||
[[:File:Coe163 2020s2 04a linear algeb ops.pdf | [04a slides]]]<br> | [[:File:Coe163 2020s2 04a linear algeb ops.pdf | [04a slides]]]<br> | ||
[[:File:Coe163 2020s2 04b linear algeb problems.pdf | [04b slides]]]<br> | [[:File:Coe163 2020s2 04b linear algeb problems.pdf | [04b slides]]]<br> | ||
Line 89: | Line 87: | ||
|- | |- | ||
| 5 | | 5 | ||
− | + | | | |
− | * [05a | + | * [05a] Matrix-matrix multiplication part 01 |
− | + | * [05b] Matrix-matrix multiplication part 02 | |
− | * [ | + | * [05c] ATLAS (automatically-tuned linear algebra software) |
− | + | | | |
− | [ | + | [SEW05] Caching in MMM<br> |
− | + | | | |
− | |||
− | |||
− | [ | ||
− | |||
− | |||
− | |||
[[:File:Coe163 2020s2 05a cache.pdf | [05a slides]]]<br> | [[:File:Coe163 2020s2 05a cache.pdf | [05a slides]]]<br> | ||
[[:File:Coe163 2020s2 05b mmm part01.pdf | [05b slides]]]<br> | [[:File:Coe163 2020s2 05b mmm part01.pdf | [05b slides]]]<br> | ||
Line 108: | Line 100: | ||
|- | |- | ||
| 6 | | 6 | ||
− | + | | | |
− | * Gaussian elimination | + | * [06a] Gaussian elimination |
− | * Matrix inversion | + | * [06b] Matrix inversion |
− | + | | | |
− | [ | + | [SEW06] BLAS<br> |
− | + | | | |
− | |||
− | |||
[[:File:Coe163 2020s2 06a blas atlas.pdf | [06a slides]]] | [[:File:Coe163 2020s2 06a blas atlas.pdf | [06a slides]]] | ||
|- | |- | ||
| 7 | | 7 | ||
− | + | | | |
− | * Sparse linear algebra | + | * [07a] Sparse linear algebra |
− | * Matrix decomposition | + | * [07b] Matrix decomposition |
− | + | | | |
− | [ | + | [SQW07] Matrix Factorization and Sparse Matrices<br> |
− | + | | | |
− | |||
[[:File:Coe163 2020s2 07a gaussian elim.pdf | [07a slides]]]<br> | [[:File:Coe163 2020s2 07a gaussian elim.pdf | [07a slides]]]<br> | ||
[[:File:Coe163 2020s2 07b sparse mat.pdf | [07b slides]]] | [[:File:Coe163 2020s2 07b sparse mat.pdf | [07b slides]]] | ||
|- | |- | ||
| 8 | | 8 | ||
− | || | + | | colspan="2" | <div style="text-align: center;">'''READING BREAK'''</div> |
− | + | | | |
− | |||
− | |||
− | |||
|- | |- | ||
| 9 | | 9 | ||
− | || | + | | colspan="2" | <div style="text-align: center;">'''LENTEN BREAK'''</div> |
− | + | | | |
− | |||
− | |||
− | |||
|- | |- | ||
| 10 | | 10 | ||
− | | | + | | |
− | * | + | * [10a] Parallel computing concepts |
− | | | + | * [10b] Limits of parallel computing |
− | + | | | |
+ | [SQW10] Parallel programming | ||
+ | | | ||
|- | |- | ||
| 11 | | 11 | ||
− | + | | | |
− | * Parallel computing algorithms | + | * [11a] Parallel computing algorithms |
− | | | + | | |
− | + | [SEW11] Parallel computing algorithms | |
+ | | | ||
|- | |- | ||
| 12 | | 12 | ||
− | || | + | | |
− | || | + | * [12a] Single instruction multiple data vectorization |
− | [ | + | * [12b] OpenCL/OpenMP |
− | + | | | |
− | + | [SEW12] OpenCL/OpenMP | |
− | + | | | |
− | || | + | |- |
+ | | 13 | ||
+ | | | ||
+ | * [13a] GPU programming basics | ||
+ | * [13b] CUDA programming with Numba | ||
+ | | | ||
+ | [CE] Capstone exercise | ||
+ | | | ||
+ | |- | ||
+ | | 14 | ||
+ | | colspan="2" | <div style="text-align: center;">'''READING BREAK'''</div> | ||
+ | |- | ||
+ | | 15 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | 16 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | 17 | ||
+ | | | ||
+ | * Finals week | ||
+ | | | ||
+ | | | ||
|} | |} | ||
Revision as of 19:23, 10 February 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]
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 |
|
||
1 |
|
[SQW01] CS problems |
|
2 |
|
[SEW02] Asymptotic analysis |
[02a slides] |
3 |
|
[SEW03] Solving and profiling |
|
4 |
|
[SQW04] Linear algebra |
|
5 |
|
[SEW05] Caching in MMM |
|
6 |
|
[SEW06] BLAS |
|
7 |
|
[SQW07] Matrix Factorization and Sparse Matrices |
|
8 | READING BREAK
|
||
9 | LENTEN BREAK
|
||
10 |
|
[SQW10] Parallel programming |
|
11 |
|
[SEW11] Parallel computing algorithms |
|
12 |
|
[SEW12] OpenCL/OpenMP |
|
13 |
|
[CE] Capstone exercise |
|
14 | READING BREAK
| ||
15 | |||
16 | |||
17 |
|
Grading Rubric
40% Short quizzes
35% Software exercises
25% Capstone exercise