Changes

Jump to: navigation, search

Winter 2015 SPO600 Weekly Schedule

2,856 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 ==
|-
|9||Mar 16||[[#Tuesday (Mar 17)|Upstreaming]]||[[#Thursday (Mar 19)|More on AssemblerSpinlocks and Tail Call Optimization]]||[[#Week 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 10 Deliverables|Blog about your project progress - this will be used to assign your 2nd Project Marks.]]
|-
|11||Mar 30||[[#Tuesday (Mar 31)|Hack Session]] (Professor no will not be present)||[[#Thursday (Apr 2)|SIMD]]||[[#Week 11 Deliverables|Blog about SIMD/vectorization and your project.]]
|-
|12||Apr 6||[[#Tuesday (Apr 7)|VectorizationDiscussion & Hack Session]]||[[#Thursday (Apr 9)|Discussion & Hack SessionVectorization]]||[[#Week 12 Deliverables|Blog about your work.]]
|-
|Labs||align="right"|10%||See deliverables column above.
|-
|Project work||align="right"|60%||March 16 (15%), March 30 31 (20%), April 22 (25%)
|}
* 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 project
** 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)
** 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 project: April 22.
<!--

Navigation menu