Changes

Jump to: navigation, search

Fall 2017 SPO600 Weekly Schedule

3,281 bytes added, 10:58, 6 December 2017
no edit summary
[[Category:Fall 2017 SPO600]]
This is the schedule and main index page for the [[SPO600]] ''Software Portability and Optimization'' course for Winter 2017.
<!-- {{Admon/caution|Revisions Pending|This schedule is being revised following the interruption due to strike.}} -->
{{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 fully updated for Fall 2017. Do not rely on the accuracy of this information until this warning is removed.}}-->
<!--* Previous semester: [[Winter 2017 SPO600 Weekly Schedule]].
{|cellspacing="0" width="100%" cellpadding="5" border="1" style="background: #e0e0ff"
|-Code Building LabCode Building LabCode Building Lab
!Week!!Week of...!!width="28%"|Class I<br/>Monday 9:50-11:35!!width="28%"|Class II<br/>Wednesday 11:40-1:25!!width="28%"|Deliverables<br/>(Summary - click for details)
|-
|1||Sep 4||style="background: #f0f0fff0fff0"|(Labour Day - No class)||[[#Week 1 - Class II|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.]]
|-
|2||Sep 11||[[#Week 2 - Class I|Computer Architecture Overview - Binary representation, processor internals, instruction set architecture]]||[[#Week 2 - Class II|Compiled C Lab (Lab 2)]]<!-- Overview of Working with Code and Building Software - Toolchains, compiler stages, switches and flags, binary file contents (Lab 2)]]-->||[[#Week 2 Deliverables|Blog your conclusion to Labs 1 and 2.]]
|-
|3||Sep 18||[[#Week 3 - Class I|Assembly Lab (Lab 3)]]||[[#Week 3 - Class II|Compiled C Assembly Lab (Lab 3 - continued) and Code Bulding Lab (Lab 4)]]||[[#Week 3 Deliverables|Blog about the Assembly Lab (your results and conclusions for Lab 3) and Compiled C Lab (Lab 4)]]
|-
|-style="background: #f0f0ff"
|4||Sep 25||colspan="3" align="center"|Linaro Connect (No Classes) - Complete the [[#Week 4|Code Building Lab]] (Lab 4) in preparation for your Project Selection
|-
|5||Oct 2|||[[#Week 5 - Class I|Compiler Optimizations]]||[[#Week 5 - Class II|SIMD and Auto-Vectorization (Lab 5)]]||[[#Week 5 Deliverables|Blog your Auto-Vectorization Lab (Lab 5) results.]]
|-
|56||Oct 29|||[[style="background: #Week 5 - Class If0fff0"|Algorithm Selection Lab (Lab 5Thanksgiving - No class)]]||[[#Week 5 6 - Class II|SIMD and Auto-Vectorization Algorithm Selection (Lab 6)]]||[[#Week 5 6 Deliverables|Blog about your the Algorithm Selection Lab (Lab 5) and the Auto-Vectorization Lab (Lab 6).]]
|-
|6||Oct 9||[[#Week 6 - Class I|Inline Assembler Lab (Lab 7)]]||[[style="background: #Week 6 - Class II|Project Selection]]ffd0d0"|colspan="5" align="center"|[[#Week 6 Deliverables|Blog about your Inline Assembler Lab (Lab 7).]]Strike
|-
|7x7||Oct 16Nov 20||[[#Week 7 - Class I|Project Startup]]||[[#Week 7 - Class II|Project Stage I Presentations]]||[[#Week 7 Deliverables|Blog about your selected presentation and project topics.]] |-style="background: #f0f0ffffd0d0"|Study WeekStrike||Oct 23||colspanstyle="3" align="centerbackground: #f0f0ff"|Study Week (NSERC IRCC Meetings - [http://fsoss.ca FSOSS 2017] is on Thursday-Friday - See the [[#FSOSS BonusNo class)||FSOSS Bonus]]
|-
|8x8||Oct 30Nov 27||[[#Week 8 x8 - Class I|Project DiscussionCourse Review & Revised Plans]]||[[#Week 8 x8 - Class II|ProfilingInline Assembler (Lab 7)]]||[[#Week 8 x8 Deliverables|Blog about your projectresults for Lab 7.]]
|-
|9x9||Nov 6Dec 4||[[#Week 9 x9 - Class I|Project: Building, Benchmarking, and Profiling]]||[[#Week 9 x9- Class II|BenchmarkingProject Hacking]]||[[#Week 9 x9 Deliverables|Blog about your project work.]]
|-
|10x10||Nov 13Dec 11||[[#Week 10 x10 - Class I|Project Stage II UpdatesHacking]]||[[#Week 10 x10 - Class II|Discussion & Hack SessionProject Hacking - End of Stage I]]||[[#Week 10 x10 Deliverables|Blog about your project, including Stage II UpdateI report.]]
|-
|11x11||Nov 20Dec 18||''IRCC Workshop?''[[#Week x11 - Class I|Project Hacking]]||[[#Week 11 - Class II|Discussion & Hack SessionProject Hacking]]||[[#Week 11 X11 Deliverables|Blog about your project work.]]
|-
|12x12||Nov 27Jan 1||[[style="background: #Week 12 f0fff0"|(New Year's Day - Class I|Discussion & Hack Session]]No class)||[[#Week 12 x12 - Class II|Discussion & Hack SessionProject Hacking]]||[[#Week 12 x12 Deliverables|Blog about your project work.]]
|-
|13x13||Dec 4Jan 8||[[#Week 13 x13 - Class I|Wrap-Up Discussion; end of project Stage II.]]||[[style="background: #Week 12 - Class IIf0f0ff"|Project Stage III Updates]](Course finished)||[[#Week 13 x13 Deliverables|Blog about your project, including the final/Stage III UpdateII report, and write a wrap-up post about the course.]]
|-
|-style="background: #f0f0ff"
|Exam Week||Dec 11||colspan="3" align="center"|Exam Week - No exam in this course!
|}
!Category!!Percentage!!Evaluation Dates
|-
|Communication||align="right"|20%||5% each: End of September(5%), End of Study Week November (October 29Dec 3 - 7.5%), November 19, end of course(Jan 8 - 7.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.
|-
|Labs||align="right"|10%||See deliverables column above. All labs must be submitted by Dec Jan 8.
|-
|Project work||align="right"|60%||3 2 stages: 15% (Oct 20) / 20% (Nov 17Dec 14) / 2540% (Dec Jan 8).
|}
 
== Week 1 ==
There is no "Class I" during this first week due to Labour Day.
 
=== Week 1 - Class II ===
==== General Course Information ====
* Course resources are linked from the CDOT wiki, starting at http://wikiClick here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in. Click here if you have trouble logging in..cdot.senecacollege.ca/wiki/index.php/SPO600 (Quick find: This page will usually be Google's top result for a search on "SPO600").
* Coursework is submitted by blogging.
* Quizzes will be short (1 page) and will be held without announcement at any time, generally at the start of class. Your lowest three quiz scores will not be counted, so do not worry if you miss one or two.
## Set up your [[SPO600 Communication Tools]] - in particular, set up a blog and add it to [http://zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT] (via the [[Planet CDOT Feed List]]).
## Add yourself to the [[Fall 2017 SPO600 Participants]] page (leave the projects columns blank).
## Generate a [[SSHSPO600_Servers#Using_Public_Keys_with_SSHPreparatory_Steps|pair of keys]] for [[SSH]] and email the public key to your professor, so that he can set up your access to the [[SPO600_Servers class servers]].## Sign and return the [[Open Source Professional Option Student Agreement]](this will be done on paper in class).
# Complete Labs
## [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]] (Due end of week 2)
== Week 2 ==
, processor intern, processor internals, instruction set architecture]]||[[#Week 2 - Class II|als, instruction set architecture]]||[[#Week 2 - Class II|
=== Week 2 - Class I ===
* Binary Representation of Data
** Numbers
*** Integers
*** Fixed-point numbers
*** Floating-point numbers
** Characters
*** ASCII
*** ISO8859-1
*** Unicode
**** Encoding schemes
*** EBCDIC
** Images
** Sound
* [[Computer Architecture]] overview (see also the [[:Category:Computer Architecture|Computer Architecture Category]])
* A first look at the x86_64 and AArch64 Architectures and ISA
** Procedure calling conventions
==== Reference ====
* [[Computer Architecture]] and [[:Category:Computer Architecture|Computer Architecture Category]]
* [[Aarch64 Register and Instruction Quick_Start]]
* [[x86_64 Register and Instruction Quick_Start]]
=== Week 2 - Class II ===
* [[Overview of the Build and Release Process]]<!-- *Working with Code
*# Getting Code
*#* In a tarball
*#* Installation Scripts
* [[Overview of the Build and Release Process]]
* Looking at How Distributions Package the Code
** Using fedpkg 
* How do you Test without Compromising the Running System?
** Paths
* [[SPO600 Code Building Lab|Code Building Lab (Lab 2)]] as homework
-->
* [[SPO600 Compiled C Lab|Compiled C Lab (Lab 2)]]
=== Week 2 Deliverables ===
 
* Blog your conclusion to the [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]]
* Blog the results and conclusion from the [[SPO600 Compiled C Lab|Compiled C Lab (Lab 2)]]
 
 
== Week 3 ==
 
=== Week 3 - Class I ===
 
* [[SPO600 Assembler Lab|Assembler Lab (Lab 3)]].
 
=== Week 3 - Class II ===
 
* Complete Lab 3.
* [[SPO600 Code Building Lab|Code Building Lab (Lab 4)]]
 
=== Week 3 Deliverables ===
 
* Complete and blog your results, conclusions, and reflections on the [[SPO600 Assembler Lab|Assembler Lab (Lab 3)]].
 
== Week 4 ==
* Complete and blog your results, conclusions, and reflections on the [[SPO600 Code Building Lab|Code Building Lab (Lab 4)]]. == Week 5 == === Week 5 - Class I === * [[Compiler Optimizations]]* [[Profile Guided Optimization]]* [[Link Time Optimization]]  === Week 5 - Class II === * Introduction to Vector Processing/SIMD* [[SPO600 Vectorization Lab|Vectorization Lab]] (Lab 5)  === Week 5 Deliverables === * Blog your results for the [[SPO600 Vectorization Lab|Vectorization Lab]] (Lab 5) -- be sure to include links to your code, detailed results, and your reflection on the lab. == Week 6 == === Week 6 - Class II === * [[SPO600 Algorithm Selection Lab|Algorithm Selection Lab]] (Lab 6)  === Week 6 Deliverables === * Blog your results for the [[SPO600 Algorithm Selection Lab|Algorithm Selection Lab]] (Lab 6) -- be sure to include links to your code, detailed results, and your reflection on the lab. == Week x8 == === Week x8 - Class I === * Review* Plans for Remainder of Term === Week x8 - Class II === * [[Inline Assembly Language]]* [[SPO600 Inline Assembler Lab|Inline Assembler Lab]] (Lab 7) === Week x8 Deliverables === * Blog about your Lab 7 results  == Week x9 == === Week x9 - Class I === * Benchmarking and Profiling** Notes to follow === Week x9 - Class II === * [[Fall 2017 SPO600 Project]] === Week 2 x9 Deliverables ===
* Blog Start blogging about your conclusion to the [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]]* Blog the results and conclusion from the [[SPO600 Code Building Lab|Code Building Lab (Lab 2)]]project!
<!--###################################################################################
=== Week 2 - Class II ===

Navigation menu