Weekly Schedule
This is the schedule and main index page for the SPO600 Software Portability and Optimization course for Fall 2022.
It's Alive!: This SPO600 weekly schedule will be updated as the course proceeds - dates and content are subject to change. The cells in the summary table will be linked to relevant resources and labs as the course progresses.
Schedule Summary Table
Please follow the links in each cell for additional detail which will be added below as the course proceeds -- especially for the Deliverables column.
Week 1
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Introduction to the Course, Introduction to the Problem, and Computer Architecture Basics | Binary Representation of Data | Follow the SPO600 Communication Tools set-up instructions. |
Optional (strongly recommended): Set up a personal Linux system | ||
Optional: If you have an AArch64 development board (such as a Raspberry Pi 4, Raspberry Pi 400, or 96Boards device), consider installing a 64-bit Linux operating system such as Fedora on it. | ||
Start work on Lab 1. Blog your work. |
Week 2
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Introduction to 6502 Assembly | 6502 Math - Jumps, Branches, and Subroutines | If not already completed last week: Set up your SPO600 Communication Tools, and Complete Lab 1 and blog your work. |
Study the 6502 Instructions and 6502 Addressing Modes and make sure you understand what each one does. | ||
Complete Lab 2 and blog your results. |
Week 3
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
6502 Strings | 6502 String Input and Building Code: Make and Makefiles | Lab 3 |
Note that September blog posts are due at the end of next week, so don't get behind in your blogging |
Week 4
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Compiler Optimizations | Building Code: Compiler Options, GNU Autotools/Automake | September blogs are due this weekend (Sunday, October 2 at 11:59 pm) |
Week 5
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Introduction to 64-bit Architectures and Assembly Language (x86_64 and AArch64) | Memory on 64-bit Systems | Lab 4 |
Week 6
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Mid-semester Sync Discussion | Algorithm Selection, In-line Assembler, and SIMD | Lab 5 |
Week 7
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Exploring 64-bit Code | SVE2 | Complete Lab 4 and Lab 5 |
Remember that October blogs are due soon. |
Reading Week
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
No Class | No Class |
Week 8
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Optimization Trade-Offs, Algorithm Selection, Inline Assembler, and SIMD | Scalable Vector Extensions (SVE/SVE2) via Inline Assembler and C Intrinsics | Continue your blogging |
Include blogging on SVE/SVE | ||
The second group of blog posts is due on or before this Sunday (November 6, 11:59 pm) |
Week 9
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
GNU ifunc & Project Overview | Project Detail | Investigate the iFunc example code |
Blog about your investigation | ||
Start blogging about your Project |
Week 10
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Project Tips | Advanced Memory | Blog about your project work. |
Week 11
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Project Techniques | Project Demo | Blog about your project work. |
Week 12
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Benchmarking | Step-by-Step Project Minimum Requirements | Blog about your Project |
November blog posts are due Sunday, December 4, at 11:59 pm | ||
Project Stage 2 is due next Thursday, December 8, at 12 noon |
Week 13
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Enhancing Your Project | Project Discussion | Blog about project work |
Project Stage 2 due Thursday December 8 at Noon |
Week 14
Class 1 (Wednesday 11:40-1:25) | Class 2 (Friday 11:40-1:25) | Deliverables/Evaluation |
---|---|---|
Future Directions in Architecture | No Class | Project Stage 3 |
December blog posts |