Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1937117.1937126acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Comparing the usability of library vs. language approaches to task parallelism

Published: 17 October 2010 Publication History

Abstract

In this paper, we compare the usability of a library approach with a language approach to task parallelism. There are many practical advantages and disadvantages to both approaches. A key advantage of a library-based approach is that it can be deployed without requiring any change in the tool chain, including compilers and IDEs. However, the use of library APIs to express all aspects of task parallelism can lead to code that is hard to understand and modify. A key advantage of a language-based approach is that the intent of the programmer is easier to express and understand, both by other programmers and by program analysis tools. However, a language-based approach usually requires the standardization of new constructs and (possibly) of new keywords. In this paper, we compare the java.util.concurrent (j.u.c) library [14] from Java 7 and the Habanero-Java (HJ) [16] language, supported by our experiences in teaching both models at Rice University.

References

[1]
Guy Blelloch. NESL: A Nested Data-Parallel Language. Technical Report CMU-CS-92-103, Carnegie Mellon University, January 1992.
[2]
Jeffrey Dean and Sanjay Ghemawat. Mapreduce: simplified data processing on large clusters. Commun. ACM, 51(1):107--113, 2008. ISSN 0001-0782.
[3]
Kemal Ebcioglu, Vivek Sarkar, Tarek El-Ghazawi, and John Urbanic. An experiment in measuring the productivity of three parallel programming languages. In Workshop on Productivity and Performance in High-End Computing (P-PHEC), 2006.
[4]
J. Shirako et al. Phasers: a unified deadlock-free construct for collective and point-to-point synchronization. In ICS '08, pages 277--288, New York, NY, USA, 2008. ACM.
[5]
J. Shirako et al. Chunking parallel loops in the presence of synchronization. In ICS '09, pages 181--192, New York, NY, USA, 2009. ACM.
[6]
J. Shirako et al. Phaser accumulators: A new reduction construct for dynamic parallelism. In IPDPS '09, pages 1--12, Washington, DC, USA, 2009. IEEE Computer Society.
[7]
K. Yelick et al. Productivity and performance using partitioned global address space languages. In Proceedings of the international workshop on Parallel symbolic computation, pages 24--32, New York, NY, USA, 2007. ACM.
[8]
Matteo Frigo et al. The implementation of the Cilk-5 multithreaded language. In PLDI'98, pages 212--223, June 1998. Proceedings published ACM SIGPLAN Notices, Vol. 33, No. 5, May, 1998.
[9]
P. Charles et al. X10: an object-oriented approach to non-uniform cluster computing. In OOPSLA'05, pages 519--538, New York, NY, USA, 2005. ISBN 1-59593-031-0.
[10]
R. D. Blumofe et al. CILK: An efficient multithreaded runtime system. PPoPP'95, pages 207--216, July 1995.
[11]
Y. Guo et al. Slaw: a scalable locality-aware adaptive work-stealing scheduler. In IPDPS '10, pages 1--12, Washington, DC, USA, Apr 2010. IEEE Computer Society.
[12]
Y. Yan et al. Hierarchical place trees: A portable abstraction for task parallelism and data movement. In 22nd International Workshop, LCPC 2009. Springer, 2009.
[13]
Yi Guo et al. Work-first and help-first scheduling policies for async-finish task parallelism. In IPDPS'09, pages 1--12, 2009.
[14]
B. Goetz. Java Concurrency In Practice. Addison-Wesley, 2007.
[15]
R. Gupta. The fuzzy barrier: a mechanism for high speed synchronization of processors. In Proceedings of the third international conference on Architectural support for programming languages and operating systems, pages 54--63, New York, USA, 1989. ACM.
[16]
Habanero. Habanero Java. http://habanero.rice.edu/hj, Dec 2009.
[17]
James R. Larus and Ravi Rajwar. Transactional Memory. Morgan & Claypool, 2006.
[18]
Doug Lea. A java fork/join framework, 2000.
[19]
Alex Miller. Set your java 7 phasers to stun. http://tech.puredanger.com/2008/07/08/java7-phasers/, 2008.
[20]
R Milne and C Strachey. A Theory of Programming Language Semantics. Halstead Press, New York, 1976.
[21]
V. Sarkar. Synchronization Using Counting Semaphores. In Proceedings of the International Conference on Supercomputing, pages 627--637, July 1988.
[22]
Jun Shirako and Vivek Sarkar. Hierarchical phasers for scalable synchronization and reduction. In IPDPS '10, pages 1--12, Washington, DC, USA, 2010. IEEE Computer Society.
[23]
X10. Release 1.5 of X10 system dated 2007-06-29. http://sourceforge.net/project/showfiles.php?group_id=181722&package_id=210532&release_id=519811, 2007.

Cited By

View all
  • (2023)How Domain Experts Use an Embedded DSLProceedings of the ACM on Programming Languages10.1145/36228517:OOPSLA2(1499-1530)Online publication date: 16-Oct-2023
  • (2017)Exogenous coordination of concurrent software components with JavaBIPSoftware: Practice and Experience10.1002/spe.249547:11(1801-1836)Online publication date: 3-Apr-2017
  • (2016)RJSoftware—Practice & Experience10.1002/spe.233046:5(685-708)Online publication date: 1-May-2016
  • Show More Cited By

Index Terms

  1. Comparing the usability of library vs. language approaches to task parallelism

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PLATEAU '10: Evaluation and Usability of Programming Languages and Tools
      October 2010
      51 pages
      ISBN:9781450305471
      DOI:10.1145/1937117
      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: 17 October 2010

      Permissions

      Request permissions for this article.

      Check for updates

      Qualifiers

      • Research-article

      Conference

      SPLASH '10
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 5 of 8 submissions, 63%

      Upcoming Conference

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)3
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 28 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)How Domain Experts Use an Embedded DSLProceedings of the ACM on Programming Languages10.1145/36228517:OOPSLA2(1499-1530)Online publication date: 16-Oct-2023
      • (2017)Exogenous coordination of concurrent software components with JavaBIPSoftware: Practice and Experience10.1002/spe.249547:11(1801-1836)Online publication date: 3-Apr-2017
      • (2016)RJSoftware—Practice & Experience10.1002/spe.233046:5(685-708)Online publication date: 1-May-2016
      • (2014)Habanero-Java libraryProceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools10.1145/2647508.2647514(75-86)Online publication date: 23-Sep-2014
      • (2014)Towards Standardization of Measuring the Usability of Parallel LanguagesParallel Processing and Applied Mathematics10.1007/978-3-642-55195-6_6(65-74)Online publication date: 8-May-2014
      • (2011)Unifying barrier and point-to-point synchronization in OpenMP with phasersProceedings of the 7th international conference on OpenMP in the Petascale era10.5555/2023025.2023038(122-137)Online publication date: 13-Jun-2011
      • (2011)A monad for deterministic parallelismACM SIGPLAN Notices10.1145/2096148.203468546:12(71-82)Online publication date: 22-Sep-2011
      • (2011)Habanero-JavaProceedings of the 9th International Conference on Principles and Practice of Programming in Java10.1145/2093157.2093165(51-61)Online publication date: 24-Aug-2011
      • (2011)A monad for deterministic parallelismProceedings of the 4th ACM symposium on Haskell10.1145/2034675.2034685(71-82)Online publication date: 22-Sep-2011
      • (2011)Experiments with the Fresh Breeze tree-based memory modelComputer Science - Research and Development10.1007/s00450-011-0165-126:3-4(325-337)Online publication date: 1-Jun-2011

      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