Results 11 -
11 of
11
Technical Memo
- Computational Linguistics
, 1977
"... A closure is a representation of a thread in memory, ready to be executed. The goal of this work is to create portable closures that can be transferred across binary incompatible architectures. Consequently, indolent closures are software-implemented, and rely on a copy mechanism which allows for ..."
Abstract
- Add to MetaCart
A closure is a representation of a thread in memory, ready to be executed. The goal of this work is to create portable closures that can be transferred across binary incompatible architectures. Consequently, indolent closures are software-implemented, and rely on a copy mechanism which allows for potential data representation conversion on-the-fly. Indolent closure creation optimizes the current implementation of the algorithmic multithreaded language Cilk. Rather than generating parallelism eagerly by pushing closures on a ready deque whenever a parallel spawn occurs, indolent closures are created only if the ready deque is empty and a steal request occurs. Indolent closure creation is based on the release-andresume transformation, developed for the portable checkpoint compiler porch. Experimental results on various architectures show that indolent closure creation reduces the cost of a parallel spawn to be competitive with the cost of a sequential function call.

