Project description for INF5071 / Fall 2009

Project Details

This project will be conducted in pairs (unless a valid reason for working individually is provided). It should consume roughly 30 hours per person for a total of 60 hours per pair. It has five milestones:
  1. Finding a partner
  2. Selecting and submitting a topic (as soon as possible, first come first serve).
  3. Delivery of the project plan by email to (paulbb at ifi.uio.no) by 24. September.
  4. Production and display of a presentation of your results in November (date to be assigned).
  5. The oral exam where the assignment is a minor topic.
If you require help in finding a partner please send an e-mail to (paulbb at ifi.uio.no) and we will coordinate it so everyone has someone to work with. To aid in this process select a few topics or key-words of your interests, and we will try to match people based on these criteria.

The project plan is not meant to be a formal project plan as taught in software engineering. That alone would consume the entire allocated time. Instead, we expect an informal description that includes the following:
  • What do you want to measure?
  • How do you intend to perform the experiments (e.g., parameters to benchmark programs)?
  • Your schedule.
  • How you want to present the results (what will be on the axes of your graphs)?
Writing this requires that you have already downloaded and taken a look at the tools that you intend to use. Please refer to this example of an appropriate project description. We expect the project description to be a separate document.

Selecting and submitting a topic

We have provided a list of topics we find interesting, but if none of these topics are of interest to you or are already taken, we encourage you to come up with your own suggestions. The only mandate is that it be related to efficiency in some manner. Wether you come up with your own project idea or select one from the list below send an e-mail to (paulbb at ifi.uio.no) with the name of yourself and your partner and we will let you know if it is approved/available.
  • 3D streaming capabilities of 3D-engines (such as Ogre or Irrlicht).

Modern 3D-engines such as Ogre (http://www.ogre3d.org/) and Irrlicht (http://irrlicht.sourceforge.net/) support streaming of media content from within the 3D-environment. To this respect it could be of interest to determine what the exact capabilities of these engines are. Is it for example possible to dynamically change the quality of the streaming depending on your viewpoint/distance to the source, and if you are not viewing the mentioned media; turn it off all together. If such functionality exists, how will it impact the traffic generated from the server, how many concurrent streams can the environment support and so forth.

  • Memory access speed difference on NUMA machines (such as our Opteron server).

Non-Uniform Memory Acces/Architecture (NUMA) is a memory design utilized in many multicore/multiprocessor architectures, where the memory access time depends on the memory location relative to a processor. Given such an architecture, how do different loads (i.e., memory access of small and large chunks) with varying characteristics (frequent access, infrequent, etc) affect the run-time of different applications? What schedulers work well with such capabilities, for what applications does it make sense, for which do it not?

  • Efficiency of serialization methods (Java serialization, Boost serialization, ...).

A variety of serialization mechanisms exist for creating a binary representation of data related to an object (given the OO-paradigm) or a struct, i.e., Java Serialization, Boost::Serialization for C++, XDR for C. How well do these different techniques scale given the size of data to serialize, how do they pack the data, i.e., at bit, byte or multiple of bytes level? Which is more efficient at creating a small size, which takes the longest time, which is most widely available, for different architectures etc, and how is the complexity of the given implementations?

  • Effect of packet reordering on TCP download speeds.

Historically, TCP's congestion control assumes that packet loss indicates congestion. Therefore, whenever a sender receives multiple (usually 3) acknowledgement packets with the same sequence number, it will slow down. Sometimes this turns out to be a very bad idea. For example, packets can take different routes though the Internet, such that some are so badly delayed that TCP interprets this as packet loss. This assignment uses network emulation to quantify just how bad this can become. It is recommended to use 3 machines: a sender, a receiver, and a network emulator. Using Linux on the sender and receiver will make it possible to test several variants of TCP simply by changing some values in files located in /proc/sys/net/ipv4.

  • Comparing speeds of OpenCL applications on several processors.

OpenCL is the next generation framework for implementing General Purpose GPU (GPGPU) applications. Given different GPU-architectures, how well does different applications implemented with OpenCL perform? Are there certain applications that run better, why? What factors impact the running time? Is OpenCL capable of optimizing for all applications or does it do a better job with certain applications? How much depends onthe programmer?

  • Performance of Hadoop.

Hadoop is an open-source implementation of MapReduce (original implementation by Google). How well does Hadoop perform given different workloads and how well do different problems map to this way of processing data. How much data is required for processing in Hadoop becomes beneficial? How many nodes are required etc.

For further inspiration, you can also take a look at the topic suggestions form 2008.

Current Pairs and Selected Projects

Lastname Firstname Project
Garcia Fernandez Cristina Effect of packet reordering on TCP download speed
Sanchez de Arriba Maria  
Kristiansen Espen Angell Comparing speeds of OpencCL on several processors
Opstad Bendik R�nning  
Pham Ngoc Yen Thi Comparing speeds of OpenCL applications on several processors
Heamo Helen  
Tjelta John B�rge Host OS resource overhead comparasition
Endal Kjetil Efficiency of serialization methods
Finstad Dag Haavi  
Normann Rolf Erik Gurandsrud Effect of packet reordering on TCP download speed
Oterholt Fredrik  
Bjoraa Stephan Performance of IPv6 in general
Christophersen Nils Georg  
�kre Jan �yvind Performance of ATA over Ethernet
Paukste Laurynas Mantas Virtualization overhead
Gullichsen Steffan S Video adapation using SVC
Ni Pengpeng  
Carlmar Chris Effect of packet dropping on TCP download speed
Kolbu �yvind  
Hagen Mathias Compare linux' alternative disk schedulers
Gyland �ystein High speed bittorrent
Signes Perello Miguel  
Naeem Malik Muhammad Performance of Hadoop
Qureshi Kevan  
Amin Diyar Efficiency of serialization methods
Amini Mo