[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2141702.2141709acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

An hybrid model for very high level threads

Published: 26 February 2012 Publication History

Abstract

Languages with multiple paradigms or other special-purpose features often are implemented in ways that make true concurrency difficult in the virtual machine or runtime system. Several popular languages feature a global interpreter lock that limits them to pseudo-concurrency. This paper presents lessons learned in developing true concurrency for a goal-directed, object-oriented language called Unicon. Parts of the work were anticipated, such as switching to thread-safe C library functions, while other parts were a surprise, such as eliminating race conditions in self-modifying virtual machine instructions.

References

[1]
Andrews, G., and Olsson, R. 1993. The SR Programming Language: Concurrency in Practice.: Benjamin/Cummings.
[2]
Ashley, D. W., et al. 2009. Open Object Rexx: Programming Guide. http://www.oorexx.org/docs/rexxpg/book1.htm (accessed 01/30/2012)
[3]
Bal, H., Steiner, J., and Tanenbaum, A. 1989. Programming Languages for Distributed Computing Systems. ACM Computing Surveys. 21, 3, 261--322.
[4]
Beazley, D. 2009. Inside the Python GIL. Python Concurrency Workshop. http://www.dabeaz.com/python/GIL.pdf (accessed 01/30/2012)
[5]
Capman, B., Jost, G., and van der Pas, R. 2007. Using OpenMP. MIT Press.
[6]
Griswold, R., and Griswold, M. 1999. The Icon Programming Language, 3rd ed. Peer-to-Peer Communications., San Jose, CA.
[7]
Gustafson, P. Sun Developer Network. http://developers.sun.com/solaris/articles/cpp_race.html (accessed 01/30/2012)
[8]
Hasselbring, W. 1997. Approaches to High-Level Programming and Prototyping of Concurrent Applications. Software-Technik Memo 91. ftp://ls10-www.cs.uni-dortmund.de/pub/Technische-Berichte/Hasselbring_SWT-Memo-91.ps.gz (accessed 01/30/2012)
[9]
Hudak, P. 1988. Exploring parafunctional programming: Separating the What from the How. IEEE Software, January, 1988, 54--61.
[10]
Jeffery, C., Mohamed, S., Parlett, R., and Pereda, R. 2003. Programming with Unicon. http://unicon.org/book/ub.pdf (accessed 01/30/2012)
[11]
Karaorman, M., and Bruno, J. 1993. Introducing concurrency to a sequential language. Communications of the ACM, 36, 9, 103--115.
[12]
Kolosov, A., Ryzhkov, E., and Karpov, A. 2008. Intel Software Network. http://software.intel.com/en-us/articles/32-openmp-traps-for-c-developers (accessed 01/30/2012)
[13]
Mitsolides, T. 1992. The Design and Implementation of ALLOY, a Higher Level Parallel Pro-gramming Language.
[14]
Mitsolides, T., and Harrison, M. 1990. Generators and the replicator control structure in the parallel environment of alloy. In Proceedings of PLDI '90 - ACM SIGPLAN conference on Programming language design and implementation, 189--196.
[15]
Oikonomou, K. N. 2010. Network Performability Evaluation. Guide to Reliable Internet Services and Applications, C. R. Kalmanek, S. Misra, and C. R. Yang, Eds. Springer, 113--135.
[16]
Oshineye, A. Discussion of "The Free Lunch is Over: A Fundamental Turn Towards Concurrency in Software". http://lambda-the-ultimate.org/node/458 (accessed 01/30/2012)
[17]
Paalvast, E. M., Sips, H. J., and Breebaart, L. C. 1991. "Booster: a High-Level Language for Portable Parallel Algorithms," Applied Numerical Mathematics. 8, 2, 177--192.
[18]
Peyton-Jones, S. L. 1987. The Implementation of Functional Programming Languages. Prentice Hall International.
[19]
Python FAQ. http://docs.python.org/faq/library#can-t-we-get-rid-of-the-global-interpreter-lock (accessed 01/30/2012)
[20]
Sun Studio Express - Using The Thread Analyzer - Tutorial. http://www.oracle.com/technetwork/testcontent/tha-using-141353.html (accessed 01/30/2012)
[21]
Sun Studio Performance Analyzer Quick Start Guide. http://www.oracle.com/technetwork/server-storage/solaris/analyzer-qs-136436.html (accessed 01/30/2012)
[22]
Thread-safety and POSIX.1. http://www.unix.org/whitepapers/reentrant.html (accessed 01/30/2012)

Cited By

View all
  • (2016)Embedding goal-directed evaluation through transformationProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851731(1790-1797)Online publication date: 4-Apr-2016
  • (2016)Embedding Concurrent Generators2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW.2016.8(366-375)Online publication date: May-2016

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PMAM '12: Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores
February 2012
180 pages
ISBN:9781450312110
DOI:10.1145/2141702
  • Conference Chairs:
  • Minyi Guo,
  • Zhiyi Huang
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 February 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. garbage collection
  3. language design
  4. threads

Qualifiers

  • Research-article

Conference

PPoPP '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 53 of 97 submissions, 55%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Embedding goal-directed evaluation through transformationProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851731(1790-1797)Online publication date: 4-Apr-2016
  • (2016)Embedding Concurrent Generators2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)10.1109/IPDPSW.2016.8(366-375)Online publication date: May-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media