Over the course of seven years starting August 2000, I have worked on quite a few projects including the ones required by the courses I took. This page summarizes the projects that I did learn quite a bit from or was able to contribute something to the computing community.

Multi Cell Simulator

Regardless of the degree of coupling, the presence of accelerators requires support for new programming abstractions and run-time environments that can efficiently harvest platform resources comprised of general purpose and specialized processing cores, their diverse memory units and memory management support, and communication links that connect them. We have developed an execution model and infrastructure for modeling multi-accelerator architectures -- specifically architectures comprised of a large number of Cell Broadband engine processors. Multi Cell Simulator or MCS is an execution-driven simulation infrastructure for modeling systems comprised of multiple IBM Cell broadband engine processors. The infrastructure utilizes IBM's Mambo simulator and contributes (1) a pooled accelerator execution model for orchestrating computations on and data movements across multiple accelerators providing a uniform view of a single platform to the programmer as required, (2) an API for implementing the pooled accelerator model and (3) a distributed simulation environment for modeling multiple, communicating Cell BE processors. MCS partially offsets the enormous computational demands of simulating multi-cell systems by employing distributed simulation. In the current version of MCS the inter-cell network simulation is purely functional in nature. The simulation infrastructure is intended to be easily accessible to researchers working in clusters of Cell processors and be conducive to ``what-if'' analysis. This infrastructure is an easily configurable simulation tool useful for exploring a wide range of issues of interest in multi-cell architectures including, development of parallel multi-cell applications, communication optimizations, compiler optimizations, interconnection network topologies, and allocation/management algorithms.

Project Documentation

Systems - Embedded, Operating and Distributed!

These are some projects done as a requirement for the Systems courses I have taken.

Other Projects

Here are some more projects mostly from undergrad: