Benchmarking of Medical Imaging Algorithms
Algorithms in Medical Imaging domain are computationally intensive and require processing of large amount of data. The performance of these algorithms on commodity general purpose single core platforms is often not satisfactory. This project aims at leveraging graphics processors (GPU) and multi-core processors (such as Cell, Intel/AMD processors) for accelerating some important medical imaging algorithms. The project intends to provide a comparative study of performance of the algorithms on these different platforms.
Parallel Algorithms for Large Satisfiability Problems
Satisfiability or SAT is a standard NP-complete problem with applications in design automation and AI. In this project, we are studying alternatives to standard DPLL based algorithms for large-scale parallel implementation of SAT solvers.
Mitigating the Effect of OS Jitter on Parallel Program Performance
The goal of this project is to study OS jitter and its impact on the performance of tightly coupled parallel applications running on large HPC clusters. These applications consist of multiple phases of computation where each computation phase is followed by some sort of synchronization across nodes. The work in this project has so far focused on theoretical modeling of noise, validation of the theoretical model using data from large production HPC clusters and identification of sources of OS jitter on a single node.
BLAS Library Optimization for Cell BE
BLAS is a widely-used API for commonly used linear algebra operations in HPC and other scientific domains. The aim of the project is to provide the standard BLAS functionality at the PPE (Power Processing Element) level of the Cell BE through a PPE API supporting single and double precision (both real and complex) versions of BLAS routines. As part of the project, some of the most commonly used subset of BLAS routines are further optimized on the Cell BE using Synergistic Processing Elements (SPEs). The BLAS library on Cell is provided with Cell SDK.
Optimizations in Financial Engineering
In this project, we identified important opportunities for parallelization of Least-Squares Monte Carlo algorithm, by Longstaff and Schwartz, for pricing of American options. The implementation of the parallelization techniques was done on Blue Gene using the Quantlib open source financial engineering package.
Model Checking of Concurrent Programs
We have investigated the use of lattice theory in efficient model checking of concurrent programs. Our technique reduced the size of counter examples generated by the model checker by greater than 10x in 55% of the cases, and greater than 100x in 19% of the cases compared to the state-of-the-art tool SPIN. (joint work with the University of Texas at Austin)
Parallel Algorithms for Solving Linear Equations with Application in Computational Nanotechnology
The solution of a system of linear equations generated by discretization of PDEs that govern motion of mobile charge carriers is the most time consuming part of a semiconductor device simulation. As we go below the 32nm range, the physical models become more complex in order to address non trivial quantum effects and as a result, the ensuing linear systems become highly ill- conditioned. Currently, direct solvers are the preferred choice to deal with these highly ill-conditioned systems mainly due to their high accuracy. However, in the case of large 3D simulations, the time for solving these systems is becoming prohibitive. The main objective of this project is to speed up the total simulation time on architectures such as Blue Gene, IBM POWER, GPU, etc. for both - direct as well as preconditioned iterative solvers.
Researchers: Anamitra R Choudhury, Thomas George, Yogish Sabharwal