Software Tools

In my research , I have been co-involved with developing following pieces of software. If you need any further details, let me know.
User comfort Client

Download from

This software for Windows was written to understand people's behavior to background resource borrowing. It features a sophisticated resource borrower, which can create precise amount of contention on the CPU, Disk and Memory. Using this, we borrow these resources using discrete time series by which we can carefully control resource borrowing. It allows user feedback to express any discomfort. 

It demonstrates: 1. Low level controlled resource borrowing 2. Low level Windows Monitoring like various Performance Counters, User Process Usage History 3. A Seti@Home like sophisticated distributed client/server system in which various clients download testcases from the server and return user input results back to the server.

Please see the User Comfort Project for more details



VNET (Layer 2 Virtual Overlay Tool with Traffic Monitoring and Inference)

VNET is a Layer 2 Virtual Overlay Network tool which can provide network transparency and a Virtual LAN illusion over the wide area thus dealing with some issues while migrating or hosting VMs on remote sites.

I am specifically involved with traffic monitoring and inference aspects where we construct a traffic matrix for the global VM communication and infer other traffic characteristics like the application topology and bandwidth demanded by the application.

Download from

It demonstrates: 1) Low level Packet capture and analysis 2) Wide area information aggregation from multiple VNET daemons to a central LAN proxy 3) topology characterization from traffic analysis 4) Applying low pass filtering techniques to sudden changes in traffic to get a stable view of the application.

Patterns - A synthetic Parallel Benchmarking Tool 

This PVM benchmark was written to emulate various popular topologies common in parallel computing like tree-reduction, n-d mesh, n-d toroid, hypercubes, all-to-all etc. It is a BSP style application, which does computation/communication phases where the characteristics of each phase can be described on the command line. 

Computation phase can be described as number of memory read/writes and add/multiply operations per iteration and Communication phase can be described as the size of message to send to its peers per iteration.

It demonstrates: 1. Algorithms to generate deadlock free communication schedules for all supported topologies 2. A BSP style parallel application with computation/communication phases.


P2P Epidemic protocols Simulator

The goal of this project is to make the various characteristics of a P2P system readily available to P2P applications by building an efficient P2P Monitoring Service using Gossip communications, helping them to exploit the P2P system in an intelligent way.

Done as a part of the Advanced Operating Systems course