Changes

Jump to: navigation, search

Fall 2019 SPO600 Weekly Schedule

1,391 bytes added, 10:54, 6 January 2020
no edit summary
[[Category:Fall 2019 SPO600]]
This is the schedule and main index page for the [[SPO600]] ''Software Portability and Optimization'' course for Fall 2019.
<!-- {{Admon/important|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.}}-->
<!-- {{Admon/important|Content being Updated|This page is in the process of being updated from a previous semester's content. It is not yet updated for Fall 2019. Do not rely on the accuracy of this information until this warning is removed.}} -->
<!-- {{Admon/obsolete|[[Current SPO600 Weekly Schedule]]}} -->
== Schedule Summary Table ==
|-
|8||Oct 28||[[#Week 8 - Class I|Intrinsics and SIMDMemory Ordering / Barriers / Acquire-Release Semantics]]||[[#Week 8 - Class II|Project Hacking]]||[[#Week 8 Deliverables|Blog blog about your project.]]
|-
|-
|10||Nov 11||[[#Week 10 - Class I|Memory Ordering / Barriers / Acquire-Release SemanticsIntrinsics]]||[[#Week 10 - Class II|Project Hacking]]||[[#Week 10 Deliverables|Blog about your project.]]
|-
!Category!!Percentage!!Evaluation Dates
|-
|Communication||align="right"|20%||September (Oct 2 - 5%), October (November 10 - 5%), November (Dec 1, 5%), end of course (Dec 13, 5%).
|-
|Quizzes||align="right"|10%||May be held during any class, usually at the start of class. A minimum of 5 one-page quizzes will be given. No make-up/retake option is offered if you miss a quiz. Lowest 3 scores will not be counted. Students with Test Centre accommodations may choose to write the quizzes in the class, or alternately write a monthly quiz in the Test Center.
|Labs||align="right"|10%||See deliverables column above. All labs must be submitted by the end of the course, but it is best if you stay on top of the labs and submit according to the table above.
|-
|Project work||align="right"|60%||3 stages: 15% (Nov 8), 20% (Nov 29Dec 1), 25% (Dec 1113).
|}
== Week 6 ==
=== Week 6 - Class I ===
* [[Compiler Optimizations]]
* [[Profiling]]
=== Week 6 - Class II ===
* Continue work on the [[SPO600 SIMD Lab|SIMD Lab]] (Lab 5)
== Week 7 ==
=== Week 7 - Class I ===
Building software...
=== Week 7 - Class II ===* [[Fall 2019 SPO600 Project|Project Selection]]
=== Week 7 Deliverables ===
* Catch up on any incomplete labs (and blog about them)
* Blog about your project selection progress
 
 
== Week 8 ==
 
=== Week 8 - Class I ===
 
==== Overview/Review of Processor Operation ====
 
* Fetch-decode-dispatch-execute cycle
* Pipelining
* Branch Prediction
* In-order vs. Out-of-order execution
** Micro-ops
 
==== Memory Basics ====
 
* Organization of Memory
** Process organization
*** Text, data
*** Stack
*** Heap
** System organization
*** Kernel memory in process maps
*** Use of unallocated memory for buffers and cache
* Memory Speeds
* Cache
** Cache lookup
** Cache synchronization and invalidation
** Cache line size
* Prefetch
** Prefetch hinting
 
==== Memory Architecture ====
 
* Virtual Memory and Memory Management Units (MMUs)
** General principles of Virtual Memory and operation of MMUs
** Memory protection
*** Unmapped Regions
*** Write Protection
*** Execute Protection
*** Privilege Levels
** Swapping
** Text sharing
** Demand Loading
** Data sharing
*** Shared memory for Inter-Process Communication
*** Copy-on-Write (CoW)
** Memory mapped files
 
==== Memory Statistics ====
 
* Resident Set Size (RSS) and Virtual Set Size (VSS)
* Total memory consumption per process
* Total system memory consumption
 
==== Software Impact ====
* Alignment checks
* Page boundary crossing
 
=== Week 8 - Class II ===
 
* Project Discussion
 
=== Week 8 Deliverables ===
 
* Blog about your project work
<!--
* Organization of Memory
** System organization
** Process organization
*** Text, data
*** Stack
*** Heap
** System organization
* Memory Speeds
* Cache
* Virtual Memory and Memory Management Units (MMUs)
** General principles of VM Virtual Memory and operation of MMUs
** Memory protection
*** Unmapped Regions
** Swapping
** Text sharing
** Demand Loading
** Data sharing
*** Shared memory for Inter-Process Communication*** Copy-on-Write (CoW)** Demand Loading
** Memory mapped files

Navigation menu