--------------------------------------------------------------------- Please accept our apologies if you have received multiple copies. Please feel free to distribute it to those who might be interested. ---------------------------------------------------------------------
********************************************************************* * * * Call for Participation * * * * TUTORIAL * * on * * SAC AND ITS AUTO-PARALLELISING COMPILER SAC2C * * * * January 9, 2010 * * Bangalore, India * * * * 15th ACM SIGPLAN Annual Symposium on * * Principles and Practice of Parallel Programming * * (PPoPP 2010) * * * * http://events.sac-home.org/ppopp/ * * * ********************************************************************* Background and Content The non-deterministic semantics of concurrent execution of main-stream languages, combined with the difficulties in debugging concurrency-specific bugs like race conditions, render software engineering for concurrent architectures challenging and time consuming. The data-parallel approach towards concurrent programming with its deterministic semantics and simple synchronisation seems to be a good fit to solve these problems. With the availability of commercial frameworks for data-parallel and stream computation like CUDA and Intel's Ct, data-parallel programming seems to be ready for the main-stream. However, given the number of "interesting" architectures available, using a hardware bound implementation language cannot be the solution. In this tutorial we present a completely implicit, architecture neutral approach for programming modern multi- and many-core architectures. It is based on a high-level language featuring a data-parallel programming style. SaC (for Single Assignment C) is a functional array language which combines a C-like syntax with a purely functional semantics. This approach enables successful auto-parallelisation on various architectures including SMPs and GPGPUs. Over the last 15+ years, we have developed the auto-parallelising compiler sac2c. With more than 300,000 lines of code, it implements over 50 high-level program optimisations. The functional basis of SAC enables these optimisations to systematically transform high-level specifications into fine-tuned, target-architecture-specific code. The generated intermediate C-code can be compiled using any C99-compliant compiler. The runtime system of sac2c features, among other aspects, a micro-thread scheduler as well as a tailor-made, multi-threaded memory management for highly efficient concurrent execution. Organisation The tutorial consists of four parts: * an introduction into the concept of data-parallelism, i.e., tackling the question of what can be expressed in a data-parallel fashion and how, * a practical session where examples are being run in an interactive fashion, * an overview of the optimisations applied by sac2c to achieve excellent sequential and parallel runtime performance on various platforms, and * a practical session where several examples and their compilation process are being studied in an interactive fashion. Important dates * Early registration deadline: December 4, 2009 * Late registration deadline: walk in * Tutorial: January 9, 2010 * PPoPP: January 9-14, 2010 Organisers * Sven-Bodo Scholz, University of Hertfordshire, Hatfield, UK * Clemens Grelck, University of Amsterdam, Netherlands * Stephan Herhut, University of Hertfordshire, Hatfield, UK -- Dr Clemens Grelck University of Amsterdam University of Hertfordshire http://www.sac-home.org/~cg _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell