The University of Queensland Homepage
School of ITEE ITEE Main Website

 CSSE3001/7000 Projects 2007

CSSE3001/7000 Projects 2007

The general idea

You need to work through a series of steps leading to a good understanding of an area of the course, and a solution to a specific problem. You will demonstrate the steps you’ve taken and give a talk about the final results. You will also write a short report.

CSSE7000 students will be required to include a 1-page literature review in their report.

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 IBM’s 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 you’ve 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

To choose a topic, you will have to email csse3001@itee.uq.edu.au (subject: project choice) with 3 topics in order of preference (from most to least preferred), with some hint on the variant you want, e.g.,

choice 1 #10  Issues in extending instruction sets: Altivec
choice 2 #3 Multiprocessor synchronization efficiency: need help with deciding choosing alternatives
choice 4 #13 Processor comparison: PowerPC G5 versus G4

Make your choice by Thursday 4pm, 8 March.

If you give less than 3 preferences you stand a higher chance of being given a topic you don’t like. Tie breaks will be handled in the first instance by trying to split the topic (numbers in the list of topics are an indication of the extent to which this is possible.

Some topics are more challenging than others and for this reason, the quantity of work required will vary according to the amount of preliminary understanding required.