Skip to main content

Deterministic Parallel Java

  • Reference work entry
  • 298 Accesses

Synonyms

DPJ

Definition

Deterministic Parallel Java (DPJ) is a parallel programming language based on Java and developed at the University of Illinois at Urbana-Champaign. DPJ uses a type and effect system to provide deterministic-by-default semantics. “Deterministic” means that for a particular input, a given program always produces the same output, regardless of the parallel schedule chosen. “By default” means that the program is deterministic unless the programmer explicitly requests nondeterministic behavior. DPJ guarantees this semantics at compile time for the programs it can express.

Discussion

Introduction

Many parallel programs are intended to have deterministic behavior. Typically, these programs are transformative: they accept some input, do a computation in memory, and produce some output, in contrast to programs such as servers that accept input throughout the computation. There are many examples of deterministic programs in domains such as scientific computing, graphics,...

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Bibliography

  1. http://gee.cs.oswego.edu/dl/jsr166/dist/extra166ydocs/index.html?extra166y/package-tree.html

  2. http://dpj.cs.uiuc.edu

  3. Bocchino RL Jr (2010) An effect system and language for deterministic-by-default parallel programming. PhD thesis, University of Illinois, Urbana-Champaign

    Google Scholar 

  4. Bocchino RL Jr, Adve VS, Adve SV, Snir M (2009) Parallel programming must be deterministic by default. In: HOTPAR ’09: USENIX workshop on hot topics in parallelism, Berkeley, March 2009

    Google Scholar 

  5. Bocchino RL Jr, Adve VS, Dig D, Adve SV, Heumann S, Komuravelli R, Overbey J, Simmons P, Sung H, Vakilian M (2009) A type and effect system for deterministic parallel Java. In: OOPSLA ’09: Proceedings of the 24th ACM SIGPLAN conference on object-oriented programming systems, languages, and applications, New York, pp 97–116

    Google Scholar 

  6. Bocchino RL Jr, Heumann S, Honarmand N, Adve S, Adve V, Welc A, Shpeisman T, Ni Y (2011) Safe nondeterminism in a deterministic-by-default parallel language. In: POPL ’11: Proceedings of the 38th ACM SIGACT-SIGPLAN symposium on principles of programming languages, New York

    Google Scholar 

  7. Cameron NR, Drossopoulou S, Noble J, Smith MJ (2007) Multiple ownership. In: OOPSLA ’07: Proceedings of the 22nd ACM SIGPLAN conference on object-oriented programming systems and applications, New York, pp 441–460

    Google Scholar 

  8. Clarke D, Drossopoulou S (2002) Ownership, encapsulation and the disjointness of type and effect. In: OOPSLA ’02: Proceedings of the 17th ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications, New York, pp 292–310

    Google Scholar 

  9. Harris T, Larus J, Rajwar R (2010) Transactional memory (Synthesis lectures on computer architecture), 2nd edn. Morgan & Claypool Publishers, San Rafael

    Google Scholar 

  10. Lucassen JM, Gifford DK (1988) Polymorphic effect systems. In: POPL ’88: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on principles of programming languages, New York, pp 47–57

    Google Scholar 

  11. Reinders J (2007) Intel threading building blocks: outfitting C + + for multi-core processor parallelism. O’Reilly Media Sebastopol

    Google Scholar 

  12. Talpin J-P, Jouvelot P (1992) Polymorphic type, region and effect inference. J Funct Program 2:245–271

    MATH  MathSciNet  Google Scholar 

  13. Thomas P, Weedon R (1998) Object-oriented programming in Eiffel, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., Boston

    Google Scholar 

  14. Vakilian M, Dig D, Bocchino R, Overbey J, Adve V, Johnson R (2009) Inferring method effect summaries for nested heap regions. In: ASE ’09: Proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering, Auckland, pp 421–432

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Bocchino, R.L. (2011). Deterministic Parallel Java. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_119

Download citation

Publish with us

Policies and ethics