Arbeitsberichte Des Insɵtuts Für Wirtschaftsinformaɵk
Total Page:16
File Type:pdf, Size:1020Kb
> Arbeitsberichte des InsƟtuts für WirtschaŌsinformaƟk Tagungsband 16. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'11) Arbeitsbericht Nr. 132 Westfälische Wilhelms-Universität Münster Arbeitsberichte des Instituts für Wirtschaftsinformatik Herausgeber: Prof. Dr. J. Becker, Prof. em. Dr. H. L. Grob, Prof. Dr.-Ing. B. Hellingrath, Prof. Dr. S. Klein, Prof. Dr. H. Kuchen, Prof. Dr. U. Müller-Funk, Prof. Dr. G. Vossen Arbeitsbericht Nr. 132 Tagungsband 16. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS’11) 26. bis 28. September 2011, Schloss Raesfeld, Münsterland Herbert Kuchen, Tim A. Majchrzak, Markus Müller-Olm (Hrsg.) ISSN 1438-3985 i Contents Abstract / Zusammenfassung ................................ 1 Vorwort .............................................. 3 Full Papers and Extended Abstracts ........................... 5 Architecture-Aware Cost Modelling for Parallel Performance Portability . 5 Evgenij Belikov, Hans-Wolfgang Loidl, Greg Michaelson und Phil Trinder Dynamic Operator Overloading in a Statically Typed Language . 23 Olivier L. Clerc und Felix O. Friedrich A Functional, Successor List Based Algorithm for Computing Maximum Match- ings in Bipartite Graphs ................................ 35 Nikita Danilenko A Compiler-Supported Unification of Static and Dynamic Loading . 49 Felix Friedrich und Florian Negele Using Bisimulations for Optimality Problems in Model Refinement . 63 Roland Glück Asynchronous Adaptive Optimisation for Generic Data-Parallel Array Program- ming and Beyond .................................... 71 Clemens Grelck Kontrollflussentfaltung unter Ausnutzung von Datenflussinformation . 85 Thomas S. Heinze, Wolfram Amme und Simon Moser Data Refinement for Verified Model-Checking Algorithms in Isabelle/HOL . 97 Peter Lammich Implementation of Well-Typings in Javaλ . 103 Martin Plümicke Implementing Equational Constraints in a Functional Language . 115 Bernd Braßel, Michael Hanus, Björn Peemöller und Fabian Reck Spezifikationsgetriebene Abstraktion für Kellersysteme . 117 Dirk Richter und Roberto Hoffmann Gruppen: Ein Ansatz zur Vereinheitlichung von Namensbindung und Modular- isierung in strikten funktionalen Programmiersprachen . 133 Florian Lorenzen und Judith Rohloff TituRel: Sprache für die Relationale Mathematik . 151 Gunther Schmidt tSig: Towards Semantics for a Functional Synchronous Signal Language . 163 Baltasar Trancón y Widemann und Markus Lepper Ideas for Connecting Inductive Program Synthesis and Bidirectionalization . 169 Janis Voigtländer Automatenbasierte Analysen paralleler Programme . 179 Alexander Wenner A Type Checker Library for Haskell ............................ 181 Martin Zuber Abstracts ............................................. 195 Datenparallele Skelette für GPU-Cluster und Multi-GPU Systeme . 195 ii Steffen Ernsting Megamodels of Programming Technologies . 196 Ralf Lämmel STEEL - Statically Typed Extensible Expression Language . 197 Christian Heinlein Heterogeneous Specifications Using State Machines and Temporal Logic . 198 Gerald Lüttgen Modellgetriebene Entwicklung prozessbasierter Webapplikationen . 199 Ulrich Wolffgang An Evaluation of WCET Analysis using Symbolic Loop Bounds . 200 Jakob Zwirchmayr 1 Abstract / Zusammenfassung Abstract This proceedings volume contains the work presented at the 16th Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS’11) at Schloss Raesfeld, Münsterland, Germany from September 26th to 28th, 2011. Zusammenfassung Dieser Arbeitsbericht fasst die Beiträge des 16. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS’11) zusammen, das vom 26. bis 28. September 2011 auf Schloss Raesfeld im Münsterland in Deutschland stattgefunden hat. 3 Vorwort Dieser Arbeitsbericht fasst die Beiträge des Kolloquiums Programmiersprachen und Grundlagen der Pro- grammierung (KPS’11) zusammen. Das Kolloquium fand dieses Jahr bereits zum 16. Mal statt und setzt eine Reihe von Arbeitstagungen fort, die ursprünglich von den Professoren Friedrich L. Bauer (TU München), Klaus Indermark (RWTH Aachen) und Hans Langmaack (CAU Kiel) ins Leben gerufen wurde. Es bringt Forscher aus dem gesamten deutschsprachigen Raum und vermehrt auch im weiteren Ausland tätige deutschsprachige Forscher zusammen. Die lange Tradition schlägt sich in der Liste der bisherigen Veranstaltungsorte nieder: 1980 Tannenfelde im Aukrug Universität Kiel 1982 Altenahr RWTH Aachen 1985 Passau Universität Passau 1987 Midlum auf Föhr Universität Kiel 1989 Hirschegg Universität Augsburg 1991 Rothenberge bei Steinfurth Universität Münster 1993 Garmisch-Partenkirchen Universität der Bundeswehr München 1995 Alt-Reichenau Universität Passau 1997 Avendorf auf Fehmarn Universität Kiel 1999 Kirchhundem-Heinsberg FernUniversität in Hagen 2001 Rurberg in der Eifel RWTH Aachen 2004 Freiburg-Munzingen Universität Freiburg 2005 Fischbachau LMU München 2007 Timmendorfer Strand Universität Lübeck 2009 Maria Taferl TU Wien Das 16. Kolloquium Programmiersprachen und Grundlagen der Programmierung wurde gemeinsam von der Arbeitsgruppe Softwareentwicklung und Verifikation und dem Lehrstuhl für Praktische Informatik der Westfälischen Wilhelms-Universität Münster organisiert. Tagungsort war Schloss Raesfeld, ein his- torisches Wasserschloss im südwestlichen Münsterland. Wir freuen uns, dass wir 37 Teilnehmer begrüßen durften, darunter Prof. Dr. Dr. h.c. Hans Langmaack, einen der Gründungsväter der Veranstaltung. In 23 thematisch vielfältigen Vorträgen wurde das gesamte Spektrum der Programmiersprachenforschung abgedeckt. Die Länge der Beiträge in diesem Tagungsband richtet sich nach den Wünschen der jeweiligen Autoren. Es finden sich sowohl ausführliche Artikel als auch erweiterte Zusammenfassungen. In einigen wenigen Fällen ist nur ein Abstract angegeben, da die vorgestellte Arbeit bereits vorher veröffentlicht wurde. Wir möchten an dieser Stelle ganz herzlich dem Team der Akademie Schloss Raesfeld und insbeson- dere Frau Anne Nattermann danken. Räumlich und kulinarisch sind auf Schloss Raesfeld keine Wünsche offen geblieben. Ferner gilt den Mitarbeitern des Lehrstuhls für Praktische Informatik Dank. Neben organ- isatorischen Tätigkeiten haben sich Steffen Ernsting, Henning Heitkötter, Claus Alexander Usener und Ul- rich Wolffgang für den Shuttle-Service engagiert. Danken möchten wir auch Frau Giesbert, Peter Lammich und Alexander Wenner von der Arbeitsgruppe Softwareentwicklung und Verifikation für die Unterstützung bei Vorbereitung und Durchführung der Tagung. Münster, November 2011 Herbert Kuchen Tim A. Majchrzak Markus Müller-Olm Architecture-Aware Cost Modelling for Parallel Performance Portability Evgenij Belikov1, Hans-Wolfgang Loidl2, Greg Michaelson2, and Phil Trinder2 1 Institut f¨urInformatik, Humboldt Universit¨atzu Berlin, Germany [email protected] 2 School of Mathematical and Computer Sciences, Heriot-Watt University, UK hwloidl,greg,trinder @macs.hw.ac.uk { } Abstract. In this paper we explore and quantify the impact of hetero- geneity in modern parallel architectures on the performance of parallel programs. We study a range of clusters of multi-core machines, varying in architectural parameters such as processor speed, memory size and in- terconnection speed. In order to achieve high performance portability, we develop several formal, architecture-aware cost models and use charac- teristics of the target architecture to determine suitable granularity and placement of the parallel computations. We demonstrate the effective- ness of such cost-model-driven management of parallelism, by measuring the performance of a parallel sparse matrix multiplication, implemented in C+MPI, on a range of heterogeneous architectures. The results in- dicate that even a simple, static cost model is effective in adapting the execution to the architecture and in significantly improving parallel per- formance: from a speedup of 6.2, without any cost model, to 9.1 with a simple, static cost model. 1 Introduction To fully harness the potential power offered by rapidly evolving and increasingly heterogeneous and hierarchical parallel architectures, parallel programming en- vironments need to bridge the gap between expressiveness and portable perfor- mance. To achieve the latter, the dynamic behaviour of the application needs to adapt to the architectural characteristics of the machine, rather than tying it to one particular configuration. Our long term goal is to automate this process of adaptation by using, on implementation level, architectural cost models and sophisticated run-time environments to coordinate the parallel computations, and, on language level, high-level abstractions such as algorithmic skeletons [7] or evaluation strategies [25]. In this paper, we focus on one concrete applica- tion, study the impact of heterogeneity on its performance, and demonstrate performance improvements due to the use of architectural cost models. Parallel programming has proved to be significantly more difficult than se- quential programming, since in addition to the need to specify the algorithmic solution to a problem the programmer also has to specify how the computa- tion is coordinated, taking into account architectural specifics such as processor 6 Evgenij Belikov, Hans-Wolfgang Loidl, Greg Michaelson und Phil Trinder and interconnection speed. This is difficult, but manageable on homogeneous high-performance architectures. However, novel architectures are increasingly heterogeneous, being composed of different kinds of processors and using hierar-