Changes

Jump to: navigation, search

Fall 2015 SPO600 Weekly Schedule

4,846 bytes added, 16:19, 26 December 2015
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.}}
For the * Previous semester: [[Winter 2015 version of the weekly schedule, see SPO600 Weekly Schedule]].* Following semester: [[Winter 2015 2016 SPO600 Weekly Schedule]].
== Schedule Summary Table ==
{|cellspacing="0" width="100%" cellpadding="5" border="1" style="background: #e0e0ff"
|-
!Week!!Week of...!!width="28%"|Tuesday!!width="28%"|ThursdayFriday!!width="28%"|Deliverables<br/>(Summary - click for details)
|-
|1||Sep 7||style="background: #f0f0ff"|(Experience Seneca - no class)||[[#Friday (Sep 11)|Introduction to Software Porting, Portability, Benchmarking, and Optimization / How is code accepted into an open source project? (Lab 1)]]||[[#Week 1 Deliverables|Set up accounts, and blog a comparison of code reviews in two communities (Lab 1).]]
|-
|2||Sep 14||[[#Tuesday (Sep 15)|Compiled C Lab (Lab 2)]]||[[#Thursday Friday (Sep 18)|Compiler Optimizations]]||[[#Week 2 Deliverables|Blog about the Compiled C Lab (Lab 2)]]
|-
|-
|4||Sep 28||[[#Tuesday (Sep 29)|Presentations on compiler options.]]||[[#Thursday Friday (Oct 2)|Working with code / Building software Algorithm Selection Lab (Lab 3)]]||[[#Week 4 Deliverables|Blog about your presentation and about your experience building code (Lab 3).]]
|-
|5||Oct 5|||[[#Tuesday (Oct 6)|Benchmarking Discussion/hacking on the Algorithm Selection Lab (Lab 43)]]||[[#Thursday Friday (Oct 9)|Project IntroductionAlgorithm Selection (continued) and Benchmarks]]||[[#Week 5 Deliverables|Blog your baseline benchmarks (Lab 4)3 results.]]
|-
|6||Oct 12||[[#Tuesday (Oct 13)|Build Algorithm Selection (continued) / Start to plan a compiler options test tool.]]||[[#Thursday Friday (Oct 16)|Build Plan & build a compiler options test tool.]]||[[#Week 6 Deliverables|Blog about your design recommendations for the compiler options test tool.]]
|-
|7||Oct 19||[[#Tuesday (Oct 20)|Project Status - Stage IBuild the compiler options test tool.]]||[[#Thursday Friday (Oct 23)|Project discussions and hackingselection.]]||[[#Week 7 Deliverables|Blog about the compiler options test tool and your selected project - this will be used to assign your first project mark.]]
|-style="background: #f0f0ff"
|-
|8||Nov 2||No class scheduled. [[#Tuesday (Nov 3)|Computer architecture primerWork on the Course Project.]]||[[#Thursday Friday (Nov 6)|Assembler Lab (Lab 5).Project Status - Stage I]]||[[#Week 8 Deliverables|Blog about your project progress - this will be used to assign your 1st Project marks - as well as the Assembler Lab (Lab 5).]]
|-
|9||Nov 9||[[#Tuesday (Nov 10)|UpstreamingComputer Architecture Overview]]||[[#Thursday Friday (Nov 13)|Spinlocks, Tail Call OptimizationAssembler lab (Lab 4)]]||[[#Week 9 Deliverables|Blog about your project work and upstream interactionsLab 4.]]
|-
|10||Nov 16||[[#Tuesday (Nov 17)|Project Status - Stage II.Discussion & Hack Session]]||[[#Thursday Friday (Nov 20)|Inline assembler.Discussion & Hack Session - Framework]]||[[#Week 10 Deliverables|Blog about your project progress - this will be used to assign your second project marks.]]
|-
|11||Nov 23||[[#Tuesday (Nov 24)|SIMDand Auto-vectorization (Lab 5)]]||[[#Thursday Friday (Nov 27)|GCC Auto-vectorization (Lab 6)Framework Discussion and Hack Session]]||[[#Week 11 Deliverables|Blog about Lab 6 as well as SIMD/vectorization and your project(Lab 5).]]
|-
|12||Nov 30||[[#Tuesday (Dec 1)|Discussion & Benchmarking Discussions and Hack Session]]||[[#Thursday Friday (Dec 4)|Synthesis of project results.Memory Barriers, Spinlocks, Inline Assembler, and Tail Call Optimizations]]||[[#Week 12 Deliverables|Blog about your work.]]
|-
|13||Dec 7||[[#Tuesday (Dec 8)|Project Presentations Status - Stage 3II]]||[[style="background: #Thursday f0f0ff"|(Dec 11Exams in progress - no class)|Wrap-up Session]]||[[#Week 13 Deliverables|Blog about your project progress - this will be used to assign your 3rd project marks.]]
|-
|-style="background: #f0f0ff"
|Exam Week||Dec 14||colspan="3" align="center"|Exam Week - No exam in this course!However, be sure to complete your '''[[#Final Deliverables|Final Deliverables]] by 11:59 pm on Friday, December 18'''.
|}
{{Admon/tip|Bring Your Laptop|Classes are held in a [[Active Learning Classroom]]. If you have a laptop or other device with a VGA or HDMI output (such as a smartphone!) please bring it. You'll need either a local linux environment or an [[SSH]] client -- which is built-in to Linux, Mac, and Chromebook systems, and readily available for Windows, Android, and iOS devices.}}
* [[SPO600 Compiled C Lab|Compiled C Lab (Lab 42)]]
* Sheets from Last Week
** Open Source Student Agreement
** Survey (Optional)
=== Friday (Sep 18) ===
* Introductions
* [[Compiler Optimizations]]
* Introduction to the [[Fall 2015 SPO600 Compiler Options Presentation|Compiler Options Presentation]]
=== Week 2 Deliverables ===
* Blog about your [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]] and [[SPO600 Compiled C Lab|Lab 2]] experience and results. For lab 2, considering consider the optimizations and transformations that the compiler performed. Remember that this post these posts (as all of your blog posts) will be marked both for communication (clarity, quality of writing (including grammar and spelling), formatting, use of links, completeness) and for content (lab completion and results). Your post posts should contain both factual results as well as your reflections on the meaning of those results, the experience of performing the lab, and what you have learned. == Week 3 == This week [[User:Chris Tyler|your professor]] is at [http://connect.linaro.org/sfo15/ Linaro Connect], an engineering conference run by [http://www.linaro.org Linaro] - a distributed not-for-profit collaborative technology company focused on Linux on ARM. * [[Fall 2015 SPO600 Compiler Options Presentation|Select and prepare to teach the class about two compiler options]]. === Week 3 Deliverables ===* Be prepared to give your [[Fall 2015 SPO600 Compiler Options Presentation|presentation]] on Tuesday of next week (September 29). == Week 4 == === Tuesday (Sep 29) ===* Presentations === Friday (Oct 2) ===* Presentations* Introduction to ARM64 hardware* [[SPO600 Algorithm Selection Lab|Algorithm Selection Lab (Lab 3)]] === Week 4 Deliverables ===* Blog your [[Fall 2015 SPO600 Compiler Options Presentation|presentation]], incorporating any feedback and Q&A input that was given during/after the presentation in class. == Week 5 == === Tuesday (Oct 6) ===* Class discussion/hacking on [[SPO600 Algorithm Selection Lab|Lab 3]]. === Friday (Oct 9) ===* More on Lab 3* Discussion of Benchmarking === Week 5 Deliverables ===* Blog your [[SPO600 Algorithm Selection Lab|Lab 3]] results. == Week 6 == === Tuesday (Oct 13) ===* Discussion of benchmarking** Control of variables*** Competition for system resources*** Repeatability* Planning for a Compiler Options Test Framework === Friday (Oct 16) ===* Compiler Options Framework** Divide up tasks** Start development === Week 6 Deliverables ===* Blog your recommendations for the test framework design.  == Week 7 == === Tuesday (Oct 20) ===* Build the [[SPO600 Framework Project|Compiler Options Test Framework]] === Friday (Oct 23) ===* Project selection** Your task over reading week: Become an expert in building your selected software, and then make it work with the [[SPO600 Framework Project|Compiler Options Test Framework]] === Week 7 Deliverables ===* Blog about the compiler options framework, and your work on that project.* Blog about your selected project. == Week 8 == === Tuesday (Nov 3) ===* No class scheduled - your [[User:Chris Tyler|prof]] is in Whitehorse, YK at an NSERC workshop.* Please work on your [[Fall 2015 SPO600 Course Project|project]], and be ready to present on Friday. === Friday (Nov 6) ===* Present your Stage I results for your [[Fall 2015 SPO600 Course Project|project]]. === Week 8 Deliverables === * Blog about your [[Fall 2015 SPO600 Course Project|stage I project results]]. This will be used to assign the first marks for your project. == Week 9 ==
=== Tuesday (Nov 10) ===
* [[Computer Architecture]] overview (see also the [[:Category:Computer Architecture|Computer Architecture Category]])
 
=== Friday (Nov 13) ===
 
* [[SPO600 Assembler Lab|Assembly language lab]] (lab 4)
 
=== Week 9 Deliverables ===
 
* Blog about your project progress (2+ posts per week).
* Blog the [[SPO600 Assembler Lab|Assembly language lab]] -- include your results, a link to your source code, and your reflections on the experience.
 
 
== Week 10 ==
 
=== Tuesday (Nov 17) ===
* Discussion & Hack Session
** [[SPO600 Assembler Lab|Assembly language lab (Lab 4) results]]
** Testing Framework
 
=== Friday (Nov 20) ===
* Hack session on the Testing Framework
 
=== Week 10 Deliverables ===
* Blog about your project work
* Blog about your Lab 5 results
 
== Week 11 ==
 
=== Tuesday (Nov 22) ===
* SIMD and Vectorization
* [[SPO600 Vectorization Lab|Vectorization Lab (Lab 6)]]
 
=== Friday (Nov 25) ===
* Discussion of the State of the Framework
* Hack Session
 
=== Week 11 Deliverables ===
* Blog your [[SPO600 Vectorization Lab|Lab 6]] results.
 
== Week 12 ==
 
=== Tuesday (Dec 1) ===
* Stage II Results - Brief Presentations
 
=== Friday (Dec 4) ===
* '''No Class''' - Early start to Exam Week
 
=== Week 12 Deliverables ===
* Blog about your Project Status - Stage II Results
** Provide results for the various flag combinations you tested
** Discuss the results, highlighting any anomalies
 
== Final Deliverables ==
* Blog about your Project Status - Stage III Results
** Important: Incorporate any feedback on your Stage II results
** Outline what you learned from your investigation into various combination of GCC flags
** Discuss what the upstream projects should do based on these results
** Communicate the results to the upstream project, if appropriate
** Outline further investigation that should be undertaken
* Blog a reflective blog post on the course
** What you have learned
** What you already knew
** What was good or bad about the way the course proceeded]
** How you might use this knowledge in the future
* This is the last chance to submit any lab postings, etc.
'''All blog postings must be in by Friday, December 18, at 11:59 pm to be included in the final grade.'''
<!--
* Complete and blog your conclusions to the [[SPO600 Profiling Lab|Profiling Lab (Lab 3)]].
This week [[User:Chris Tyler|your professor]] is at [http://connect.linaro.org/sfo15/ Linaro Connect], an engineering conference run by [http://www.linaro.org Linaro] - a distributed not-for-profit collaborative technology company focused on Linux on ARM.
 
* [[Fall 2015 SPO600 Compiler Options Presentation|Select and prepare to teach the class about two compiler options]].
== Week 4 ==
== Week 3 ==
This week [[User:Chris Tyler|your professor]] is at [http://connect.linaro.org/sfo15/ Linaro Connect], an engineering conference run by [http://www.linaro.org Linaro] - a distributed not-for-profit collaborative technology company focused on Linux on ARM. <!-- You can [https://www.linaro.org/connect/lcu/lcu14/remote/ participate remotely] and may find some of the sessions interesting. -->
* [[Fall 2015 SPO600 Compiler Options Presentation|Select and prepare to teach the class about a specific small topic related to assembly language / machine language programming]].
* Be prepared to give your [[Fall 2015 SPO600 Compiler Options Presentation|presentation]] on Tuesday of next week (September 23).
 
<!--
== Misc / Relocated ==

Navigation menu