Projects

Home > Projects

Projects


Performance enhancements for superscalar processors

Abstract: Superscalar processor design has been the standard for building good performance computers. This project aims at investigating enhancements to a base superscalar architecture to further improve the performance. The project consists of two main phases. A limited resource availability is assumed (32k of RAM to be distirbuted among L1 caches, branch predictors, BTB, enhancements). With this assumption we try to achieve the best possible performace by tweaking cache and branch predictor configuration. In the second phase, the baseline architectiure is extended with performance enhancement features. The total RAM available for the enhancements is again within the 32K.

Paper available as: [PS]


Computing k-bisimilar partitions of split graphs

Abstract: The problem of indexing paths in graph structured data has received considerable attention of late. Techniques have been proposed to use bisimilarity to index data graphs. We focus on computation of an index graph called the A(k)-index, which is a k-bisimilar partition of the graph. Traditional techniques to compute the k-bisimilar partition work on the whole graph. In this paper, we propose an algorithm to compute the k-bisimilar partition when the graph has been split into two or more subgraphs. This technique can be used in the computation of the A(k)-index on data graphs of arbitrarily large sizes.

Paper available as: [PDF]


Kangaroo-multiroute

   This was done as a part of the 736 course. It involved changing the existing implementation of kangaroo to make it support multiple paths to the destination. You can know more about kangaroo here

Abstract: Kangaroo is a wide-area data movement system that provides high-throughput data movement by overlapping CPU and I/O. Though Kangaroo is a persistent data mover, network/disk failures can reduce data availability, because, Kangaroo can't route the data around failures. We demonstrate that by using multiple paths to the destination, we can improve availability without significant overheads. In our architecture, the sender is responsible for message ordering. We also use TCP's flow control mechanism to implicitly route more data along paths that offer higher bandwidth. In future we expect to study the scalability characteristics of our implementation. Also we envision to automatically discover routes to destination and ensure quality of service for clients that require high QOS guarantees.

Paper available as: [PDF]

All source code available here: Gzipped tar file


A 32-bit protected OS

Well, I am into writing a small OS. Yeah, it is too much to call it an OS at this stage. Till now, I have been successful in switching to protected mode and enabling the interrupts. I have also written down code for handling different terminals. But for that it has no functionality. I am hoping to do more on this soon.

Here is the code : os.zip (12.5 KB) or os.tar.gz (8.28 KB)


Fire simulation

Similar to a program in MSDN samples.

Here is the code : fire.zip (2.62 KB) or fire.tar.gz (2.43 KB)


3d Shading in Java

Well I wrote this during my undergraduate days. Somehow I got attracted towards graphics and hence this package. A small set of java programs, which does Gourad shading, Texture mapping on sphere, etc., I know this has a lot of bugs, but atleast it is working. Also the code was hurriedly written that it may not be readble.

Here is the zipped code : java3d.zip (23.6KB)

A screen capture of the Java3d program