Changes

Jump to: navigation, search

Winter 2015 SPO600 Platform Specific Code Presentation

3,178 bytes added, 16:14, 28 February 2015
Topics
{{Chris Tyler Draft}}[[Category:Fall Winter 2015 SPO600]]
== Assignment ==
# Select one of the topics below by placing your name in the "Student" column (first come, first served - one student per topic).
# During week 5, research the topic and prepare a '''3- to 5-minute''' presentation to teach the answer to the class.
# Be prepared to teach this presentation during week 6. You may want to draw whiteboard diagrams, use presentation slides, or have a 1-page handout. Please avoid taking more than 5 minutes in total for your presentation.
* Q: '''How much detail should the presentation include?'''
** A: Each of these topics is pretty small and straightforward. Provide enough detail that your colleagues in this course will know what they need to know going forward -- the focus is practical knowledge necessary to understand, modify, and write code. Where appropriate, provide some type of resource for future reference -- a link to an existing web resource, a 1-page handout, or a blog post or wiki page about the topic. Your presentation should include:**# The Issue: A description of the type of platform-specific code that falls into this category - What it is and why programmers write code in this way. Include a short example of actual code.**# The Problem: When code written in this particular way has problems (e.g., when moved to a platform that has...) and what issues appear (program crashes, wrong results, won't compile, ...). Include bug reports or other evidence of this problem actually surfacing.**# The Solution: How code can be written in a portable way, avoiding platform-specific issues. Include a short example of actual code that solves the problem in a platform-neutral way. Consider advances in the language standards, [[Compiler Intrinsics]], and [[Compiler Optimizations]] as part of your solution.
* Q: '''How will this be marked?'''
* Q: '''What about the topics not selected by a student?'''
** A: Feel free to grab a second topic if you're interested. [[User:Chris Tyler|I'll]] teach the unclaimed topics, if there are any.
* Q: '''Can we work with others preparing our topic?'''
* Q: '''What resources should I use?'''
** A: There are resources on the web as well as on this wiki and on the web (for example, see the [[:Category:Assembly Language|Assembly Language category]] on this wiki).
* Q: '''Are there any classes scheduled during Week 5?'''
{|class="wikimedia sortable" border="1" cellpadding="5" cellspacing="0"
!Category!Topic!!Question/Topic Description!!PresenterName!!Links to resources (Wiki page, handout, web resources)!!Link to your blog post on this topic|-|Access to features not available in some versions of C / C++||Atomic operations|| Thana Annis || || |-|Access to features not available in some versions of C / C++||Memory barriers|| Cha Li|| || |-|Access to features not available in some versions of C / C++||Low-level device access||James Boyer || || |-|Access to features not available in some versions of C / C++||Interrupt handling|| Jan Ona || || |-|Access to features not available in some versions of C / C++||Cryptographic instructions|| Gary Chau || || |-|Access to features not available in some versions of C / C++||Single instruction multiple data (SIMD) instructions||Bradly Hoover || || |-|Access to features not available in some versions of C / C++||Run-time CPU feature identification (cpuid)|| Bruno Pereira|| || |-|Access to features not available in some versions of C / C++||High-resolution counter access|| Danylo Medinski || || |-|Assumptions about the system which can vary between architectures||Default size of variable types|| Artem Luzyanin|| || |-|Assumptions about the system which can vary between architectures||Equivalence between variable types (e.g., int and long)|| Alfred Tsang|| || |-|Assumptions about the system which can vary between architectures||Layout of arrays in memory|| Hosung Hwang|| || |-|Assumptions about the system which can vary between architectures||Alignment requirements|| Nicolas Ramkay|| || |-|Assumptions about the system which can vary between architectures||Endianness (order of data stored in memory)||Yan Song || || |-|Assumptions about the system which can vary between architectures||Direction of stack growth|| Alan Lam || || |-|Assumptions about the system which can vary between architectures||Target triplet|| Justin Grice|| || |-|Assumptions about the system which can vary between architectures||Jiffies per second|| Stephen Ruthland || || |-|Assumptions about the system which can vary between architectures||Page size|| Hong Zhan Huang || Refer to blog post for sources used || https://joulecpa.wordpress.com/2015/02/28/spo600-page-size-presentation/|-|Assumptions about the system which can vary between architectures||Pointer size vs. integer size|| Liam Martin || || |-|Assumptions about the system which can vary between architectures||FPU rounding|| Max LeFevre || || |-|Assumptions about the system which can vary between architectures||Cost of alignment fixups||Dawood Shirzada || || |-|Assumptions about the system which can vary between architectures||Memory controller design || || |||-|Assumptions about the system which can vary between architectures||Syscall numbering || Anson Tang || ||
|-
|TBA||TBA||TBA||TBA||TBA
|}

Navigation menu