My research interests are in designing efficient algorithms and software for high performance computing. The primary focus of my work is in sparse matrix computations. I am interested in various related subfields: hybrid preconditioners for iterative linear solvers (ShyLU), direct linear solvers (Amesos2) and orderings for linear solvers (CCOLAMD), partitioning and load balancing (Zoltan) and algorithms for maximum matchings.
I am also interested in designing architecture aware algorithms for emerging multicore architectures for the above problems. Especially, designing algorithms that exploit the shared memory programming at the level of a single compute node and distributed memory programming at the system level. I have developed a hybrid linear solver that uses MPI and threads to efficiently exploit the parallelism available within a multicore node. I have also developed new parallel multithreaded matching algorithms for modern multicore architectures.
In the past, I have worked on direct methods for sparse singular value decompostion, band reduction for band singular value and eigen value decomposition and ordering techniques for sparse Cholesky and LU factorizations.
Even before that, I was part of the application server development team at Sun Microsystems. My contributions were mostly in the load balancing module and servlet container modules. I was also part of the development team for print spoolers in Tandem computers/NonStop servers, a Fault Tolerant system from the 70's. It is part of the HP NonStop computing servers now.