[en] P2P Grids are Grids organized into P2P networks where participant exchange computing time so as to complete computational tasks. Evaluating the performance of scheduling algorithms enables one to deploy those that are efficient. Performance is often evaluated experimentally or through simulation because these algorithms (typically heuristics) are too complex to model analytically. Testing the implementation of P2P Grid middleware before it is deployed is also important: Reproducing configurations or conditions that lead to unexpected outcomes is thus valuable.
A P2P Grid environment exhibits multiple sources of failure and is typically dynamic and uncontrollable. Reproducing even basic behavior of Grid nodes in a controllable and repeatable manner is thus exceedingly difficult. Such lack of control over the environment is a major challenge in the software engineering of P2P Grid middleware. Simulators have been proposed to evaluate the performance of scheduling algorithms, but are often limited in scope, reusability and accuracy, i.e. they rely on simplified models.
We introduce a software engineering pattern - that we call code once, deploy twice - to both reduce the distance between simulated and implemented algorithms and reproduce, at will, Grid configurations and environments: A simulator implementation of a Grid architecture is built by virtualizing its middleware implementation. An immediate benefit is that most of the code can be reused between both implementations; only communications between Grid nodes, multithreading within Grid nodes and actual task execution are coded differently. As a derived benefit, most of the code of the middleware can be tested within the controlled environment of the simulator, before it is deployed as-is. Another benefit is high simulation accuracy. We describe the implementation of a P2P Grid following the code once, deploy twice pattern, that we believe is also relevant to other Grid types (certainly Volunteer Grids and Desktop Grids, and possibly Globus-based Grids).
Disciplines :
Computer science
Author, co-author :
Briquet, Cyril ; Université de Liège - ULiège > Dép. d'électric., électron. et informat. (Inst.Montefiore) > Informatique (ingénierie du logiciel et algorithmique)
de Marneffe, Pierre-Arnoul ; Université de Liège - ULiège > Dép. d'électric., électron. et informat. (Inst.Montefiore) > Informatique (ingénierie du logiciel et algorithmique)
Language :
English
Title :
Reproducible Testing of Distributed Software with Middleware Virtualization and Simulation
Publication date :
20 June 2008
Event name :
ISSTA, PADTAD Workshop
Event organizer :
ACM
Event place :
Seattle, United States - Washington
Event date :
du 20 juillet 2008 au 21 juillet 2008
Audience :
International
Main work title :
Proceedings of the 6th Workshop on Parallel And Distributed systems: Testing, Analysis, and Debugging
R. Agarwal, L. Wang, and S. D. Stoller. Detecting Potential Deadlocks with Static analysis and Run-time Monitoring. In Proc. PADTAD, Verification Conference Workshops, Haifa, Israel, November 2005.
K. Aida, A. Takefusa, H. Nakada, S. Matsuoka, S. Sekiguchi, and U. Nagashima. Performance Evaluation Model for Scheduling in Global Computing Systems. In Int. J. High Performance Computing Applications, volume 14, pages 268-279. SAGE, 2000.
K. Amin, G. von Laszewski, and A. Mikler. Grid Computing for the Masses: An Overview. In Proc. Workshop on Grid and Cooperative Computing, Shangai, China, 2003.
D. Anderson and G. Fedak. The Computational and Storage Potential of Volunteer Computing. In Proc. CCGRID 2006, Singapore, 2006.
D. P. Anderson. BOINC: A System for Public-Resource Computing and Storage. In Proc. Grid, Pittsburgh, PA, USA, November 2004.
J. Banks, J. Carson, B. Nelson, and D. Nicol. Discrete-Event System Simulation. Prentice Hall, 3rd edition, 2000.
F. Brasileiro, E. Araújo, W. Voorsluys, M. Oliveira, and F. Figueiredo. Bridging the High Performance Computing Gap: the OurGrid Experience. In Proc. LAGrid, CCGrid Workshops, Rio de Janeiro, Brazil, May 2007.
C. Briquet, X. Dalem, S. Jodogne, and P.-A. de Marneffe. Scheduling Data-Intensive Bags of Tasks in P2P Grids with BitTorrent-enabled Data Distribution. In Proc. UPGRADE-CN'07, HPDC Workshops, Monterey Bay, CA, USA, June 2007.
C. Briquet and P.-A. de Marneffe. Description of a Lightweight Bartering Grid Architecture. In Proc. Cracow Grid Workshop, Cracow, Poland, 2006.
R. Buyya and M. Murshed. GridSim: A Toolkit for the Modeling and Simulation of Distributed Resource Management and Scheduling for Grid Computing. In Journal of Concurrency and Computation: Practice and Experience. Wiley Press, USA, 2002.
H. Casanova, A. Legrand, and M. Quinson. SimGrid: a Generic Framework for Large-Scale Distributed Experimentations. In Proc. UKSim, Cambridge, UK, April 2008.
W. Cirne, F. Brasileiro, N. Andrade, L. B. Costa, A. Andrade, R. Novaes, and M. Mowbray. Labs of the World, Unite!!! In J. Grid Computing. Springer, 2006.
A. Dantas, W. Cirne, and F. Brasileiro. Improving Automated Testing of Multi-threaded Software. In Proc. Int. Conf. Software Testing, Verification and Validation, Lillehammer, Norway, April 2008.
A. Duarte, F. Wagner, Gustavo Brasileiro, and W. Cirne. Multi-Environment Software Testing on the Grid. In Proc. PADTAD, ISSTA Workshops, London, UK, July 2006.
C. Dumitrescu and I. Foster. GangSim: A Simulator for Grid Scheduling Studies. In Proc. CCGrid, Cardiff, UK, 2005.
K. Eger, T. Hoßfeld, A. Binzenhöfer, and G. Kunzmann. Simulation of Large-Scale P2P Networks: Packet-level vs. Flow-level Simulations. In Proc. UPGRADE-CN'07, HPDC Workshops, 2007.
I. Foster, C. Kesselman, and S. Tuecke. The Anatomy of the Grid: Enabling Scalable Virtual Organizations. Int. J. Supercomputer App., 15(3), 2001.
D. Hovemeyer and W. Pugh. Finding Bugs is Easy. In SIGPLAN Notices, volume 39. ACM, December 2004.
P. H. Jacobs and A. Verbraeck. Single-Threaded Specification of Process-Interaction Formalism in Java. In Proc. Winter Simulation Conference, Washington, DC, USA, 2004.
K. Kurowski, J. Nabrzyski, A. Oleksiak, and J. Weglarz. Grid Scheduling Simulations with GSSIM. In Proc. 3rd International Workshop on Scheduling and Resource Management for Parallel and Distributed Systems, Hsinchu, Taiwan, December 2007.
A. Legrand, M. Quinson, K. Fujiwara, and H. Casanova. The SimGrid Project - Simulation and Deployment of Distributed Applications. In Proc. HPDC, Paris, France, May 2006.
R. Olejnik, B. Toursel, M. Tudruj, and E. Laskowski. DG-ADAJ: a Java Computing Platform for Desktop Grid. In Proc. Cracow Grid Workshop, Cracow, Poland, 2005.
A. Porter, A. Memon, C. Yilmaz, D. C. Schmidt, and B. Natarajan. Skoll: A Process and Infrastructure for Distributed Continuous Quality Assurance. In IEEE Transactions on Software Engineering, volume 33. 2007.
M. Quinson. GRAS: a Research and Development Framework for Grid and P2P Infrastructures. In Proc. Parallel and Distributed Computing and Systems, Dallas, TX, USA, November 2006.
K. Ranganathan and I. Foster. Decoupling Computation and Data Scheduling in Distributed Data-Intensive Applications. In Proc. HPDC, Edinburgh, Scotland, UK, 2002.
R. Santos, A. Andrade, W. Cirne, F. Brasileiro, and N. Andrade. Relative Autonomous Accounting for Peer-to-Peer Grids. In Concurrency and Computation: Practice and Experience, volume 19. Wiley, 2007.