Open main menu

CDOT Wiki β

Changes

Winter 2015 SPO600 Weekly Schedule

4,275 bytes added, 12:21, 29 August 2015
no edit summary
[[Category:Winter 2015 SPO600]]
{{Admon/importantobsolete|It's Alive!|This [[Current SPO600Weekly Schedule]] 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 Fall 2014 version of the weekly schedule, see [[Fall 2014 SPO600 Weekly Schedule]].
== Schedule Summary Table ==
|-
|3||Jan 26||[[#Tuesday (Jan 27)|Profiling: Finding the pain points (Lab 3)]]||[[#Thursday (Jan 29)|Computer architecture overview]]||[[#Week 3 Deliverables|Blog about the profiling results and pain points discovered (Lab 3)]]
|-
|-
|7||Feb 23||[[#Tuesday (Feb 24)|Assembly lab (Lab 5)]]||[[#Thursday (Mar 19Feb 26)|Inline assembly lab (Lab 6) and Course Project SelectionProjects]]||[[#Week 9 7 Deliverables|Blog about the Assembly Lab (Lab 5) and Inline Assembly Lab (Lab 6) and start project investigation.]]
|-style="background: #f0f0ff"
|-
|8||Mar 9||[[#Tuesday (Mar 10)|Project discussion, and Reading Reference Documentation.]]||[[#Thursday (Mar 12)|Project presentations - Stage 1]]||[[#Week 7 8 Deliverables|Blog about your project progress - this will be used to assign your 1st Project marks.]]
|-
|9||Mar 16||[[#Tuesday (Mar 17)|Upstreaming]]||[[#Thursday (Mar 19)|More on AssemblerSpinlocks and Tail Call Optimization]]||[[#Week 8 9 Deliverables|Blog about your project work.]]
|-
|10||Mar 23||[[#Tuesday (Mar 24)|More on AssemblerPortable Portable alternatives to Assembler]]||[[#Thursday (Mar 26)|Project Presentations - Stage 2]]||[[#Week 9 10 Deliverables|Blog about your project progress - this will be used to assign your 2nd Project Marks.]]
|-
|11||Mar 30||[[#Tuesday (Mar 31)|SIMDHack Session]](Professor will not be present)||[[#Thursday (Apr 2)|VectorizationSIMD]]||[[#Week 10 11 Deliverables|Blog about SIMD/vectorization and your project.]]
|-
|12||Apr 6||[[#Tuesday (Apr 7)|Discussion & Hack Session]]||[[#Thursday (Apr 9)|Discussion & Hack SessionVectorization]]||[[#Week 11 12 Deliverables|Blog about your work.]]
|-
|13||Apr 13||[[#Tuesday (Apr 14)|Project Presentations - Stage 3]]||[[#Thursday (Apr 16)|Wrap-up Session]]||[[#Week 12 13 Deliverables|Blog about your project progress - this will be used to assign your 3rd project marks.]]
|-
|Labs||align="right"|10%||See deliverables column above.
|-
|Project work||align="right"|60%||Feb 27 March 16 (15%), March 27 31 (20%), April 22 (25%)
|}
== Week 6 ==
=== Tuesday (Feb 17) ===
 
* Introduction to the [http://www.96boards.org/products/hikey/ HiKey] board and the [http://www.96boards.org/ 96Boards] project.
* Introduction to the SBR600 Course Project.
* [[Winter 2015 SPO600 Platform Specific Code Presentation|Presentations on platform-specific code]]
=== Thursday (Feb 19) ===
 
* SBR600 Course Project Selection
* [[Winter 2015 SPO600 Platform Specific Code Presentation|Presentations on platform-specific code]]
=== Week 6 Deliverables ===
* Blog about your presentation.
 
== Week 7 ==
=== Tuesday (Feb 24) ===
* [[SPO600 Assembler Lab|Assembly language lab (Lab 5)]]
 
=== Thursday (Feb 26) ===
* Remaining [[Winter 2015 SPO600 Platform Specific Code Presentation|Presentations on platform-specific code]]
* [[Inline Assembly Language]]
* [[Winter 2015 SPO600 Project|Course Projects]]
 
=== Week 7 Deliverables ===
* Blog your conclusion to the [[SPO600 Assembler Lab|assembly language lab (Lab 5)]] - See the ''Deliverables'' section in the lab instructions for details on what to include in your blog post.
 
== Week 8 ==
 
=== Tuesday (Mar 10) ===
* Project discussion
** Discussion of project ideas and fine-tuning of project plans
** Next steps
** Addressing Problem Areas
* Accessing and Reading Reference Documentation
** AArch64 ISA
 
=== Thursday (Mar 12) ===
* Project presentations
** Provide a very short (2 minute) overview of your project. Include:
*** Which piece of software you are working on
*** What area of that software needs optimization/performance tuning
*** How you are going to perform the optimization/tuning (algorithm replacement, platform-specific code, removing platform-specific code, build options, and so forth)
*** Plans for the next step
*** Engagement with the upstream community
* Use this project presentation to tell the class what you're working on and incorporate feedback into your blog post
 
=== Week 8 Deliverables ===
* Blog about your project and plans, incorporating feedback from your presentation
* Add your project to the [[Winter 2015 SPO600 Participants|Participants and Project Table]].
 
== Week 9 ==
 
=== Tuesday (Mar 17) ===
* Upstreaming
** Git Discussion
** Creating a Patch
** Various open source community workflows
 
=== Thursday (Mar 19) ===
* Spinlocks
** The need for Atomics in Spinlocks
** Using Intrinsics for Atomic Operations
* Tail Call Optimization (TCO)
** gcc will perform TCO at -O2 and higher
** Important to ensure that gcc recognizes code patterns that permit TCO to be applied
 
=== Week 9 Deliverables ===
* Blog at least once (and ideally more than once) about your Project
** Frequent shorter posts are better than rare long ones
** Aim to make steady progress on your project, a bit each day
** Blog about your evolving project plan and the steps you're making along the way
** Keep the work short, and focus on narrowing the scope of work as early as possible
** Keep talking to the community
== Week 10 == === Tuesday (Mar 24) ===* Discussion of GCC Intrinsics** Where to find documentation: [https://gcc.gnu.org/onlinedocs/ GCC Manual]** __atomic vs __sync intrinsic families* Examination of Build Files** Differential analysis of successful and unsuccessfull build === Thursday (Mar 26) ===* Project Presentations - Stage 2** At this point, you should have a proposed patch that you're working to get upstream === Week 10 Deliverables ===* Blog posts about your presentationproject** Include information about your patch(es)** Include links to discussion about the patch(es) with the community (e.g., link to bug/issue tracker entries or email archives)** If you don't have patches and/or have not pushed them upstream yet, describe the state of your project and your plan to get changes upstream.* Blogs will be marked Monday for Stage 2 project work (20%) == Week 11 == === Tuesday (Mar 31) ===Your professor will be away. You are welcome to use the classroom for a project hacking time and collaboration with your colleagues=== Thursday (Apr 2) ===* Single Instruction / Multiple Data (SIMD)* Select * Brief look at x86_64 & AArch64 implementations of SIMD === Week 11 Deliverables ===* Blog about your ongoing project work. Please post at least 1-2 entries per week. == Week 12 == === Tuesday (Apr 7) ===* Discussion & Hacking Session === Thursday (Apr 9) ===* Vectorization** Using Intrinsics** Using Auto-Vectorization === Week 12 Deliverables ===* Blog about your ongoing project work. Please post at least 1-2 entries per week.* You should have patches (code, makefiles, documentation, or tests) in the upstream review process at or before this point.* Blog about vectorization - specifically:** What -O level and/or options are needed to turn on the auto-vectorizer in GCC** At least three limitations -- conditions under which the vectorization will not be performed** The significance of alignment and non-overlapping pointers for vectorization == Week 13 == === Tuesday (Apr 14) ===* Informal Project Presentations - Phase 3 === Thursday (Apr 16) ===* Wrap-up Session === Week 13 Deliverables ===* Blog about your ongoing project work. Your patches should be through the upstream review process.* Final date for posting about your course project: April 22.
<!--