Skip to main content

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 BasicsBinary Representation of DataFollow 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 Assembly6502 Math - Jumps, Branches, and SubroutinesIf 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 Strings6502 String Input and Building Code: Make and MakefilesLab 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 OptimizationsBuilding Code: Compiler Options, GNU Autotools/AutomakeSeptember 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 SystemsLab 4

Week 6

Class 1 (Wednesday 11:40-1:25)Class 2 (Friday 11:40-1:25)Deliverables/Evaluation
Mid-semester Sync DiscussionAlgorithm Selection, In-line Assembler, and SIMDLab 5

Week 7

Class 1 (Wednesday 11:40-1:25)Class 2 (Friday 11:40-1:25)Deliverables/Evaluation
Exploring 64-bit CodeSVE2Complete 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 ClassNo 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 SIMDScalable Vector Extensions (SVE/SVE2) via Inline Assembler and C IntrinsicsContinue 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 OverviewProject DetailInvestigate 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 TipsAdvanced MemoryBlog about your project work.

Week 11

Class 1 (Wednesday 11:40-1:25)Class 2 (Friday 11:40-1:25)Deliverables/Evaluation
Project TechniquesProject DemoBlog about your project work.

Week 12

Class 1 (Wednesday 11:40-1:25)Class 2 (Friday 11:40-1:25)Deliverables/Evaluation
BenchmarkingStep-by-Step Project Minimum RequirementsBlog 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 ProjectProject DiscussionBlog 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 ArchitectureNo ClassProject Stage 3
December blog posts