A transparent non-invasive file data model for algorithmic skeletons

A file data model for algorithmic skeletons is proposed, focusing on transparency and efficiency. Algorithmic skeletons correspond to a high-level programming model that takes advantage of nestable programming patterns to hide the complexity of parallel/distributed applications. Transparency is achieved using a workspace factory abstraction and the proxy pattern to intercept calls on File type objects. Thus allowing programmers to continue using their accustomed programming libraries, without having the burden of explicitly introducing non-functional code to deal with the distribution aspects of their data. A hybrid file fetching strategy is proposed (instead of lazy or eager), that takes advantage of annotated functions and pipelined multithreaded interpreters to transfer files in-advance or on-demand. Experimentally, using a BLAST skeleton application, it is shown that the hybrid strategy provides a good tradeoff between bandwidth usage and CPU idle time.

[1]  M. Vanneschi,et al.  High level Grid programming with ASSIST , 2006 .

[2]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[3]  Dietmar W. Erwin,et al.  UNICORE—a Grid computing environment , 2002, Concurr. Comput. Pract. Exp..

[4]  Denis Caromel,et al.  Type Safe Algorithmic Skeletons , 2008, 16th Euromicro Conference on Parallel, Distributed and Network-Based Processing (PDP 2008).

[5]  Denis Caromel,et al.  Interactive and descriptor-based deployment of object-oriented grid applications , 2002, Proceedings 11th IEEE International Symposium on High Performance Distributed Computing.

[6]  Joseph Gil,et al.  Better Construction with Factories , 2007, J. Object Technol..

[7]  Herbert Kuchen,et al.  Higher-order functions and partial applications for a C++ skeleton library , 2002, JGI '02.

[8]  Aldinucci Marco,et al.  Fault-Tolerant Data Sharing for High-level Grid Programming: A Hierarchical Storage Architecture , 2006 .

[9]  Denis Caromel,et al.  ProActive: an integrated platform for programming and running applications on Grids and P2P systems , 2006 .

[10]  Marco Danelutto,et al.  An advanced environment supporting structured parallel programming in Java , 2003, Future Gener. Comput. Syst..

[11]  Stephen Gilmore,et al.  Flexible Skeletal Programming with eSkel , 2005, Euro-Par.

[12]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[13]  Tzilla Elrad,et al.  Extending the object model to provide explicit support for crosscutting concerns , 2002, Softw. Pract. Exp..

[14]  Patrizio Dazzi,et al.  Scalable Computing: Practice and Experience WSSP, Warsaw, Poland, 2007. To appear. MUSKEL: AN EXPANDABLE SKELETON ENVIRONMENT∗ , 2007 .

[15]  Denis Caromel,et al.  Fine Tuning Algorithmic Skeletons , 2007, Euro-Par.

[16]  Éric Tanter,et al.  A Versatile Kernel for Distributed AOP , 2006, DAIS.

[17]  Jou-Ming Chang,et al.  Parallel construction of optimal independent spanning trees on hypercubes , 2007, Parallel Comput..

[18]  Sophia Drossopoulou,et al.  Fickle : Dynamic Object Re-classification , 2001, ECOOP.

[19]  Gregor von Laszewski,et al.  A Java commodity grid kit , 2001, Concurr. Comput. Pract. Exp..

[20]  Largo B. Pontecorvo,et al.  Optimization Techniques for Implementing Parallel Skeletons in Grid Environments , 2004 .

[21]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[22]  Sophia Drossopoulou,et al.  More dynamic object reclassification: Fickle∥ , 2002, TOPL.

[23]  Herbert Kuchen,et al.  Features from functional programming for a C++ skeleton library , 2005, Concurr. Pract. Exp..

[24]  Kaizar Amin,et al.  An Overview of Grid File Transfer Patterns and Their Implementation in the Java CoG Kit , 2004, Neural Parallel Sci. Comput..

[25]  Patrizio Dazzi,et al.  Joint Structured/Unstructured Parallelism Exploitation in muskel , 2006, International Conference on Computational Science.

[26]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[27]  Marco Danelutto,et al.  Lithium: A Structured Parallel Programming Environment in Java , 2002, International Conference on Computational Science.

[28]  João Luís Sobral,et al.  JaSkel: a Java skeleton-based framework for structured cluster and grid computing , 2006, Sixth IEEE International Symposium on Cluster Computing and the Grid (CCGRID'06).

[29]  Marco Danelutto,et al.  Towards a Distributed Scalable Data Service for the Grid , 2005, PARCO.

[30]  Denis Caromel,et al.  Grid File Transfer During Deployment, Execution, and Retrieval , 2006, OTM Conferences.

[31]  Joseph Gil,et al.  AspectJ2EE = AOP + J2EE: Towards an aspect based, programmable and extensible middleware framework , 2004 .

[32]  Laurence Duchien,et al.  JAC: an aspect‐based distributed dynamic framework , 2004, Softw. Pract. Exp..

[33]  George Horatiu Botorog,et al.  Efficient Parallel Programming with Algorithmic Skeletons , 1996, Euro-Par, Vol. I.

[34]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[35]  E. Myers,et al.  Basic local alignment search tool. , 1990, Journal of molecular biology.

[36]  Gregor von Laszewski,et al.  A File Transfer Component for Grids , 2003, PDPTA.

[37]  Herbert Kuchen,et al.  Features from functional programming for a C++ skeleton library: Research Articles , 2005 .

[38]  Massimo Torquati,et al.  Accelerating Apache Farms Through Ad-HOC Distributed Scalable Object Repository , 2004, Euro-Par.

[39]  Éric Tanter On dynamically-scoped crosscutting mechanisms , 2007, SIGP.

[40]  Steffen Priebe,et al.  Dynamic Task Generation and Transformation Within a Nestable Workpool Skeleton , 2006, Euro-Par.