Skip to main content

Separation of Shape and Data

  • Conference paper

Abstract

In parallel and distributes systems we have to consider aspects of communication, synchronization and data movement besides the actual algorithmic solution. In order to enable the clear separation of these aspects [29] we have to separate the structure or shape of data structures from the actual data elements themselves. While the latter can be used to describe algorithmic aspects, the former enables us to derive the communication [27].In this paper we formalize the notion of shape and data elements and how they can be separated as well as used to reconstruct a valid data structure again for arbitrary container types, i.e. parameterized, nested algebraic data types and arrays. The shape function removes the data elements from the container type and replaces them by a dummy element * (or alternatively, their identifier). The data function extracts the list of data elements contained in the data structure; while a re_cover function can be used to reconstruct a data structure from its shape and a consistent list of data elements. All these functions can be characterized as special cases of a general traversal function operating on the data structure or its shape. We have used this as the semantical basis for handling overlapping data distributions not only over arrays as in commonly used approaches but over arbitrary (container) types.

Keywords

  • Data Element
  • Type List
  • Shape Vector
  • Container Type
  • Algorithmic Skeleton

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (Canada)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (Canada)
  • 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Abbott, T. Altenkirch, and N. Ghani, “Categories of containers”, in Proc. FOSSACS’03, vol. 2620 of LNCS, Springer, 2003, pp. 23–38.

    Google Scholar 

  2. O. Beckmann, “Interprocedural optimisation of regular parallel computations at runtime”, PhD thesis, Imperial College, London, Jan. 2001.

    Google Scholar 

  3. A. Benoit, M, Cole, S. Gilmore, and J. Hillston. “Flexible skeletal programming with eSkel”, in Proc. Euro-Par’05 Parallel Processing, vol. 3648 of LNCS, Springer, 2005, pp. 761–770.

    Google Scholar 

  4. G. E. Blelloch, “Nesl: A nested data-parallel language (3.1)”, Carnegie Mellon Univ., Tech. Rep. CMU-CS-95-170, Sept. 1995.

    Google Scholar 

  5. M. M. T. Chakravarty, G. Keller, R. Leshchinskiy, and W. Pfannenstiel, “Nepal - nested data parallelism in Haskell”, in Proc. Euro-Par’01 Parallel Processing, vol. 2150 of LNCS, Springer, 2001, pp. 524–534.

    Google Scholar 

  6. B. L. Chamberlain, S.-E. Choi, S. J. Deitz, and L. Snyder, “The high-level parallel language ZPL improves productivity and performance”, in Proc. IEEE International Workshop on Productivity and Performance in High-End Computing, 2004.

    Google Scholar 

  7. M. I. Cole, Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.

    Google Scholar 

  8. M. I. Cole, “Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming”, Parallel Computing, vol. 30, no. 3, pp.389–406, 2004.

    CrossRef  Google Scholar 

  9. J. Darlington, Y. Guo, H.W. To, and J. Yang, “Functional skeletons for parallel coordination”, in Proc. Euro-Par’95, vol. 966 of LNCS, 1995.

    Google Scholar 

  10. S. J. Deitz, B. L. Chamberlain, and L. Snyder, “Abstractions for dnamic data distribution”, inProc. IEEE Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004.

    Google Scholar 

  11. I. Foster and C. Kesselmann, The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann Publishers, 1999.

    Google Scholar 

  12. S. Gorlatch, “Send-receive considered harmful”, ACM Transactions on Programming Languages and Systems, vol. 26, no. 1, pp. 47–56, 2004.

    CrossRef  Google Scholar 

  13. C. Grelck and S.-B. Scholz, “SAC – from high-level programming with arrays to efficient parallel execution”, Parallel Processing Letters, vol. 13, no. 3, pp. 401–412, 2003.

    CrossRef  Google Scholar 

  14. C. Grelck and S.-B. Scholz, “SAC – a functional array language for efficient multi-threaded execution”, International Journal of Parallel Programming, vol. 34, no. 4, pp. 383–427, Aug. 2006.

    CrossRef  MATH  Google Scholar 

  15. J. Holmerin and B. Lisper, “Development of parallel algorithms in Data Field Haskell”, Proc. Euro-Par’00, vol. 1900 of LNCS, Springer, 2000.

    Google Scholar 

  16. C. B. Jay, “Costing parallel programs as a function of shapes”, Science of Computer Programming, vol. 37, no. 1–3, pp. 207–224, May 2000.

    CrossRef  MATH  Google Scholar 

  17. C. B. Jay and P. A. Steckler, “The functional imperative: shape!”, in Proc. ESOP’98, vol. 1381 of LNCS, Springer, 1998, pp. 139–53.

    Google Scholar 

  18. C.B. Jay, “A semantics for shape”, Science of. Computer Programming, vol. 25, no. 2-3, pp. 251–283, 1995.

    CrossRef  MATH  Google Scholar 

  19. G. Keller and M. M. T. Chakravarty, “Flattening trees”, in Proc. Euro-Par’98 Parallel Processing, vol. 1470 of LNCS, 1998, pp. 709-719.

    Google Scholar 

  20. G. Keller and M. Simons, “A calculational approach to nested data parallelism in functional languages”, in Proc. Asian Computing Science Conf., vol. 1179 of LNCS, Springer, Dec. 1996, pp. 234–243.

    Google Scholar 

  21. P. H. J. Kelly and O. Beckmann, “Generative and adaptive methods in performance programming”, Parallel Processing Letters, vol. 15, no. 3, pp. 239–256, Sep. 2005.

    Google Scholar 

  22. H. Kuchen, “A skeleton library”, in Proc. Euro-Par’02 Parallel Processing, vol. 2400 of LNCS, Springer, Aug. 2002, pp. 620–629.

    Google Scholar 

  23. R. Leshchinskiy, “Higher-order nested data parallelism: semantics and implementation”, PhD thesis, Technical Univ. of Berlin, Dec. 2005.

    Google Scholar 

  24. E. Moggi, G. Belle, and C. B. Jay, “Monads, shapely functors and traversals”, in Proc. 8th Conf. on Category Theory and Computer Science (CTCS’99), vol. 24 of Electronic LNCS, Elsevier, 1999, pp. 265–286.

    Google Scholar 

  25. T. Nitsche, “Shapeliness analysis of functional programs with algebraic data types”, Science of Computer Programming, pp. 225–252, 2000.

    Google Scholar 

  26. T. Nitsche, “Secure communication in distributed environments – Ensuring consistency of communication structures by shapeliness analysis”, presented at the Spring School on Security, Marseille, April 2005.

    Google Scholar 

  27. T. Nitsche, “Deriving and scheduling communication operations for generic skeleton implementations”, Parallel Processing Letters, vol. 15, no. 3, pp. 337–352, Sep. 2005.

    Google Scholar 

  28. T. Nitsche, “Data distribution and communication management for parallel systems”, PhD thesis, Dept. of Comp. Sci. and Electr. Eng., Technical Univ. of Berlin, Dec. 2005.

    Google Scholar 

  29. T. Nitsche, “Coordinating computation with communication”, in Proc. COORDINATION 2006, vol. 4038 of LNCS, Springer, Jun. 2006, pp. 212–227.

    Google Scholar 

  30. F. A. Rabhi and S. Gorlatch, Ed., Patterns and Skeletons for Parallel and Distributed Computing, Springer, 2003.

    Google Scholar 

  31. M. Snir, S. W. Otto, S. Huss-Ledermann, D. W. Walker, and J. Dongarra, MPI – The Complete Reference, MIT Press, 1998.

    Google Scholar 

  32. E. Violard, “Typechecking of PEI expressions”, in Proc. Euro-Par’97 Parallel Processing, vol. 1300 of LNCS, Springer, 1997, pp. 521–529.

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2007 Springer

About this paper

Cite this paper

Nitsche, T. (2007). Separation of Shape and Data. In: Sobh, T. (eds) Innovations and Advanced Techniques in Computer and Information Sciences and Engineering. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-6268-1_81

Download citation

  • DOI: https://doi.org/10.1007/978-1-4020-6268-1_81

  • Publisher Name: Springer, Dordrecht

  • Print ISBN: 978-1-4020-6267-4

  • Online ISBN: 978-1-4020-6268-1

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics