The rise in the capabilities and programmability of the graphics processing units (GPUs) has enabled them to rise above the threshold where they have now become powerful enough to be useful co-processors to the CPUs. The goal of this project is to study, understand, and harness the power of this newly emerging paradigm of a CPU-GPU combine for high-performance computing and scientific applications with visualization-assisted computational steering. The GPU programming model is an approximation of the streaming-model of data computation. The ideal computational problem for such a model is one in which a small program (the kernel) operates upon an input stream of data to generate an output stream. As discussed later, a number of computational operations in a wide variety of disciplines are of this form. The GPUs also permit parallel scatter and gather operations through a shared texture memory. While the GPU architecture is a close approximation of the streaming model it does not model it precisely. Therefore the best algorithms for the GPUs are those in which the problem has been carefully mapped to the architecture. A cluster of CPUs and GPUs offers a rich parallel computing environment - a controlled heterogeneity strengthened with the complementary capabilities of CPUs and GPUs with MIMD and SPMD dataflow paths.
- Faster than CPUs
- Already commercially successful
- Disruptive innovation path
- General Programming model emerging
The research groups that are using this cluster fall into several broad interdisciplinary computing areas. We are exploring visualization of large datasets and algorithms for parallel rendering. In high-performance computing we are developing and analyzing efficient algorithms for querying large scientific datasets as well as modeling complex systems when uncertainty is included in models. We are using the cluster for several applications in computational biology, including computational modeling and visualization of proteins, conformational steering in protein structure prediction, and sequence alignment. We are also using the cluster for applications in real-time computer vision, real-time 3D virtual audio, large-scale modeling of neural networks, and high-energy physics.