NSF/Intel Partnership on Computer Assisted Programming for Heterogeneous Architectures (CAPA)

Funding Agency:
National Science Foundation

An emerging trend in hardware platforms is that of architectural heterogeneity. While modern central processing units (CPUs) provide a flexible set of hardware resources and rich instruction sets for implementing a broad spectrum of compute tasks, specialized workloads have motivated the introduction of alternative hardware architectures to accelerate operations using specialized circuit design and additional parallelism. Some examples of such hardware include graphical processing units (GPUs), digital signal processors (DSPs), programmable accelerators, and customizable field programmable gate arrays (FPGAs). Meanwhile, CPU designs have grown in diversity also, with considerable variation in number of cores, memory hierarchy, core organization, inter-core communication, and vector instruction sets. The trend toward data centers as a new computing platform adds even more complexity. Target architectures now can include thousands of geographically distributed computing elements, varying communication speeds, complex storage hierarchies, and a diverse set of underlying hardware platforms.

Software development is now transitioning from a specialized practice by a small number of experts to an everyday skill for a broad spectrum of non-specialists. But at the same time, the increasing complexity and diversity of programming models and hardware platforms requires specialized knowledge to develop and maintain efficient software solutions.  The result is a widening gap between programmers with general skills and specialized knowledge required to effectively utilize today’s heterogeneous hardware platforms. Many platform types fail to be utilized to their full potential, and the performance and energy efficiency gains needed to solve the next frontier of computing challenges fail to be realized. To efficiently utilize the computing power of future computer architectures without specialized expertise will require a transformational leap in software development methodologies.

The NSF/Intel Partnership on Computer Assisted Programming for Heterogeneous Architectures (CAPA) aims to address the problem of effective software development for diverse hardware architectures through groundbreaking university research that will lead to a significant, measurable leap in software development productivity by partially or fully automating software development tasks that are currently performed by humans. The main research objectives for CAPA include programmer effectiveness, performance portability, and performance predictability. In order to address these objectives, CAPA seeks research proposals that explore (1) programming abstractions and/or methodologies that separate performance-related aspects of program design from how they are implemented; (2) program synthesis and machine learning approaches for automatic software construction that are demonstrably correct; (3) advanced hardware-based cost models and abstractions to support multi-target code generation and performance predictability for specified heterogeneous hardware architectures; and (4) integration of research results into principled software development practices.

Submission Window Date(s) (due by 5 p.m. submitter's local time): December 08, 2016 - December 15, 2016

Agency Website

Eligibility Requirements

An individual may participate as PI, co-PI, or senior personnel in no more than one proposal submitted in response to this solicitation. In the event that an individual exceeds this limit, the first proposal received within the limits will be accepted based on the earliest date and time of proposal submission (i.e., the first proposal received will be accepted and the remainder will be returned without review). No exceptions will be made.



Amount Description

Estimated Number of Awards: 2 to 3

Subject to the availability of funds and quality of proposals received.

Anticipated Funding Amount: $6,000,000

The awards are expected to have a total budget of $2-3 million per award for a duration of 3 years, subject to the availability of funds and quality of proposals received.

Funding Type





Engineering and Physical Sciences

External Deadline

December 15, 2016