HyperLink   CIGAR: Application Partitioning for a CPU/Coprocessor Architecture
Publication Year:
  John H. Kelm, Isaac Gelado, Mark J. Murphy, Nacho Navarro, Steve S. Lumetta, Wen-mei Hwu
  In The 2007 International Conference on Parallel Architectures and Compilation Techniques (PACT 2007), pp. 317-326, Sep 2007, ISBN 978-0-7695-2944-8

We present CIGAR, a methodology and development platform that facilitates the use of data-parallel coprocessors. With CIGAR, application developers use profiling tools to identify parts of the application for data-parallel execution, determine the application data structures to be hosted by the coprocessor, prototype coprocessor execution of these parts, and debug correctness of partitioned execution of the application using emulation. The CIGAR methodology is complemented by a CPU/FPGA prototyping platform that runs a fully functional version of the Linux operating system and associated development tools and libraries. To guide the development of our work and to evaluate its utility, we have instrumented SPECint2006 applications to utilize coprocessors emulated by softcore processors embedded in our prototyping platform. Examples of how a developer would use CIGAR to partition an application for a heterogeneous CPU/coprocessor environment are demonstrated.