----+------------------------------------------------------------------------- |
||||||||||||||||
OverviewAmple is an experimental environment that can be used to study the behavior of parallel programs in terms of an abstract machine, without needing to worry about details particular to a native implementation. Ample is based on Sestoft's Mark-3 machine [1] and the Operational Semantics for Parallel Lazy Evaluation given by Clem Baker-Finch, David J. King and Phil Trinder [2].Ample accepts programs written in a spartan, no-nonsense functional language which includes support for constructed types, basic IO and integer math. Ample presents three separate machine models - single threaded, fully speculative and semi-implicit. In the semi-implicit model parallelism is introduced with the par and seq combinators in the same way as in programs written for GpH. The operation of the abstract machine is highly tuneable. Tunability extends to include the maximum number of active threads, the latency of communication between the threads and the methods used for sparking and unblocking. Ample includes a prelude of common functions and presents an interactive prompt where expressions are reduced and the machine state queried. Profiling information can also be generated interactively, including graphs of thread activity similar to the ones provided by GranSim. Ample has been written entirely in Haskell and uses Happy for parsing and Gnuplot to generate the graphs. ScreenshotsDownloadSoftware
References
Last
update: 5/4/2005
|
||||||||||||||||