Skip to main content

Type Systems for Distributed Data Sharing

  • Conference paper
  • First Online:
Static Analysis (SAS 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2694))

Included in the following conference series:

Abstract

Parallel programming languages that let multiple processors access shared data provide a variety of sharing mechanisms and memory models. Understanding a languageā€™s support for data sharing behavior is critical to understanding how the language can be used, and is also a component for numerous program analysis, optimization, and runtime clients. Languages that provide the illusion of a global address space, but are intended to work on machines with physically distributed memory, often distinguish between different kinds of pointers or shared data. The result can be subtle rules about what kinds of accesses are allowed in the application programs and implicit constraints on how the language may be implemented. This paper develops a basis for understanding the design space of these sharing formalisms, and codifies that understanding in a suite of type checking/inference systems that illustrate the trade-offs among various models.

This research was supported in part by NASA under NAG2-1210; NSF under EIA-9802069, CCR-0085949, and ACI-9619020; DOE under DE-FC03-01ER25509; and an NDSEG fellowship. The information presented here does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Agarwal, R. Bianchini, D. Chaiken, K. Johnson, D. Kranz, J. Kubiatowicz, B.-H. Lim, K. Mackenzie, and D. Yeung. The MIT Alewife machine: Architecture and performance. In Proc. of the 22nd Annual Intā€™l Symp. on Computer Architecture (ISCAā€™95), pages 2ā€“13, June 1995.

    Google ScholarĀ 

  2. A. Aiken and D. Gay. Barrier inference. In Conference Record of POPLā€™98: The 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 342ā€“354, San Diego, California, January 19ā€“21, 1998.

    Google ScholarĀ 

  3. J. Aldrich, E. G. Sirer, C. Chambers, and S. J. Eggers. Comprehensive synchronization elimination for Java. Science of Computer Programming, to appear. Also published as University of Washington Technical Report UW-CSE-00-10-01, October 2000.

    Google ScholarĀ 

  4. G. T. Balls. A Finite Difference Domain Decomposition Method Using Local Corrections for the Solution of Poissonā€™s Equation. PhD thesis, Department of Mechanical Engineering, University of California at Berkeley, 1999.

    Google ScholarĀ 

  5. M. Berger and P. Colella. Local adaptive mesh refinement for shock hydrodynamics. Journal of Computational Physics, 82(1):64ā€“84, May 1989. Lawrence Livermore Laboratory Report No. UCRL-97196.

    ArticleĀ  MATHĀ  Google ScholarĀ 

  6. B. Blanchet. Escape analysis for object oriented languages. Application to Java. In OOPSLA [27], pages 20ā€“34.

    ArticleĀ  Google ScholarĀ 

  7. J. Bogda and U. Hƶlzle. Removing unnecessary synchronization in Java. In OOPSLA [27], pages 35ā€“46.

    ArticleĀ  Google ScholarĀ 

  8. E. D. Brooks, III. PCP: A parallel extension of C that is 99% fat free. Technical Report UCRL-99673, Lawrence Livermore National Laboratory, Sept. 1988.

    Google ScholarĀ 

  9. M. C. Carlisle. Olden: Parallelizing Programs with Dynamic Data Structures on Distributed-Memory Machines. PhD thesis, Department of Computer Science, Princeton University, June 1996.

    Google ScholarĀ 

  10. W. W. Carlson and J. M. Draper. Distributed data access in AC. In Proc. 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPPā€™95, pages 39ā€“47, Santa Barbara, California, July 1995. IDA Supercomputing Research Center.

    Google ScholarĀ 

  11. W. W. Carlson, J. M. Draper, D. E. Culler, K. Yelick, E. Brooks, and K. Warren. Introduction to UPC and language specification. Technical Report CCS-TR-99-157, IDA Center for Computing Sciences, May 13 1999.

    Google ScholarĀ 

  12. K. M. Chandy and C. Kesselman. Compositional C++: Compositional parallel programming. Lecture Notes in Computer Science, 757:124ā€“144, 1993.

    Google ScholarĀ 

  13. J.-D. Choi, M. Gupta, M. Serrano, V. C. Sreedhar, and S. Midkiff. Escape analysis for Java. In OOPSLA [27], pages 1ā€“19.

    ArticleĀ  Google ScholarĀ 

  14. D. E. Culler, A. Dusseau, S. C. Goldstein, A. Krishnamurthy, S. Lumetta, T. von Eicken, and K. Yelick. Parallel programming in Split-C. In IEEE, editor, Proceedings, Supercomputingā€™ 93: Portland, Oregon, November 15ā€“19, 1993, pages 262ā€“273, 1109 Spring Street, Suite 300, Silver Spring, MD 20910, USA, 1993. IEEE Computer Society Press.

    Google ScholarĀ 

  15. J. Foster. cqual. Available at <http://bane.cs.berkeley.edu/cqual>, Nov. 2001.

    Google ScholarĀ 

  16. J. S. Foster, M. FƤhndrich, and A. Aiken. A theory of type qualifiers. In Proceedings of the ACM SIGPLANā€™ 99 Conference on Programming Language Design and Implementation, pages 192ā€“203, Atlanta, Georgia, May 1ā€“4, 1999. SIGPLAN Notices, 34(5), May 1999.

    ArticleĀ  Google ScholarĀ 

  17. D. P. Helmbold and C. E. McDowell. Computing reachable states of parallel programs. ACM SIGPLAN Notices, 26(12):76ā€“84, Dec. 1991.

    ArticleĀ  Google ScholarĀ 

  18. L. J. Hendren, X. Tang, Y. Zhu, S. Ghobrial, G. R. Gao, X. Xue, H. Cai, and P. Ouellet. Compiling C for the EARTH multithreaded architecture. International Journal of Parallel Programming, 25(4):305ā€“338, Aug. 1997.

    ArticleĀ  Google ScholarĀ 

  19. F. Henglein and J. Rehof. The complexity of subtype entailment for simple types. In Proceedings, Twelth Annual IEEE Symposium on Logic in Computer Science, pages 352ā€“361, Warsaw, Poland, 29 Juneā€“2 July 1997. IEEE Computer Society Press.

    Google ScholarĀ 

  20. P. N. Hilfinger, D. Bonachea, D. Gay, S. Graham, B. Liblit, and K. Yelick. Titanium language reference manual. Technical Report CSD-01-1163, University of California, Berkeley, Nov. 2001.

    Google ScholarĀ 

  21. B. Liblit and A. Aiken. Type systems for distributed data structures. In Conference Record of POPLā€™00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 199ā€“213, Boston, Massachusetts, January 19ā€“21, 2000.

    Google ScholarĀ 

  22. B. Liblit and A. Aiken. Type systems for distributed data structures. Technical Report CSD-99-1072, University of California, Berkeley, Jan. 2000. Available at <http://sunsite.berkeley.edu/TechRepPages/CSD-99-1072>.

    Google ScholarĀ 

  23. B. Liblit, A. Aiken, and K. Yelick. Data sharing analysis for Titanium. Technical Report CSD-01-1165, University of California, Berkeley, Nov. 2001. Available at <http://sunsite.berkeley.edu/TechRepPages/CSD-01-1165>.

    Google ScholarĀ 

  24. J. Mellor-Crummey. Compile-time support for efficient data race detection in shared-memory parallel programs. ACM SIGPLAN Notices, 28(12):129ā€“139, Dec. 1993.

    ArticleĀ  Google ScholarĀ 

  25. S. P. Midkiff and D. A. Padua. Issues in the optimization of parallel programs. In Proceedings of the 1990 International Conference on Parallel Processing, volume II, Software, pages II-105ā€“II-113, University Park, Penn, Aug. 1990. Penn State U. Press. CSRD TR#993, U. Ill.

    Google ScholarĀ 

  26. Myricom Inc. The GM Message Passing System, July 18 2000. Version 1.1.

    Google ScholarĀ 

  27. OOPSLAā€™99 ACM Conference on Object-Oriented Systems, Languages and Applications, volume 34(10) of ACM SIGPLAN Notices, Denver, CO, Oct. 1999. ACM Press.

    Google ScholarĀ 

    Google ScholarĀ 

  28. C. S. Peskin and D. M. McQueen. A three-dimensional computational method for blood flow in the heart. I. Immersed elastic fibers in a viscous incompressible fluid. Journal of Computational Physics, 81(2):372ā€“405, Apr. 1989.

    ArticleĀ  MATHĀ  MathSciNetĀ  Google ScholarĀ 

  29. G. Pike, L. Semenzato, P. Colella, and P. N. Hilfinger. Parallel 3D adaptive mesh refinement in Titanium. In Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing, San Antonio, Texas, Mar. 1999.

    Google ScholarĀ 

  30. D. PlainfossƩ and M. Shapiro. A survey of distributed garbage collection techniques. In H. Baker, editor, Proceedings of International Workshop on Memory Management, volume 986 of Lecture Notes in Computer Science, ILOG, Gentilly, France, and INRIA, Le Chesnay, France, Sept. 1995. Springer-Verlag.

    Google ScholarĀ 

  31. M. C. Rinard and M. S. Lam. The design, implementation, and evaluation of Jade. ACM Transactions on Programming Languages and Systems, 20(3):483ā€“545, May 1998.

    ArticleĀ  Google ScholarĀ 

  32. S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems, 15(4):391ā€“411, Nov. 1997.

    ArticleĀ  Google ScholarĀ 

  33. B. Steensgaard. Thread-specific heaps for multi-threaded programs. In T. Hosking, editor, ISMM 2000 Proceedings of the Second International Symposium on Memory Management, volume 36(1) of ACM SIGPLAN Notices, Minneapolis, MN, Oct. 2000. ACM Press.

    Google ScholarĀ 

  34. Supercomputing Technologies Group, MIT Laboratory for Computer Science. Cilk 5.3.1 Reference Manual, June 24 2000.

    Google ScholarĀ 

  35. J. Whaley and M. Rinard. Compositional pointer and escape analysis for Java programs. In OOPSLA [27], pages 187ā€“206.

    ArticleĀ  Google ScholarĀ 

  36. Y. Zhu and L. Hendren. Locality analysis for parallel C programs. IEEE Transactions on Parallel and Distributed Systems, 10(2):99ā€“114, Feb. 1999.

    ArticleĀ  Google ScholarĀ 

  37. Y. Zhu and L. J. Hendren. Communication optimizations for parallel C programs. ACM SIGPLAN Notices, 33(5):199ā€“211, May 1998.

    ArticleĀ  Google ScholarĀ 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Liblit, B., Aiken, A., Yelick, K. (2003). Type Systems for Distributed Data Sharing. In: Cousot, R. (eds) Static Analysis. SAS 2003. Lecture Notes in Computer Science, vol 2694. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44898-5_15

Download citation

  • DOI: https://doi.org/10.1007/3-540-44898-5_15

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40325-8

  • Online ISBN: 978-3-540-44898-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics