Skip to main content
USENIX
  • Conferences
  • Students
Sign in
  • HotPar '12 Home
  • Registration and Lodging
  • Organizers
  • Workshop Program
  • Poster Session
  • Birds-of-a-Feather Sessions
  • Travel
  • Calendar
  • Students
  • Questions?
  • For Participants
  • Call for Papers
  • Past Proceedings

sponsors

Gold Sponsor
Bronze Sponsor
Bronze Sponsor
Bronze Sponsor

twitter

Tweets by @usenix

usenix conference policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

You are here

Home » CnC-Python: Multicore Programming with High Productivity
Tweet

connect with us

http://twitter.com/usenix
http://www.facebook.com/usenixassociation

CnC-Python: Multicore Programming with High Productivity

Authors: 

Shams Imam and Vivek Sarkar, Rice University

Abstract: 

We introduce CnC-Python, an implementation of the Concurrent Collections (CnC) programming model for Python computations. Python has been gaining popularity in multiple domains because of its expressiveness and high productivity. However, exploiting multicore parallelism in Python is comparatively tedious since it requires the use of low-level threads or multiprocessing modules. CnC-Python, being implicitly parallel, avoids the use of these low-level constructs, thereby enabling Python programmers to achieve task, data and pipeline parallelism in a declarative fashion while only being required to describe the program as a coordination graph with serial Python code for individual steps. The CnC-Python runtime requires that Python objects communicated between steps be serializable (picklable), but imposes no restriction on the Python idioms used within the serial code. Programs written in CnC-Python are deterministic in that they produce the same outputs for the same inputs regardless of the execution schedules used by the runtime. Our implementation of CnC-Python uses the CnC Habanero-Java (HJ) runtime system, the Babel compiler to generate glue code while invoking Python from Java, and the multiprocessing module available in standard distributions of Python. However, the CnC-Python user need not be aware about Java, Babel, HJ,or any other component in our runtime to use our system. The HJ-based implementation allows us to reuse a mature CnC runtime for scheduling, and enables us to bypass the well publicized performance issues with the Python interpreter’s global interpreter lock.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@conference {259239,
title = {{CnC-Python}: Multicore Programming with High Productivity},
year = {2012},
address = {Berkeley, CA},
publisher = {USENIX Association},
month = jun,
}
Download
Imam PDF
  • Log in or    Register to post comments

Gold Sponsors

Bronze Sponsors

© USENIX

  • Privacy Policy
  • Contact Us