Winter 2015 SPO600 Platform Specific Code Presentation

From CDOT Wiki
Jump to: navigation, search


Assignment

  1. Select one of the topics below by placing your name in the "Student" column (first come, first served - one student per topic).
  2. During week 5, research the topic and prepare a 3- to 5-minute presentation to teach the class.
  3. 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.

Deadlines

  • Topic selection: 9:50 am, Tuesday, February 10 (End of the scheduled Tuesday class in Week 5)
  • Presentation ready: 8:00 am, Tuesday, February 17 (You must be prepared to present before the scheduled Tuesday class in Week 6)

FAQ

  • Q: How much detail should the presentation include?
    • A: Each of these topics is pretty small and straightforward. 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:
      1. 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.
      2. 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.
      3. 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?
    • A: In week 6, I will ask you to write a short blog post summarizing your presentation.
  • Q: What about the topics not selected by a student?
    • A: I'll teach the unclaimed topics, if there are any.
  • Q: Can we work with others preparing our topic?
    • A: Yes. In many cases, one topic is complimentary to another topic, and it would be great if you coordinated on your presentations.
  • Q: What resources should I use?
  • Q: Are there any classes scheduled during Week 5?
    • A: No. Your professor will be at Linaro Connect. However, the classroom is reserved for our use, and you're welcome to use it to discuss your presentation ideas with classmates.

Topics

Category Topic Presenter Name Links to resources (Wiki page, handout, web resources) Link to 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