Open Systems Laboratory at Illinois

Inferring ownership transfer for efficient message passing

By Stas Negara, Rajesh K. Karmani, and Gul A. Agha. In PPOPP, 81–90. ACM, 2011.

Full Text:
Download PDF
Publisher Link:
http://doi.acm.org/10.1145/1941553.1941566

Abstract

One of the more popular paradigms for concurrent programming is the Actor model of message passing; it has been adopted in one form or another by a number of languages and frameworks. By avoiding a shared local state and instead relying on message passing, the Actor model facilitates modular programming. An important challenge for message passing languages is to transmit messages efficiently. This requires retaining the pass-by-value semantics of messages while avoiding making a deep copy on sequential or shared memory multicore processors. A key observation is that many messages have an ownership transfer semantics; such messages can be sent efficiently using pointers without introducing shared state between concurrent objects. We propose a conservative static analysis algorithm which infers if the content of a message is compatible with an ownership transfer semantics. Our tool, called SOTER (for Safe Ownership Transfer enablER) transforms the program to avoid the cost of copying the contents of a message whenever it can infer the content obeys the ownership transfer semantics. Experiments using a range of programs suggest that our conservative static analysis method is usually able to infer ownership transfer. Performance results demonstrate that the transformed programs execute up to an order of magnitude faster than the original programs.

BibTeX

@inproceedings{conf/ppopp/NegaraKA11,
    author = "Negara, Stas and Karmani, Rajesh K. and Agha, Gul A.",
    editor = "Cascaval, Calin and Yew, Pen-Chung",
    title = "Inferring ownership transfer for efficient message
             passing",
    booktitle = "PPOPP",
    crossref = "conf/ppopp/2011",
    ee = "http://doi.acm.org/10.1145/1941553.1941566",
    keywords = "software engineering, programming languages",
    pages = "81-90",
    year = "2011",
}

@proceedings{conf/ppopp/2011,
    editor = "Cascaval, Calin and Yew, Pen-Chung",
    title = "Proceedings of the 16th ACM SIGPLAN Symposium on
             Principles and Practice of Parallel Programming, PPOPP 2011, San
             Antonio, TX, USA, February 12-16, 2011",
    ee = "http://dl.acm.org/citation.cfm?id=1941553",
    isbn = "978-1-4503-0119-0",
    publisher = "ACM",
    year = "2011",
}