Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2095050.2095104acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Which problems does a multi-language virtual machine need to solve in the multicore/manycore era?

Published: 23 October 2011 Publication History

Abstract

While parallel programming for very regular problems has been used in the scientific community by non-computer-scientists successfully for a few decades now, concurrent programming and solving irregular problems remains hard. Furthermore, we shift from few expert system programmers mastering concurrency for a constrained set of problems to mainstream application developers being required to master concurrency for a wide variety of problems.
Consequently, high-level language virtual machine (VM) research faces interesting questions. What are processor design changes that have an impact on the abstractions provided by VMs to provide platform independence? How can application programmers' diverse needs be facilitated to solve concurrent programming problems?
We argue that VMs will need to be ready for a wide range of different concurrency models that allow solving concurrency problems with appropriate abstractions. Furthermore, they need to abstract from heterogeneous processor architectures, varying performance characteristics, need to account for memory access cost and inter-core communication mechanisms but should only expose the minimal useful set of notions like locality, explicit communication, and adaptable scheduling to maintain their abstracting nature.
Eventually, language designers need to be enabled to guarantee properties like encapsulation, scheduling guarantees, and immutability also when an interaction between different problem-specific concurrency abstractions is required.

References

[1]
A.-R. Adl-Tabatabai, B. T. Lewis, V. Menon, B. R. Murphy, B. Saha, and T. Shpeisman. Compiler and runtime support for efficient software transactional memory. In Proc. of PLDI '06, pages 26--37. ACM, 2006.
[2]
J. Armstrong. A history of erlang. In Proc. of HOPL III, pages 6-1--6-26. ACM, 2007. ISBN 978-1-59593-766-X.
[3]
G. Bracha and D. Ungar. Mirrors: design principles for meta-level facilities of object-oriented programming languages. In Proc. of OOPSLA '04, pages 331--344. ACM, 2004.
[4]
B. Catanzaro, A. Fox, K. Keutzer, D. Patterson, B.-Y. Su, M. Snir, K. Olukotun, P. Hanrahan, and H. Chafi. Ubiquitous parallel computing from berkeley, illinois, and stanford. IEEE Micro, 30 (2): 41--55, 2010.
[5]
H. Chafi, Z. DeVito, A. Moors, T. Rompf, A. K. Sujeeth, P. Hanrahan, M. Odersky, and K. Olukotun. Language virtualization for heterogeneous parallel computing. In Proc. of OOPSLA '10, pages 835--847. ACM, 2010.
[6]
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: An object-oriented approach to non-uniform cluster computing. In Proc. of OOPSLA '05, pages 519--538. ACM, 2005.
[7]
ECMA International. Standard ECMA-335 - Common Language Infrastructure (CLI). 4 edition, June 2006.
[8]
S. Gopal, W. Tansey, G. C. Kannan, and E. Tilevich. Dexter - an extensible framework for declarative parameter passing in distributed object systems. In Proc. of the ACM/IFIP/USENIX 9th International Middleware Conference, pages 144--163. Springer-Verlag, 2008. ISBN 978-3-540-89855-9.
[9]
Y. Guo, J. Zhao, V. Cave, and V. Sarkar. Slaw: A scalable locality-aware adaptive work-stealing scheduler for multi-core systems. SIGPLAN Not., 45: 341--342, January 2010.
[10]
Z. Guz, E. Bolotin, I. Keidar, A. Kolodny, A. Mendelson, and U. Weiser. Many-core vs. many-thread machines: Stay away from the valley. IEEE Comp. Arch. Letters, 99 (2), 5555.
[11]
S. Halloway. Programming Clojure. Pragmatic Programmers. Pragmatic Bookshelf, 1 edition, 2009. ISBN 1934356336.
[12]
M. D. Hill and M. R. Marty. Amdahl's law in the multicore era. Computer, 41 (7): 33--38, 2008.
[13]
C. A. R. Hoare. Communicating sequential processes. Commun. ACM, 21 (8): 666--677, 1978.
[14]
R. K. Karmani, A. Shali, and G. Agha. Actor frameworks for the jvm platform: A comparative analysis. In Proc. of PPPJ '09, pages 11--20. ACM, 2009.
[15]
S. Marr, M. Haupt, and T. D'Hondt. Intermediate language design of high-level language virtual machines: Towards comprehensive concurrency support. In Proc. of the 3rd VMIL Workshop, pages 3:1--3:2. ACM, October 2009. (abstract).
[16]
R. McIlroy and J. Sventek. Hera-jvm: a runtime system for heterogeneous multi-core architectures. In Proc. of OOPSLA '10, pages 205--222. ACM, 2010.
[17]
T. N. Mudge and U. Hölzle. Challenges and opportunities for extremely energy-efficient processors. IEEE Micro, 30 (4): 20--24, 2010.
[18]
H. Pan, B. Hindman, and K. Asanović. Lithe: Enabling efficient composition of parallel libraries. In Proc. of HotPar '09. USENIX Association, 2009.
[19]
V. Saraswat, G. Almasi, G. Bikshandi, C. Cascaval, D. Cunningham, D. Grove, S. Kodali, I. Peshansky, and O. Tardieu. The asynchronous partitioned global address space model. Technical report, June 2010.
[20]
D. Shelepov, J. C. S. Alcaide, S. Jeffery, A. Fedorova, N. Perez, Z. F. Huang, S. Blagodurov, and V. Kumar. Hass: A scheduler for heterogeneous multicore systems. SIGOPS Oper. Syst. Rev., 43: 66--75, April 2009.
[21]
B. C. Smith. Reflection and semantics in lisp. In Proc. of POPL '84, pages 23--35. ACM, 1984.
[22]
S. Srinivasan and A. Mycroft. Kilim: Isolation-typed actors for java. In Proc. of ECOOP '08, pages 104--128, 2008.
[23]
D. Ungar and S. S. Adams. Hosting an object heap on manycore hardware: An exploration. In Proc. of DLS '09, pages 99--110. ACM, 2009.
[24]
T. Van Cutsem, S. Mostinckx, and W. De Meuter. Linguistic symbiosis between event loop actors and threads. Computer Languages, Systems & Structures, 35 (1): 80--98, 2009.
[25]
Y. Yan, J. Zhao, Y. Guo, and V. Sarkar. Hierarchical place trees: A portable abstraction for task parallelism and data movement. In Proc. of the 22nd LCPC Workshop, volume 5898 of LNCS, pages 172--187. Springer, 2009.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLASH '11 Workshops: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11
October 2011
358 pages
ISBN:9781450311830
DOI:10.1145/2095050
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: 23 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. manycore
  3. multi-language virtual machines
  4. multicore
  5. programming models
  6. requirements

Qualifiers

  • Research-article

Conference

SPLASH '11
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 119
    Total Downloads
  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media