Towards Persistent and Parallel Asynchronous Adaptive Specialisation for Data-Parallel Array Processing in SAC

Abstract

Data-parallel processing of multi-dimensional arrays is characterised by a fundamental trade-off between software engineering principles on the one hand and runtime performance concerns onthe other hand. Whereas the former demand code to be written in a generic style abstracting from structural properties of arrays as much as possible, the latter require an optimising compiler tohave as much information on the very same structural properties available at compile time. Asynchronous adaptive specialisation of generic code to specific data to be processed at application runtime has proven to be an effective way to reconcile these contrarian demands.In this paper we revisit asynchronous adaptive specialisation, provide a comprehensive analysis of its strengths and weaknesses and propose improvements for its design and implementation.These improvements are primarily concerned with making specialisations available to running applications as quickly as possible. One important measure is making specialisations persistent across multiple invocations of the same or even different applications. Another one is to run multiple specialisation attempts concurrently taking further advantage of today’s multi-core chip architectures.

Publication
The 25th Symposium on Implementation and Application of Functional Languages (IFL 2013)