Exploring optimization techniques and runtime code selection mechanisms for heterogeneous systems (extended)


Exploring optimization techniques and runtime code selection mechanisms for heterogeneous systems

During last months, the members of the cluster met in November (Eindhoven), mid January (Barcelona) and final January (Ghent). Besides exchanging views and research results and topics, the achieved goals include:

- In a collaboration UPC-University of Leiden, we have explored the best
compiler optimizations (flag based gcc options)for the Linux kernel with
different architectural requirements. Current results show that the impact
is negligible both in the code footprint and in the application performance.
- We are working in exploring the possibilities to select the different
versions of a function (vectorial based) in heterogeneous multicore based
on the system configuration, resources and program behaviour. This is an
ongoing work, in collaboration INRIA-UPC. At the moment we have chosen the
experimental platforms -GPU NVIDIA 8800 and Cell BEA- and the benchmarks to
run on.
- We are developing new runtime abstractions to better exploit the execution
elements heterogeneity. This work is doing for the Cell BEA Linux as the
experimental platform.

Although the cluster is not yet finished, we propose continuing the work until the final of the HiPEAC project.

In this current proposal, we want to continue the work in optimization techniques for heterogeneous systems, exploring the impact that compiler optimizations have for different architectural requirements that will appear in the heterogeneous architectures.
We also continue exploring the appropriate resource management techniques for these platforms started in the previous cluster.

Our work plan include:

- Evaluate different policies to work with code versioning at runtime in different platforms: GPUs, Cell BEA and ARM if possible.

- Continue the work to model the evolution in different execution moments that an application has as a function of time, resources, heterogeneous opportunities and attributes in building the binary (ie. compilation options or profiling information)

- Propose possible compiler annotations in code to do partitions depending on heterogeneity and/or function-versioning optimizations.

-Exploring new OS abstractions that can help to better manage code heterogeneity in parallel applications, based in the compiler annotations and the architectural requirements.


Research cluster

Requested: € 38000

Requested: € 15600

Description of how the funding will be used:

Travel:
We plan to have a few meetings (duration 3/4 days)as well as attending HiPEAC meetingss:
- 4 people traveling x 4 meetings/years x 1400 euros/trip = 22400 euros /year

Fellowship:
- One fellowship for a PhD student working on the topic at UPC: 1300 euros/month = 15600 euros /year

Total:
38000 euros/year
We request funding for 12 months or until the end of the project.


Requested: 12 month(s)

BERNSTEIN David (IBM) (--member--)
CORNERO Marco (STMicroelectronics) (--member--)
FURSIN Grigori (INRIA) (--colleague--)
GIL Marisa (UPC) (--member--)
MARTORELL Xavier (UPC) (--member--)
MENDELSON Bilha (IBM) (--member--)
MORANCHO Enric (UPC) (--member--)
NAVARRO Nacho (UPC) (--member--)
TEMAM Olivier (INRIA) (--member--)
ZAKS Ayal (IBM) (--member--)
ROHOU Erven (STMicroelectronics) (--member--)

Zoraida Hidalgo (UPC),Victor Jimenez (UPC), Lluis Vilanova (UPC), Eric Alvarez (UPC)