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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
M. Abbott, T. Altenkirch, and N. Ghani, “Categories of containers”, in Proc. FOSSACS’03, vol. 2620 of LNCS, Springer, 2003, pp. 23–38.
O. Beckmann, “Interprocedural optimisation of regular parallel computations at runtime”, PhD thesis, Imperial College, London, Jan. 2001.
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.
G. E. Blelloch, “Nesl: A nested data-parallel language (3.1)”, Carnegie Mellon Univ., Tech. Rep. CMU-CS-95-170, Sept. 1995.
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.
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.
M. I. Cole, Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.
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.
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.
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.
I. Foster and C. Kesselmann, The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann Publishers, 1999.
S. Gorlatch, “Send-receive considered harmful”, ACM Transactions on Programming Languages and Systems, vol. 26, no. 1, pp. 47–56, 2004.
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.
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.
J. Holmerin and B. Lisper, “Development of parallel algorithms in Data Field Haskell”, Proc. Euro-Par’00, vol. 1900 of LNCS, Springer, 2000.
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.
C. B. Jay and P. A. Steckler, “The functional imperative: shape!”, in Proc. ESOP’98, vol. 1381 of LNCS, Springer, 1998, pp. 139–53.
C.B. Jay, “A semantics for shape”, Science of. Computer Programming, vol. 25, no. 2-3, pp. 251–283, 1995.
G. Keller and M. M. T. Chakravarty, “Flattening trees”, in Proc. Euro-Par’98 Parallel Processing, vol. 1470 of LNCS, 1998, pp. 709-719.
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.
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.
H. Kuchen, “A skeleton library”, in Proc. Euro-Par’02 Parallel Processing, vol. 2400 of LNCS, Springer, Aug. 2002, pp. 620–629.
R. Leshchinskiy, “Higher-order nested data parallelism: semantics and implementation”, PhD thesis, Technical Univ. of Berlin, Dec. 2005.
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.
T. Nitsche, “Shapeliness analysis of functional programs with algebraic data types”, Science of Computer Programming, pp. 225–252, 2000.
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.
T. Nitsche, “Deriving and scheduling communication operations for generic skeleton implementations”, Parallel Processing Letters, vol. 15, no. 3, pp. 337–352, Sep. 2005.
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.
T. Nitsche, “Coordinating computation with communication”, in Proc. COORDINATION 2006, vol. 4038 of LNCS, Springer, Jun. 2006, pp. 212–227.
F. A. Rabhi and S. Gorlatch, Ed., Patterns and Skeletons for Parallel and Distributed Computing, Springer, 2003.
M. Snir, S. W. Otto, S. Huss-Ledermann, D. W. Walker, and J. Dongarra, MPI – The Complete Reference, MIT Press, 1998.
E. Violard, “Typechecking of PEI expressions”, in Proc. Euro-Par’97 Parallel Processing, vol. 1300 of LNCS, Springer, 1997, pp. 521–529.
Editor information
Editors and Affiliations
Rights 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)
