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

From Microlab Classes
Jump to navigation Jump to search
m
 
(5 intermediate revisions by the same user not shown)
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 at eeemail]
+
* Darvy P. Ong [darvy.ong at eeemail]
* Isabel M. Austria [isabel.austria at eeemail]
 
 
* Nestor Michael C. Tiglao [nestor 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.
 
'''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.
 
<br>
 
<br>
Line 29: Line 33:
 
|-
 
|-
 
| 0
 
| 0
||  
+
|
* [00] Course overview and synopsis
+
[00] Course overview and synopsis<br>
* [00] Course requirements
+
[00] Course requirements
||
+
|
||  
+
|  
[[:File:Coe163 2020s2 Syllabus.pdf | [syllabus]]]<br>
+
[[:File:Coe163 2s2122 syllabus.pdf | [guide]]]<br>
[[:File:Coe163 2020s2 00 about.pdf | [00 slides]]]
+
[[:File:Coe163 2s2122 00 about.pdf | [00 slides]]]
 
|-
 
|-
 
| 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>
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=441632 <nowiki>[SQ01] Submission bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=156604 <nowiki>[SQ01] Quiz</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=450839 <nowiki>[SQ01] Submission bin (late)</nowiki>]
+
|
||
+
[[:File:Coe163 2s2122 01a review algorithms.pdf | [01a slides]]]<br>
[[:File:Coe163 2020s2 01a review algorithms.pdf | [01a slides]]]<br>
+
[[:File:Coe163 2s2122 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<br>
* [02b] Amortized analysis
+
[02b] Amortized analysis<br>
* [02c] Platform-dependent programming
+
[02c] High-level optimization
||
+
|
 
[SQ02] Asymptotic analysis<br>
 
[SQ02] Asymptotic analysis<br>
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=450833 <nowiki>[SQ02] Submission bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=156608 <nowiki>[SQ02] Quiz</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=457669 <nowiki>[SQ02] Submission bin (late)</nowiki>]
+
|
||
+
[[:File:Coe163 2s2122 02a review asymptotic.pdf | [02a slides]]]<br>
[[:File:Coe163 2020s2 02a review asymptotic.pdf | [02a slides]]]<br>
+
[[:File:Coe163 2s2122 02b amortized analysis.pdf | [02b slides]]]<br>
[[:File:Coe163 2020s2 02b amortized analysis.pdf | [02b slides]]]<br>
+
[[:File:Coe163 2s2122 02c high level optimization.pdf | [02c slides]]]
[02c slides]
 
 
|-
 
|-
 
| 3
 
| 3
||
+
|
* [03a] High-level code translation to memory
+
[03a] Choosing a platform<br>
* [03b] Introduction to parallel programming
+
[03b] x86 assembly introduction<br>
* [03c] Introduction to x86 assembly
+
[03c] x86 assembly reference
||
+
|
[ME01] Solving and profiling<br>
+
[SE01] Profiling and assembly<br>
[[:File:Coe163 2020s2 ME01.pdf | [ME01] Specifications]]<br>
+
[[:File:Coe163 2s2122 se01 profiling assembly.pdf | [SE01] Specifications]]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=450836 <nowiki>[ME01] Submission bin</nowiki>]
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=195394 <nowiki>[SE01] Submission bin</nowiki>]
||
+
|
[[:File:Coe163 2020s2 03a high level optimization.pdf | [03a slides]]]<br>
+
[[ | [03a slides]]]<br>
[[:File:Coe163 2020s2 03b parallel programming intro.pdf | [03b slides]]]<br>
+
[[:File:Coe163 2s2122 03b x86 assembly.pdf | [03b slides]]]<br>
[03c slides]<br>
+
[[:File:Coe163 2s2122 03c x86 assembly ref.pdf | [03c slides]]]
 
|-
 
|-
 
| 4
 
| 4
||
+
|
* [04a] Review of linear algebra operations
+
|
* [04b] Solving problems using linear algebra
+
|
* [04c] Considerations on formulating linear algebra algorithms
+
|-
||
+
| 5
||
+
|
 +
[04a] Review of linear algebra operations<br>
 +
[04b] Solving problems using linear algebra<br>
 +
[04c] Linear algebra and computers
 +
|
 +
[SQ03] Linear algebra<br>
 +
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=225666 <nowiki>[SQ03] Knowledge check</nowiki>]
 +
|
 +
[[:File:Coe163 2s2122 04x study guide.pdf | [04x guide]]]<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>
 
[[:File:Coe163 2020s2 04c linear algeb considerations.pdf | [04c slides]]]<br>
 
[[:File:Coe163 2020s2 04c linear algeb considerations.pdf | [04c slides]]]<br>
 
|-
 
|-
| 5
+
| 6
||
+
|
* [05a] Cache review
+
[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
||
+
|
[SQ03] Caching in MMM<br>
+
[SQ04] Matrix-matrix multiplication<br>
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=467803 <nowiki>[SQ03] Submission bin</nowiki>]<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=478761 <nowiki>[SQ03] Submission bin (late)</nowiki>]<br><br>
+
<br>
 
+
[SE02] Caching in MMM<br>
[ME02] MMM Loop Ordering<br>
+
[https://colab.research.google.com/drive/1tj7VoRqeZ9TuhO3Cl2A0OEnwGKqy9_xW <nowiki>[SE02] Google Colab</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=473279 <nowiki>[ME02] Submission bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=156639 <nowiki>[SE02] Submission bin</nowiki>]
[https://colab.research.google.com/drive/1tj7VoRqeZ9TuhO3Cl2A0OEnwGKqy9_xW <nowiki>[ME02] Jupyter notebook</nowiki>]
+
|
||
+
[[:File:Coe163 2s2122 05x study guide.pdf | [05x guide]]]<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>
[[:File:Coe163 2020s2 05c mmm part02.pdf | [05c slides]]]<br>
+
[[:File:Coe163 2s2122 05c mmm pt2.pdf | [05c slides]]]<br>
[[:File:Coe163 2020s2 05x study guide.pdf | [05x guide]]]<br>
 
 
|-
 
|-
| 6
+
| 7
||
+
|
* Gaussian elimination
+
[06a] BLAS and ATLAS
* Matrix inversion
+
|
||
+
[SE03] BLAS<br>
[ME03] BLAS<br>
+
[https://colab.research.google.com/drive/1wOzAnnel_qm2z8_LUO1ijSSSw7yWdWMA <nowiki>[SE03] Google Colab</nowiki>]<br>
[https://uvle.upd.edu.ph/mod/assign/view.php?id=473330 <nowiki>[ME03] Submission bin</nowiki>]<br>
+
[https://uvle.upd.edu.ph/mod/assign/view.php?id=156648 <nowiki>[SE03] Submission bin</nowiki>]<br>
[https://colab.research.google.com/drive/1wOzAnnel_qm2z8_LUO1ijSSSw7yWdWMA <nowiki>[ME03] Jupyter notebook</nowiki>]
+
|
||
 
 
[[:File:Coe163 2020s2 06a blas atlas.pdf | [06a slides]]]
 
[[:File:Coe163 2020s2 06a blas atlas.pdf | [06a slides]]]
|-
 
| 7
 
||
 
* Sparse linear algebra
 
* Matrix decomposition
 
||
 
[SQ04] Matrix Factorization and Sparse Matrices<br>
 
[https://uvle.upd.edu.ph/mod/quiz/view.php?id=478785 <nowiki>[SQ04] 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
||
+
| colspan="2" | <div style="text-align: center;">'''READING BREAK'''</div>
* Parallel computing concepts
+
|
* Limits of parallel computing
 
||
 
||
 
 
|-
 
|-
 
| 9
 
| 9
||
+
| colspan="2" | <div style="text-align: center;">'''LENTEN BREAK'''</div>
* Single instruction multiple data vectorization
+
|
* OpenCL/OpenMP
 
||
 
||
 
 
|-
 
|-
 
| 10
 
| 10
||
+
|
* GPU programming introduction
+
[10a] Gaussian elimination<br>
||
+
[10b] Sparse linear algebra
||
+
|
 +
[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
||
+
|
* Parallel computing algorithms
+
[11a] Parallel computing introduction<br>
||
+
[11b] Parallel programming and hardware
||
+
|
 +
[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
||
+
|
||
+
[12x] Parallel programming algorithms
[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://colab.research.google.com/drive/1jjzPTP0QAMLcmiIGJFY_dXxdaGozkHvx <nowiki>[CE] Jupyter notebook</nowiki>]<br>
+
| 13
||
+
|
 +
[13a] GPU programming basics<br>
 +
[13b] CUDA programming with Numba
 +
|
 +
[CE] Capstone exercise
 +
|
 +
|-
 +
| 14
 +
| colspan="2" | <div style="text-align: center;">'''READING BREAK'''</div>
 +
|-
 +
| 15
 +
|
 +
|
 +
|
 +
|-
 +
| 16
 +
|
 +
|
 +
|
 +
|-
 +
| 17
 +
|
 +
Finals week
 +
|
 +
|
 
|}
 
|}
  
 
= Grading Rubric =
 
= Grading Rubric =
40% Short quizzes<br>
+
32% Short quizzes<br>
35% Software exercises<br>
+
48% Software exercises<br>
25% Capstone exercise
+
20% Capstone exercise
  
 
= Announcements =
 
= Announcements =
 
== February 2022 ==
 
== February 2022 ==

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