Skip to main navigation Skip to search Skip to main content

Lightweight asynchrony using parasitic threads

  • K. C. Sivaramakrishnan
  • , Lukasz Ziarek
  • , Raghavendra Prasad
  • , Suresh Jagannathan
  • Purdue University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

10 Scopus citations

Abstract

Message-passing is an attractive thread coordination mechanism because it cleanly delineates points in an execution when threads communicate, and unifies synchronization and communication: a sender is allowed to proceed only when a receiver willing to accept the data being sent is available and vice versa. To enable greater performance, however, asynchronous or non-blocking extensions are usually provided that allow senders and receivers to proceed even if a matching partner is unavailable. Lightweight threads with synchronous message-passing can be used to encapsulate asynchronous message-passing operations, although such implementations have greater thread management costs that can negatively impact scalability and performance. This paper introduces parasitic threads, a novel mechanism for expressing asynchronous computation, that combines the efficiency of a non-declarative solution with the ease of use provided by languages with first-class channels and lightweight threads. A parasitic thread is a lightweight data structure that encapsulates an asynchronous computation using the resources provided by a host thread. Parasitic threads need not execute cooperatively, impose no restrictions on the computations they encapsulate, or the communication actions they perform, and impose no additional burden on thread scheduling mechanisms. We describe an implementation of parasitic threads in MLton, a whole-program optimizing compiler and runtime for Standard ML. Benchmark results indicate parasitic threads enable construction of scalable and efficient message-passing parallel programs.

Original languageEnglish
Title of host publicationDAMP'10 - Proceedings of the 2010 ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming
Pages63-72
Number of pages10
DOIs
StatePublished - 2010
Event2010 ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming, DAMP'10 - Madrid, Spain
Duration: Jan 19 2010Jan 19 2010

Publication series

NameDAMP'10 - Proceedings of the 2010 ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming

Conference

Conference2010 ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming, DAMP'10
Country/TerritorySpain
CityMadrid
Period01/19/1001/19/10

Keywords

  • Asynchronous communication
  • Lightweight threading
  • Message passing
  • MLton

Fingerprint

Dive into the research topics of 'Lightweight asynchrony using parasitic threads'. Together they form a unique fingerprint.

Cite this