skip to main content
10.1145/2093157.2093165acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Habanero-Java: the new adventures of old X10

Published:24 August 2011Publication History

ABSTRACT

In this paper, we present the Habanero-Java (HJ) language developed at Rice University as an extension to the original Java-based definition of the X10 language. HJ includes a powerful set of task-parallel programming constructs that can be added as simple extensions to standard Java programs to take advantage of today's multi-core and heterogeneous architectures. The language puts a particular emphasis on the usability and safety of parallel constructs. For example, no HJ program using async, finish, isolated, and phaser constructs can create a logical deadlock cycle. In addition, the future and data-driven task variants of the async construct facilitate a functional approach to parallel programming. Finally, any HJ program written with async, finish, and phaser constructs that is data-race free is guaranteed to also be deterministic.

HJ also features two key enhancements that address well known limitations in the use of Java in scientific computing --- the inclusion of complex numbers as a primitive data type, and the inclusion of array-views that support multidimensional views of one-dimensional arrays. The HJ compiler generates standard Java class-files that can run on any JVM for Java 5 or higher. The HJ runtime is responsible for orchestrating the creation, execution, and termination of HJ tasks, and features both work-sharing and work-stealing schedulers. HJ is used at Rice University as an introductory parallel programming language for second-year undergraduate students. A wide variety of benchmarks have been ported to HJ, including a full application that was originally written in Fortran 90. HJ has a rich development and runtime environment that includes integration with DrJava, the addition of a data race detection tool, and service as a target platform for the Intel Concurrent Collections coordination language

References

  1. COMP 322: Fundamentals of Parallel Programming. URL https://wiki.rice.edu/confluence/display/PARPROG/COMP322.Google ScholarGoogle Scholar
  2. Shivali Agarwal, Rajkishore Barik, Dan Bonachea, Vivek Sarkar, Rudrapatna K. Shyamasundar, and Katherine Yelick. Deadlock-free scheduling of x10 computations with bounded resources. In SPAA '07: Proceedings of the nineteenth annual ACM symposium on parallelism algorithms and architectures, pages 229--240, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-667-7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Shivali Agarwal, Rajkishore Barik, Vivek Sarkar, and Rudrapatna K. Shyamasundar. May-happen-in-parallel analysis of x10 programs. In PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 183--193, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-602-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Eric Allan, David Chase, Joe Hallett, Victor Luchangco, Jan-Willem Maessen, Sukyoung Ryu, Guy L. Steele Jr., and Sam Tobin-Hochstadt. The Fortress language specification version 1.0. Technical report, Sun Microsystems, April 2005.Google ScholarGoogle Scholar
  5. Rajkishore Barik and Vivek Sarkar. Interprocedural load elimination for dynamic optimization of parallel programs. In PACT'09, Proceedings of the 18th International Conference on Parallel Architectures and Compilation Techniques, pages 41--52, Washington, DC, USA, Sep 2009. IEEE Computer Society. ISBN 978-0-7695-3771-9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Robert D. Blumofe and Charles E. Leiserson. Scheduling multithreaded computations by work stealing. In Proceedings of the 35th Annual Symposium on Foundations of Computer Science (FOCS), pages 356--368, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Zoran Budimlić, Michael Burke, Vincent Cavé, Kathleen Knobe, Geoff P. Lowney, Ryan Newton, Jens Palsberg, David Peixotto, Vivek Sarkar, Frank Schlimbach, and Saǧnak Taşirlar. The CnC Programming Model. Journal of Scientific Programming, 2010.Google ScholarGoogle Scholar
  8. Vincent Cavé, Zoran Budimlić, and Vivek Sarkar. Comparing the usability of library vs. language approaches to task parallelism. In Evaluation and Usability of Programming Languages and Tools, PLATEAU '10, pages 9:1--9:6, 2010. ISBN 978-1-4503-0547-1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. B. L. Chamberlain, D. Callahan, and H. P. Zima. Parallel programmability and the chapel language. Int. J. High Perform. Comput. Appl., 21(3):291--312, 2007. ISSN 1094-3420. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Joe Duffy. Concurrent Programming on Windows. Addison-Wesley, 2008. ISBN 9780321434821. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Alejandro Duran et al. Barcelona OpenMP Tasks Suite: A Set of Benchmarks Targeting the Exploitation of Task Parallelism in OpenMP. In ICPP'09, pages 124--131, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Mingdong Feng and Charles E. Leiserson. Efficient detection of determinacy races in cilk programs. Theory Comput. Syst., 32(3):301--326, 1999.Google ScholarGoogle ScholarCross RefCross Ref
  14. Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, pages 212--223, New York, NY, USA, 1998. ACM. ISBN 0-89791-987-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Max Grossman, Alina Simion Sbrlea, Zoran Budimli, and Vivek Sarkar. CnC-CUDA: Declarative Programming for GPUs. In 2010 Workshop on Languages and Compilers for Parallel Computing (LCPC), volume 6548 of Lecture Notes in Computer Science, pages 230--245. Springer Berlin/Heidelberg, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Yi Guo. A Scalable Locality-aware Adaptive Work-stealing Scheduler for Multi-core Task Parallelism. PhD thesis, Rice University, Aug 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Yi Guo, Jisheng Zhao, Vincent Cavé, and Vivek Sarkar. SLAW: a Scalable Locality-aware Adaptive Work-stealing Scheduler. In IPDPS '10: Proceedings of the 2010 IEEE International Symposium on Parallel&Distributed Processing, pages 1--12, Washington, DC, USA, Apr 2010. IEEE Computer Society.Google ScholarGoogle ScholarCross RefCross Ref
  18. R. Gupta. The fuzzy barrier: a mechanism for high speed synchronization of processors. In ASPLOS-III, pages 54--63, New York, USA, 1989. ACM. ISBN 0-89791-300-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Habanero. Habanero Multicore Software Research Project web page. http://habanero.rice.edu, January 2008.Google ScholarGoogle Scholar
  20. Java Grande Forum. The Java Grande Forum Benchmark Suite. http://www.epcc.ed.ac.uk/javagrande/javag.html.Google ScholarGoogle Scholar
  21. Mackale Joyner, Zoran Budimlic, and Vivek Sarkar. Subregion Analysis and Bounds Check Elimination for High Level Arrays. In 20th International Conference on Compiler Construction. Springer-Verlag, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. K Key. One-dimensional inversion of multi-component, multi-frequency marine CSEM data: Methodology and synthetic studies for resolving thin resistive layers: Geophysics. in review, 2008.Google ScholarGoogle Scholar
  23. James R. Larus and Ravi Rajwar. Transactional Memory. Morgan & Claypool, 2006.Google ScholarGoogle Scholar
  24. Roberto Lublinerman, Jisheng Zhao, Zoran Budimlic, Swarat Chaudhuri, and Vivek Sarkar. Delegated Isolation. In Proceedings of OOPSLA 2011, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Alex Miller. Set your Java 7 Phasers to stun. http://tech.puredanger.com/2008/07/08/java7-phasers/, 2008.Google ScholarGoogle Scholar
  26. Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. Polyglot: An Extensible Compiler Framework for Java. In 12th International Conference on Compiler Construction, pages 138--152. Springer-Verlag, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. OpenMP. OpenMP Application Program Interface, Version 3.0, May 2008. http://www.openmp.org/mp-documents/spec30.pdf.Google ScholarGoogle Scholar
  28. Jarred Payne, Vincent Cavé, Raghavan Raman, Mathias Ricken, Robert Cartwright, and Vivek Sarkar. Tool Demonstration: DrHJ --- a lightweight pedagogic IDE for Habanero Java. In PPPJ'11: Proceedings of 9th International Conference on the Principles and Practice of Programming in Java, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Tim Peierls, Joshua Bloch, Joseph Bowbeer, Doug Lea, and David Holmes. Java Concurrency in Practice. Addison-Wesley Professional, 2006. ISBN 0321349601. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Raghavan Raman, Jisheng Zhao, Vivek Sarkar, Martin Vechev, and Eran Yahav. Efficient Data Race Detection for Async-Finish Parallelism. In RV'10, Proceedings of the 1th International Conference on Runtime Verification. Springer, Nov 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. James Reinders. Intel threading building blocks. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 2007. ISBN 9780596514808. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. Shirako, D. M. Peixotto, V. Sarkar, and W. N. Scherer. Phaser accumulators: A new reduction construct for dynamic parallelism. In Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing, pages 1--12, Washington, DC, USA, 2009. IEEE Computer Society. ISBN 978-1-4244-3751-1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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. ISBN 978-1-60558-158-3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Jun Shirako and Vivek Sarkar. Hierarchical Phasers for Scalable Synchronization and Reduction. In IPDPS '10: Proceedings of the 2010 IEEE International Symposium on Parallel&Distributed Processing, pages 1--12, Washington, DC, USA, 2010. IEEE Computer Society.Google ScholarGoogle Scholar
  35. Jun Shirako, Jisheng Zhao, V. Krishna Nandivada, and Vivek Sarkar. Chunking parallel loops in the presence of synchronization. In ICS '09: Proceedings of the 23rd international conference on Supercomputing, pages 181--192, New York, NY, USA, 2009. ACM. ISBN 978-1-60558-498-0. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Sagnak Tasirlar and Vivek Sarkar. Data-driven tasks and their implementation. In Proceedings of International Conference on Parallel Processing (ICPP), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. Vallée-Rai et al. Soot - a Java Optimization Framework. In Proceedings of CASCON 1999, pages 125--135, 1999. URL www.sable.mcgill.ca/publications.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Vijay Saraswat and Bard Bloom. Report on the Programming Language X10, Version 2.0.5, July 2010. http://x10.codehaus.org.Google ScholarGoogle Scholar
  39. Yonghong Yan, Max Grossman, and Vivek Sarkar. Jcuda: A programmer-friendly interface for accelerating java programs with cuda. In Euro-Par '09: Proceedings of the 15th International Euro-Par Conference on Parallel Processing, pages 887--899, Berlin, Heidelberg, 2009. Springer-Verlag. ISBN 978-3-642-03868-6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Yonghong Yan, Jisheng Zhao, Yi Guo, and Vivek Sarkar. Hierarchical Place Trees: A Portable Abstraction for Task Parallelism and Data Movement. In Languages and Compilers for Parallel Computing, 22nd International Workshop, LCPC 2009, volume 5898 of Lecture Notes in Computer Science. Springer, 2009. ISBN 978-3-642-13373-2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. K. Yelick et al. Productivity and performance using partitioned global address space languages. In PASCO'07, pages 24--32, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-741-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Jisheng Zhao, Jun Shirako, V. Krishna Nandivada, and Vivek Sarkar. Reducing Task Creation and Termination Overhead in Explicitly Parallel Program. In PACT'10, Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques. IEEE Computer Society, Sep 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Habanero-Java: the new adventures of old X10

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        PPPJ '11: Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
        August 2011
        186 pages
        ISBN:9781450309356
        DOI:10.1145/2093157

        Copyright © 2011 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 24 August 2011

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate29of58submissions,50%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader