Home

I am an experienced full-stack software engineer in high performance computing domain with well-rounded design and development skills required to bring alive a highly distributed application and manage the application life cycle. Enjoy working on cutting-edge products with short release cycles and aggressive timelines.

I have been chosen as an "Ambassador" by "Leaders for Good" for my Human Centric Leadership Practices. I am enthusiastic in building high performance team by pro-actively mentor, coach new as well as existing team members by preaching best practices of Software Development and standards. I enjoy participate in different forums and online communities to share my knowledge and getting other perspective.

I am currently working as a Senior Software Engineer at Electronic Arts Digital Platform Data group. Prior to this I was part of Windows Azure (aka Microsoft Cloud) Core Fabric Controller (distributed kernel) team.

I graduated with Masters of Science at the Department of Computer Science of University of Illinois at Urbana-Champaign. I am working with Prof Bill Gropp on developing performance model for Dendro (a parallel finite element method package) and improve the parallel performance (speedup and scalability) of the elastic solver. We have made Dendro compatible with the latest Petsc from Argonne National Lab and kept it here for Free Download under License.

I consider Research as a Creative Art and publishing it in the form of webpage is like show-case. I love to write programs and enjoy the moment when the machine start understanding what I want to tell him. I enjoy "Taming the Beast". This web-page is for people who wants to know my views and opinion about "Computing", mostly Distributed and Parallel Computing. I am interested in Multicores, not for just the commercial aspect of it, but for the programmability. I am more interested about Hybrid Programming Models like, MPI + OpenMP, MPI + Pthreads, MPI + UPC. As most of the modern laptops and desktops comes with in built N-Vidia graphics card, so, developing a model to exploit the computation power of the Multicore Chip + GPU power, without expecting any change of the user-program, using Smarter Compilers or Smarter OS features would be a nice thing to look at. Cloud Computing becomes a sensation for its wider applicability for commercial applications encourages me to play with it.

Cloud Computing has many cool features of distributed computing as introduced in the form of Grid Computing long back. But, Cloud Computing is closely related to internet applications where people are more concerned with the availability and reliability of the system by providing better fault-tolerance by replicating the data. Although neither fault-tolerance or distributed computing is new, but, the scale of data and the number of users accessing the data and the applications being targeted by Cloud Computing is quite different. Grid Computing was always thought of a point of view of performance achievable by distributed resources, mostly by utilizing the unused clock-cycles of the commodity cluster (machines).

For most of the people in the High Performance Computing (HPC), the state-of-art of Computing is driven by Moore's Law. Parallel Computing (Supercomputing) enables one to solve much larger problem on those massively parallel systems. For me it is the way my code and communicate with couple of its siblings (other processes) to contribute to the Supreme goal of achieving excellence (Speedup). So, it seems to me that, building a massively parallel system is like building a temple or church or mosque, but, writing highly scalable codes to utilise the full-potential of the system is the real worship. Here is the list of the Top 500 Supercomputers

Cloud Computing or Grid Computing?

Why Supercomputing?