DARPA needs next-gen compilers

The agency is looking to fund development of compilers that can dynamically optimize programs for the specific environments in which they will run.

The Defense Advanced Research Projects Agency is looking for smarter compilers ? specifically, the agency is looking to fund development of compilers that can dynamically optimize programs for the specific environments in which they will run, according to a broad area announcement just released by the agency.

"The goal of DARPA's envisioned Architecture-Aware Compiler Environment [AACE] Program is to develop computationally efficient compilers that incorporate learning and reasoning methods to drive compiler optimizations for a broad spectrum of computing system configurations," BAA 08-30 states.

Today's compilers were written under the assumption that the programs they create will run on single-processor systems, the document states. Yet the Defense Department is running programs across an ever-widening array of systems, from small embedded computers to clustered systems with thousands of processors. Tuning a program to run under unusual environments tends to be a lengthy and manual process. DARPA would like to automate much of the work associated with this task.

"An architecture[-]aware compiler should ... be able to significantly reduce the number of feedback loops required to achieve major performance improvements," the BAA states.

What DARPA is seeking is a new generation of compilers that can incorporate performance-tuning modules. When compiling application code, such compilers would consult static files (generated by a characterization program) that describe the environment in which that program will run. This compiler-of-the-future will then optimize its program for that specific environment, using not only this static characterization data but also dynamic data taken directly from the system itself.

"The runtime system will collect performance data in a knowledge database that can be reused by other applications that are executed on the system," the BAA states. DARPA also suggests that the compiler will need reasoning mechanisms in order to know what to do with this static and dynamic performance data.

The BAA only mentioned the C and Fortran programming languages as possible candidates for which compilers could be written. It does, however, encourage work in those languages that support techniques for parallelization of programs, such as the Message Passing Interface and OpenMP interface, and any languages using the Partitioned Global Address Space, such as Parallel C.

DARPA's Information Processing Techniques Office issued the BAA. Companies and research institutions have until June 2 to submit their initial proposals for consideration of funding.

The BAA did not disclose the amount DARPA plans to spend on this effort, stating that the amount will depend on the quality of the proposals received. The BAA does present a road map to fund this work at least through 2011.

Joab Jackson writes for Government Computer News, 1105 Government Information Group publication.