Premature Return - Another Interpretation of the Future Construct
Several parallel Lisp languages such as MultiLisp[1], MultiScheme[2], and TOP-1 Common Lisp[3] use the future construct as the primitive parallel construct. Evaluation of a future expression requires spawning a subprocess. For relatively fine-grained parallel applications, the time for process creation affects the overall performance of the program. In this paper, we propose another interpretation of the future construct, called the premature-return, which is useful to reduce the overhead of process creation. With this interpretation, the caller process of a future expression keeps evaluating the expression while another process will be created to execute the program that follows the future expression. Although the premature-return is more efficient than the conventional interpretation in many cases, it is sometimes less efficient. In order to avoid such inefficient situations, we propose the use of an additional construct together with the premature-return.