1,885
edits
Changes
no edit summary
{{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 the current semester. Do not rely on the accuracy of this information until this warning is removed.}} -->
== Schedule Summary Table ==
|Reading||Oct 25||style="background: #f0f0ff" colspan="5" align="center"|Reading Week
|-
|8||Nov 1||[[#Week 8 - Class I|x86_64 and AArch64]]||[[#Week 8 - Class II|Profiling Lab (Lab 7)x86_64 and AArch64]]||[[#Week 8 Deliverables|October Blog Posts / Project Stage 1]]
|-
|9||Nov 8||[[#Week 9 - Class I|Optimization through Algorithm SelectionBenchmarking and Profiling]]||[[#Week 9 - Class II|Compilation Lab (64-Bit Assembler Lab 6)]]||[[#Week 9 Deliverables|Lab 65]]
|-
|10||Nov 15||[[#Week 10 - Class I|Single Instruction, Multiple Data (SIMD) and VectorizationContinue work on Lab 5]]||[[#Week 10 - Class II|SIMD and Vectorization Lab (Lab 8)Discussion]]||[[#Week 10 Deliverables|Lab 85]]
|-
|11||Nov 22||[[#Week 11 - Class I|SIMD, Intrinsics and inline Assembler]]||[[#Week 11 - Class II|Intrinsics Lab (Lab 9)Discussion]]||[[#Week 11 Deliverables|Project Stage 21]]
|-
|12||Nov 29||[[#Week 12 - Class I|Project DiscussionMemory]]||[[#Week 12 - Class II|Project Discussion]]||[[#Week 12 Deliverables|Lab 9 / November Blog PostsProject work]]
|-
|13||Dec 6||[[#Week 13 - Class I|Project Discussion]]||[[#Week 13 - Class II|Lab 10]]||[[#Week 13 Deliverables|Lab 10Project Work]]
|-
|14||Dec 13||[[#Week 13 - Class I|Future Directions in Architecture]]||[[#Week 13 - Class II|Wrap-up Discussion]]||[[#Week 13 Deliverables|December Blog Posts / Project Stage 3Final blog posts and project work]]
|-
|}
===== Benchmarking and Profiling =====
Benchmarking involves testing software performance under controlled conditions so that the performance can be compared to other software, the same software operating on other types of computers, or so that the impact of a change to the software can be gauged.
===== Build Process =====
Building software is a complex task that many developers gloss over. The simple act of compiling a program invokes a process with five or more stages, including pre-proccessing, compiling, optimizing, assembling, and linking. However, a complex software system will have hundreds or even thousands of source files, as well as dozens or hundreds of build configuration options, auto configuration scripts (cmake, autotools), build scripts (such as Makefiles) to coordinate the process, test suites, and more.
=== Week 8 - Class I ===
=== Week 9 - Class I === ==== Video ====* Reminder![https://web.microsoftstream.com/video/8ca180ab-ad44-4905-8d39-d6c0cea87529 Benchmarking and Profiling] === Week 9 - Class II === *[[SPO600_64-bit_Assembler_Lab|64-Bit Assembler Lab (Lab 5)]] == Week 10 == === Week 10 - Class I === * No new videos - continue work on [[SPO600_64-bit_Assembler_Lab|Lab 5]] === Week 10 - Class II === * Quiz 2* Discussion == Week 11 == === Week 11 - Class I ===* Lab 6 / Project Stage 1 ==== Videos ====* Fill out the [https://formsweb.officemicrosoftstream.com/rvideo/3Q3fjWda0K 2a82da88-bf5b-4112-953a-7408fbab30c1 Algorithm Selection & Profiling]* [https://web.microsoftstream.com/video/f60b92c6-9db3-4f57-b0b9-7c35ea0c054f Single Instruction, Multiple Data (SIMD)]* [https://web.microsoftstream.com/video/d208a737-7777-4b5a-b276-1b19dc78145c Inline Assembler]* [https://web.microsoftstream.com/video/d56ec6ff-2c2c-40d6-8967-52d829e413cc Linux Tips for Benchmarking and Profiling] (older video) === Week 11 - Class II === * Quiz 3* Discussion* [[SPO600_Algorithm_Selection_Lab|Project Stage I (aka Lab 6)]] === Week 11 Deliverables === * [[SPO600_Algorithm_Selection_Lab|Blog about Project Stage 1]] == Week 12 == === Week 12 - Class I === ==== Videos ====* [https://web.microsoftstream.com/video/1bcab47b-514a-4f23-bdd4-f73662a0673f Paged Memory Systems] - Virtual memory, demand loading, shared pages, write protection, and challenges benchmarking memory performance (VSS and RSS)* [https://web.microsoftstream.com/video/880fb0f8-1084-457a-92e0-80f04ad62463 Memory Alignment and SSH FormPerformance] if you haven't already done so.
<!--