3 research outputs found
Space profiling for parallel functional programs
Abstract: "This paper presents a semantic space profiler for parallel functional programs. Building on previous work in sequential profiling, our tools help programmers to relate runtime resource use back to program source code. Unlike many profiling tools, our profiler is based on a cost semantics. This provides a means to reason about performance without requiring a detailed understanding of the compiler or runtime system. It also provides a specification for language implementers. This is critical in that it enables us to separate cleanly the performance of the application from that of the language implementation. Some aspects of the implementation can have significant effects on performance. Our cost semantics enables programmers to understand the impact of different scheduling policies yet abstracts away from many of the details of their implementations. We show applications where the choice of scheduling policy has asymptotic effects on space use. We explain these use patterns through a demonstration of our tools. We also validate our methodology by observing similar performance in our implementation of a parallel extension of Standard ML.
A Semantic Framework for Scheduling Parallel Programs
Declarative parallel programs offer deterministic results, allowing
the language implementation to schedule parallel tasks in any
order. However, program performance hinges crucially on the way that
these tasks are scheduled. In this work, we use formal language semantics
to express different scheduling policies. These semantics enable us to
compare different policies and to understand their effects on the use of
space. We offer several example programs to demonstrate that scheduling
policy can have a dramatic, and even asymptotic, effect on space usage.
To predict performance, programmers require a means to understand the
effects of scheduling. We define a cost semantics that allows programmers
to reason about how space is used by parallel declarative programs. At the
same time, these costs provide a specification for how implementations
should behave
The Cult of the Bound Variable: The 9th Annual ICFP Programming Contest
The annual ICFP Programming Contest has become one of the premiere programming competitions in the world.
The 9th incarnation of the contest, “The Cult of the Bound Variable,” was held in July 2006 and organized by the
Principles of Programming group at Carnegie Mellon University. This report details the contest tasks, the technology
used to produce the contest, and the contest results. Several tasks draw ideas from programming languages research.
For example, participants implemented a simple virtual machine, played an adventure game based on a substructural
logic, and programmed in a two-dimensional circuit language with a discordantly high-level operational semantics.
The contest technology includes an optimizing compiler for a high-level functional language that targets our virtual
machine. By the end of the three day contest, 365 teams, composed of 700 programmers from all over the world,
solved at least one of the contest tasks