TR93-14a

Extending the Multilisp Sponsor Model


    •  Randy B. Osborne, "Extending the Multilisp Sponsor Model", Tech. Rep. TR93-14a, Mitsubishi Electric Research Laboratories, Cambridge, MA, July 1993.
      BibTeX TR93-14a PDF
      • @techreport{MERL_TR93-14a,
      • author = {Randy B. Osborne},
      • title = {Extending the Multilisp Sponsor Model},
      • institution = {MERL - Mitsubishi Electric Research Laboratories},
      • address = {Cambridge, MA 02139},
      • number = {TR93-14a},
      • month = jul,
      • year = 1993,
      • url = {https://www.merl.com/publications/TR93-14a/}
      • }
Abstract:

Speculative computing is a technique to improve the execution time of certain applications by starting some computations before it is known that the computations are required. A speculative computation will eventually become mandatory (i.e. required) or irrelevant (i.e. not required). In the absence of side effects irrelevant computations may be aborted. However, with side effects a computation which is irrelevant for the value it produces may still be relevant for the side effects it performs. One problem that can result is the {it relevant synchronization} problem wherein one computation requires some side effect event (a "relevant synchronization") to be performed by another computation, which might be aborted, before the first computation can make progress. Another problem that can arise is the {it preemptive delay} problem wherein a computation that will perform some awaited side effect event is preempted by a computation whose importance (e.g. priority) is less than that of computations waiting for the event. In this paper we show how the sponsor model developed for speculative computation in Multilisp can be extended to provide a novel solution to these two problems. The idea is for the computation awaiting some action, such as the production of a value or the release of a semaphore, to sponsor the computation or set of computations that will perform the awaited action. This sponsorship ensures that the awaited action executes, and executes with at least the waiter's level of importance. We show how to apply this technique to solve the above problems for several producer/consumer and semaphore applications. The idea extends naturally to other synchronization mechanisms.