Archive for the ‘Software’ Category

Accelerated Computing Using Graphics Cards

Posted on the December 30th, 2009 under Internships,Software by

In the Fall of 2009, I worked at Advanced Micro Devices (AMD)’s Boston Design Center in Boxborough under the supervision of Dr. Norman Rubin.  My first task was to learn the state-of-the-art parallel processing techniques on graphics cards, using CUDA and OpenCL.  Then, I designed, implemented, evaluated and optimized a Marquardt-Levenberg non-linear optimization package that runs on graphics cards using OpenCL.

I also worked on graphics hardware-accelerated solutions to problems related to Map-Reduce.  These implementations worked 110 to 205 times faster on a Radeon 5870  than on the fastest CPU money could buy at the time (the Intel Core i7-920).

During my time at AMD, I learned a lot about the current state and the future of accelerated computing, and generated a few interesting ideas.  I also helped evaluate and debug AMD’s OpenCL stack and an OpenCL profiler.

I attach the version of my slides approved for external viewing below.

View Fullscreen

Software Business class at Sloan

Posted on the December 9th, 2007 under Business,Classwork,Sloan,Software by

This was yet another great class I took at Sloan with the wonderful and famous professor Michael Cusumano.  We had a ton of great invited speakers, and I have learned a lot about the software business. For the mid-term presentation, I collaborated with a team of (mostly) software managers and talked about the psychological aspects of software development and managing international teams. For the final presentation, I got together with a bunch of very bright classmates and we wrote a paper analyzing the mobile software market — well, this was just before Apple’s iPhone and Google’s Android have started turning things around. Our report was the only one in the class that earned an A 😎

Global Software Engineering Methods and Delivery

The Future of Mobile Software

Guavus, the start-up

Posted on the May 10th, 2002 under Business,Software,Startups by

In 2002 or 2003, my friend, Anukool Lakhina, was heading off to an internship at Sprint Labs for the summer for the first time. “I don’t know what I’ll do,” he said, “but I’m sure it will be a stimulating place, full of ideas and data.” We discussed possible problems to consider, and our minds wandered. I mentioned my earlier work on face detection using eigenfaces that I’ve done a few years earlier.  I suggested that the technique if Principal Component Analysis (PCA), that  was used on a database of images of people’s faces to distill the most statistically significant facial features, could be applied to network flows in a similar fashion.  Just like you can represent any person’s face by a linear combination of such basis facial features, maybe it was possible to figure out what constitutes the basic network flow patterns.

Turns out it was a good idea, after all.  Working with Cristophe Diot, Mark Crovella and other talented researchers, over the next few years Anukool did a ton of work and took it to new and exciting places.  Turns out that the PCA technique can be used to define patterns of “normal” traffic activity, to define the variability bounds for what “normal” traffic should look like, and, most important, to detect anything that falls outside the bounds of “normal” as a “network anomaly.”  Examples of such anomalies include DDoS attacks, traffic spikes, network disconnections and many others.  Moreover, once an anomaly was detected, distributions of features such as IP addresses and ports to which the packets in an anomaly were destined, allow one to classify the type of the anomaly.  The applications are immediately obvious:  ISPs could use this to monitor the state of their internal networks, in real-time, and to quickly react to them.

After graduation, Anukool approached me with the noble intention of turning his thesis into a product, and I agreed to help him in this endeavor.   He founded Guavus, the network traffic analysis startup.  As Dr. Nuke explained it, the name “Guavus” comes from the guava fruit.  Guava is exceptionally rich in vitamin A and beta-carotene, which are great for your vision.  It is also obscenely rich in vitamin C, which is great for immunity.  Therefore, Guavus offered both clarity of vision and quick reaction to threats within your networks.  See?

During 2005-2006, I devoted intermittent but sustained effort to being a “VP of Engineering,” designing the initial architecture of the NetReflex platform, including requirements, technical specification, and some UI mockups.  The platform had a fast multi-threaded C++ packet processing and analysis “core,” that interfaced with a Java application server and talked to a fat-client front-end written in Adobe Flex.  The core would receive NetFlow report feeds from an ISP’s routers and visualize the status of the network in the users’  web browsers in graphically exciting and interactive ways. I implemented chunks of the scalable packet processing and storage engine, and the interface to multiple database backends.

I also helped with the more logistical aspects, such as interviewing dozens of prospective hires.  I managed the initial team in the push towards a project alpha over Skype, and even traveled to India to make progress on site.  When Anukool got a capable technical manager to direct the team on site in India, I realized the startup was finally sea-worthy, and detached myself from the project.

I am happy to see that, today, the start-up is flourishing and has expanded its scope.  It has also become a platform for the application of research by wide-area networking researchers like Nick Feamster, and I am sure by now it is an invaluable tool for ISP operators, big and small.

Wide-Area Network Visualization

Posted on the December 13th, 2001 under Software by

RonViz was a tool that I developed to show off Dave Andersen’s Resilient Overlay Networks (RONs) at an NSF grant conference. I used Perl/Tk to develop a portable version of the Network Operations Control, showing the map of the whole world, the RON server nodes at the coordinates where they were installed, and the real-time interactive forwarding graphs of all the nodes in the RON.  The user could, for example, click on any two nodes to see the visualization of the network paths and conditions between them. This visualization software ran a server that accepted live routing table update feeds from RON nodes, in order to display real-time measurements of path quality in the wide-area Internet.  I should add that the whole effort took about 5-6 days, which explains the hack-y code; and that Dave also hacked on this a bit after I was done with it.

Source code (Perl)

Image and Video Processing

Posted on the December 8th, 1998 under Classwork,Software by

In this excellent class taught by Prof. Stan Sclaroff, we learned about the algorithms for recognition and classification of objects and patterns in images and videos, as well as advanced manipulation of images and videos.

Click on the images below to access the extensive writeups as well as  source code for each of the assignments.

Optical character recognition

Face detection using eigenfaces

Active contours using snakes

Image mosaics