Skip to main content

Understanding language support for irregular parallelism

  • Irregular Data Structures and Applications
  • Conference paper
  • First Online:
Parallel Symbolic Languages and Systems (PSLS 1995)

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

Included in the following conference series:

Abstract

While software support for array-based, data-parallel algorithms has been studied extensively, less attention has been devoted to irregular parallel applications. The majority of these applications are unstructured, that is, they possess asynchronous components that do not fit the data-parallel model. Examples of unstructured applications include sparse matrix and n-body problems. Previous research, such as Parti[11] and CHAOS[13], has concentrated on extending the array-based data-parallel model to handle structured irregular algorithms. For unstructured irregular applications, however, the appropriate language abstractions, compiler technology, and runtime techniques have yet to be discovered.

In this paper, we analyze, under a systematic framework, implementations of a representative set of algorithms— Blocked Sparse Cholesky (BSC)[20], Barnes-Hut[3], and EM3D[10]— on Tempest/Blizzard[18], a platform that supports both shared memory and message passing. Using our framework and corroborating experiments, we isolate a set of abstractions that allows easy and efficient expression of our benchmarks. The philosophy behind this set is to provide, for each component of a parallel language, mechanisms that support user control, along with good default behavior. Our contributions are the following: a framework for the evaluation of abstractions, a set of recommendations for language support for irregular applications, and an analysis of the ability of current languages to support them.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Agarwal et al. The MIT Alewife machine. In Proceedings of Workshop on Scalable Shared Memory Multiprocessors, 1991.

    Google Scholar 

  2. H. Bal and F. Kaashoek. Object distribution in Orca using compile-time and runtime techniques. In OOPSLA, Sept. 1993.

    Google Scholar 

  3. J. Barnes and P. Hut. A hierarchical O(N log N) force calculation algorithm. Nature, pages 446–449, Dec. 1986.

    Google Scholar 

  4. C. Leiserson et al. The network architecture of the connection machine CM-5. In Symposium on Parallel and Distributed Algorithms, pages 272–285, June 1992.

    Google Scholar 

  5. M. Carlisle and A. Rogers. Software caching and computation migration in olden. Principles and Practice of Parallel Programming, July 1995.

    Google Scholar 

  6. R. Chandra, A. Gupta, and J. Hennessy. Data locality and load balancing in COOL. In Principles and Practice of parallel programming, May 1993.

    Google Scholar 

  7. S. Chandra, B. Richards, and J. Larus. Teapot: Language support for writing memory coherence protocls. Technical Report TR 1291, Computer Science Department, University of Wisconsin, Madison, WI, Oct. 1995.

    Google Scholar 

  8. M. Chandy and C. Kesselman. A declarative, concurrent object oriented programming notation. Technical Report CS-92-01, California Institute of Technology, Pasadena, Ca, 1992.

    Google Scholar 

  9. A. Chien, V. Karamcheti, and J. Pleyvak. The concert system — compiler and runtime support for efficient, fine-grained concurrent object-oriented programs. Technical Report UIUCDCS-R-93-1815, Dept of Computer Science, University of Illinois(UC), 1993.

    Google Scholar 

  10. D. Culler et al. Parallel programming in Split-C. In Proceedings of Supercomputing '93, pages 262–273, Nov. 1993.

    Google Scholar 

  11. R. Das, M. Uysal, J. Saltz, and Y.-S. Hwang. Communication optimizations for irregular scientific computations on distributed memory architectures. Technical Report CS-TR-3163, University of Maryland, Oct. 1993.

    Google Scholar 

  12. B. Falsafi, A. Lebeck, S. Reinhardt, I. Schoinas, M. Hill, J. Larus, A. Rogers, and D. Wood. Application-specific protocols for user-level shared memory. In Proceedings of Supercomputing '94, pages 380–389, Nov. 1994.

    Google Scholar 

  13. Y.-S. Hwang, B. Moon, S. Sharma, R. Ponnuswamy, R. Das, and J. Saltz. Runtime and language support for compiling adaptive irregular programs on distributed memory machines. Software — Practice and Experience, 25, June 1995.

    Google Scholar 

  14. J. Kuskin et al. The Stanford FLASH multiprocessor. In Proceedings of the 21st Annual International Symposium on Computer Architecture, pages 302–313, Apr. 1994.

    Google Scholar 

  15. M. Blumrich et al. Virtual memory mapped network interface for the SHRIMP multicomputer. In Proceedings of the 21st Annual International Symposium on Computer Architecture, pages 142–153, Apr. 1994.

    Google Scholar 

  16. J. M. Mellor-Crummey and M. L. Scott. Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Transactions on Computer Systems, 9(1):21–65, Feb. 1991.

    Google Scholar 

  17. R. S. Nikhil. Cid: A parallel, shared-memory C for distributed-memory machines. In Languages and Compilers for Parallel Computing, pages 376–390, Aug. 1994.

    Google Scholar 

  18. S. Reinhardt, J. Larus, and D. Wood. Tempest and Typhoon: user-level shared memory. In Proceedings of the 21st Annual International Symposium on Computer Architecture, Apr. 1994.

    Google Scholar 

  19. M. Rinard. The design, implementation and evaluation of Jade: a portable, implicitly parallel programming language. PhD thesis, Stanford University, Aug. 1994.

    Google Scholar 

  20. E. Rothberg. Exploiting the memory hierarchy in sequential and sparse Cholesky factorization. PhD thesis, Stanford University Department of Computer Science, Jan. 1993.

    Google Scholar 

  21. I. Schoinas, B. Falsafi, A. Lebeck, S. Reinhardt, J. Larus, and D. Wood. Fine-grain access control for distributed shared memory. In Conference on Architectural Support for Programming Languages and Operating Systems, pages 297–307, Nov. 1994.

    Google Scholar 

  22. J. P. Singh, J. L. Hennessy, and A. Gupta. Implications of hierarchical n-body methods for multiprocessor architecture. ACM Transactions on Computer Systems, May 1995.

    Google Scholar 

  23. J. P. Singh, C. Holt, T. Totsuka, A. Gupta, and J. L. Hennessy. Load balancing and data locality in adaptive hierarchical n-body methods: Barnes-hut, fast multipole, and radiosity. Journal of Parallel and Distributed Computing, June 1995.

    Google Scholar 

  24. T. von Eicken, D. Culler, S. Goldstein, and K. Schauser. Active messages: a mechanism for integrated commmunication and computing. In Proceedings of the International Symposium on Computer Architecture, pages 256–266, May 1992.

    Google Scholar 

  25. K. Yelick, S. Chakrabarti, E. Deprit, J. Jones, A. Krishnamurthy, and C.-P. Wen. Parallel data structures for symbolic computation. In Workshop on Parallel Symbolic Languages and Systems, Oct. 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takayasu Ito Robert H. Halstead Jr. Christian Queinnec

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Raghavachari, M., Rogers, A. (1996). Understanding language support for irregular parallelism. In: Ito, T., Halstead, R.H., Queinnec, C. (eds) Parallel Symbolic Languages and Systems. PSLS 1995. Lecture Notes in Computer Science, vol 1068. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0023061

Download citation

  • DOI: https://doi.org/10.1007/BFb0023061

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61143-1

  • Online ISBN: 978-3-540-68332-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics