Claud: Coordination, Locality And Universal Distribution

Due to the increasing heterogeneity of parallel and distributed systems, coordination of data (placement) and tasks (scheduling) becomes increasingly complex. Many traditional solutions do not take into account the details of modern system topologies and consequently experience unacceptable performance penalties with modern hierarchical interconnect technologies and memory architectures. Others offload the coordination of tasks and data to the programmer by requiring explicit information about thread and data creation and placement. While allowing full control of the system, explicit coordination severely decreases programming productivity and disallows implementing best practices in a reusable layer. In this paper we introduce Claud, a locality-preserving latency-aware hierarchical object space. Claud is based on the understanding that productivity-oriented programmers prefer simple programming constructs for data access (like key-value stores) and task coordination (like parallel loops). Instead of providing explicit facilities for coordination, our approach places and moves data and tasks implicitly based on a detailed topology model of the system relying on best performance practices like hierarchical task queues, concurrent data structures, and similarity-based placement.

[1]  Fabio Vitali,et al.  PageSpace: An Architecture to Coordinate Distributed Applications on the Web , 1996, Comput. Networks.

[2]  Antony I. T. Rowstron,et al.  WCL: A co-ordination language for geographically distributed agents , 1998, World Wide Web.

[3]  Stéphan Jourdan,et al.  Haswell: The Fourth-Generation Intel Core Processor , 2014, IEEE Micro.

[4]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[5]  Antony I. T. Rowstron,et al.  C/sup 2/AS: a system supporting distributed Web applications composed of collaborating agents , 1997, Proceedings of IEEE 6th Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises.

[6]  Paolo Ciancarini,et al.  Jada - Coordination and Communication for Java Agents , 1996, Mobile Object Systems.

[7]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[8]  Amy L. Murphy,et al.  LIME: Linda meets mobility , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[9]  Jens Palsberg,et al.  Concurrent Collections , 2010 .

[10]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[11]  Yi Jiang,et al.  DTuples: A Distributed Hash Table based Tuple Space Service for Distributed Coordination , 2006, 2006 Fifth International Conference on Grid and Cooperative Computing (GCC'06).

[12]  Ronaldo Menezes,et al.  A new approach to scalable Linda-systems based on swarms , 2003, SAC '03.

[13]  Alistair Kenneth Atkinson,et al.  Tupleware: A Distributed Tuple Space for Cluster Computing , 2008, 2008 Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies.