CSSE3001/7000 Projects 2007
The general idea
For more detail including times for later events, watch this space. You can find a mark scheme here.
Check the results for your talk and confirm that your project title is correct here.
Electronic hand-in now set up: due date 28 May, 11pm
(links here for CSSE3001 and CSSE7000)
Please submit in PDF.
The projects
| #01 | Cell Processor (up to 2 students on different problems) |
| step 1 | Choose an example from IBMs web site in consultation with the course coordinator |
| step2 | understand the example: explain how it works, how it differs from an ordinary implementation and what it does |
| step 3 | extend the example to make it more general |
| step 4 | analyze your extension: will it achieve similar performance to the original? This will be a paper exercise since getting the simulator to work takes a relatively large effort, but must be convincing |
| #02 | Multiprocessor application efficiency (up to 2 students on different problems) |
| step 1 | Choose an example in consultation with the course coordinator |
| step2 | Analyze the example for memory usage, and potential efficiency improvements |
| step 3 | Implement one or more improvements, and measure the difference |
| step 4 | Understand how your improvements generalize |
| #03 | Multiprocessor synchronization efficiency (up to 2 students with different approaches) |
| step 1 | Understand why simple spin lock has poor efficiency in a shared-memory multiprocessor |
| step 2 | Find an alternative strategy for implementing a spin lock, such as a ticket lock |
| step 3 | Analyze the alternative vs. a spin lock, and explain why it should perform better |
| step 4 | Implement a testbed for demonstrating cases where your approach is or is not better |
| #04 | Pipeline optimizations (up to 4 students on different problems) |
| step 1 | Choose an algorithm in which computations may happen in different orders |
| step 2 | Analyze the algorithm for potential bottlenecks in pipeline usage |
| step 3 | Implement as many performance optimizations as apply |
| step 4 | Analyze these optimizations and explain whether they are general |
| #05 | Memory-Hierarchy optimization (up to 4 students on different problems) |
| step 1 | Choose an algorithm in which computations may happen in different orders |
| step 2 | Analyze the algorithm for inefficiencies in memory access, taking into account any levels of hierarchy that apply |
| step 3 | Implement as many performance optimizations as apply |
| step 4 | Analyze these optimizations and explain whether they are general |
| #06 | Memory-Hierarchy Testbed (up to 2 students with variations) |
| step 1 | Understand how different levels of the memory hierarchy impact on performance |
| step 2 | Implement a program which can determine how many levels of cache there are by timing |
| step 3 | Devise strategies to determine characteristics of each layer |
| step 4 | Report on characteristics you were able to determine |
| #07 | Hardware support for operating sysems (up to 4 students with different approaches) |
| step 1 | Understand how hardware supports a given area of the OS (examples include VM, security, protection, IO, ) |
| step 2 | Understand in detail how one particular CPU architecture supports the OS area youve chosen |
| step 3 | Comment on the general significance of your findings |
| #08 | Accuracy of floating-point arithmetic (up 2 students with variations) |
| step 1 | Understand why floating point is hard to implement and the range of error conditions |
| step 2 | Find a strategy for exercising a wide range of possible floating-point errors or inaccuracies |
| step 3 | Analyze a real example for susceptibility to these problems |
| step 4 | Implement a range of examples illustrating the problems and comparing results on 2 platforms |
| #09 | General-Purpose GPU (up to 2 students with variations) |
| step 1 | Understand how a graphics processor may be applicable for non-graphics problems |
| step 2 | Analyze an existing GPGPU program or algorithm |
| step 3 | Examine trade-offs: ease of programming, performance,accuracy of arithmetic and others you determine |
| step 4 | Report on the value of GPGPU as a low-cost computation platform |
| #10 | Issues in extending instruction sets (up to 4 students with different approaches) |
| step 1 | Understand pluses and minuses of adding specialist instructions (multimedia extensions etc.) |
| step 2 | Choose one specialist instruction set and examine it in detail |
| step 3 | Analyze one application (your own or published) for performance gains from the specialist instructions |
| step 4 | Report on the generality of your findings |
| #11 | Instruction set comparison (up to 4 students with different combinations) |
| step 1 | Choose 2 instruction sets in consultation with the course coordinator |
| step 2 | Compare the instruction sets by examing simple assembly language in both generated by a compiler |
| step 3 | Analyze the singificance in the variation and examine the effects of compiler optimization |
| step 4 | Comment on the generality of your findings |
| #12 | IO and performance (up to 4 students with different combinations) |
| step 1 | Understand why IO is a critical factor in overall performance |
| step 2 | Choose a specific device in consultation with the course coordinator |
| step 3 | Write a program to determine as many device characteristics as you can by timing different operations |
| step 4 | Comment on the significance of your findings |
| #13 | Processor comparison (up to 4 students with different combinations) |
| step 1 | Find as much information as you can about the microarchitecture of 2 processors (different ISA, similar generation) |
| step 2 | Compare the two with each other |
| step 3 | Make predictions of likely differences, and find evidence to support your predictions |
| step 4 | Comment on the significance of your findings |
| choice 1 |
|
|
| choice 2 |
|
|
| choice 4 |
|
|
Make your choice by Thursday 4pm, 8 March.
