GGrantIndex
← Search

SDCI: HPC: Improvement: Infrastructure for Multi-Node Manycore Computing

$397,622FY2010CSENSF

University Of California-Davis, Davis CA

Investigators

Abstract

One of the major challenges facing manycore computing today is to make parallelism accessible to the mainstream programmer. In today?s era, where nearly every computer contains a manycore processor in the form of the GPU, we have not yet successfully built the primitives and techniques that we require to make manycore processing readily available to the entire computing community. One solution to this challenge is the construction of libraries that encapsulate common programming patterns and idioms. Libraries are self-contained and thus easily added to existing projects; can easily be upgraded; and are well-suited for development and maintenance by academic groups such as ours. High-performance computing is extensively supported by such libraries on the CPU side, but there are few in the manycore world. Our CUDPP (CUDA Data-Parallel Primitives) library is widely used in the GPU computing community, albeit only on single-node (largely non-HPC) systems. We believe the next-generation OpenCL programming environment is the future of manycore programming and thus target our future work toward this standard. Our plan is to extend and support CUDPP for use in the high-performance computing community, which is increasingly adopting manycore processors as core computational engines. We will add single- and many-node primitives to CUDPP and the OpenCL-based CLDPP library, primitives we consider to be vital to the growth of the manycore HPC community. We also plan to define best practices for manycore libraries and to build not just a library but also tools to help others build libraries. The intellectual merit of this proposal lies in the development and improvement of core data structures and algorithms targeted to manycore computing environments in general and HPC computing environments specifically. Other interesting outcomes from this project include multi-node data structures and algorithms and the software engineering of tools to build manycore libraries. Like its predecessor, CUDPP, the library that will result from this work will be open-sourced and widely used in the manycore programming community. The optimization techniques and tools will also find widespread use. We will work with the OpenCL consortium and our industry partners to bring libraries into the OpenCL standard, directly impacting the entire manycore community. The PI will also continue to introduce undergraduates to research through manycore computing, including collaborating with our industrial partners to host Google Summer of Code engineers on this project.

View original record on NSF Award Search →