StackThreads/MP: integrating futures into calling standards

  • Authors:
  • Kenjiro Taura;Kunio Tabata;Akinori Yonezawa

  • Affiliations:
  • University of Tokyo, 7-3-1 Hongo Bunkyo-ku, Tokyo 113-0033, Japan;University of Tokyo, 7-3-1 Hongo Bunkyo-ku, Tokyo 113-0033, Japan;University of Tokyo, 7-3-1 Hongo Bunkyo-ku, Tokyo 113-0033, Japan

  • Venue:
  • Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

An implementation scheme of fine-grain multithreading that needs no changes to current calling standards for sequential languages and modest extensions to sequential compilers is described. Like previous similar systems, it performs an asynchronous call as if it were an ordinary procedure call, and detaches the callee from the caller when the callee suspends or either of them migrates to another processor. Unlike previous similar systems, it detaches and connects arbitrary frames generated by off-the-shelf sequential compilers obeying calling standards. As a consequence, it requires neither a frontend preprocessor nor a native code generator that has a builtin notion of parallelism. The system practically works with unmodified GNU C compiler (GCC). Desirable extensions to sequential compilers for guaranteeing portability and correctness of the scheme are clarified and claimed modest. Experiments indicate that sequential performance is not sacrificed for practical applications and both sequential and parallel performance are comparable to Cilk[8], whose current implementation requires a fairly sophisticated preprocessor to C. These results show that efficient asynchronous calls (a.k.a. future calls) can be integrated into current calling standard with a very small impact both on sequential performance and compiler engineering.