Decoupling Computation and Data Scheduling in Distributed Data-Intensive Applications
HPDC '02 Proceedings of the 11th IEEE International Symposium on High Performance Distributed Computing
BOINC: A System for Public-Resource Computing and Storage
GRID '04 Proceedings of the 5th IEEE/ACM International Workshop on Grid Computing
ACM SIGPLAN Notices
Performance Evaluation Model for Scheduling in Global Computing Systems
International Journal of High Performance Computing Applications
The Anatomy of the Grid: Enabling Scalable Virtual Organizations
International Journal of High Performance Computing Applications
The Computational and Storage Potential of Volunteer Computing
CCGRID '06 Proceedings of the Sixth IEEE International Symposium on Cluster Computing and the Grid
Multi-environment software testing on the grid
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Single-threaded specification of process-interaction formalism in Java
WSC '04 Proceedings of the 36th conference on Winter simulation
GangSim: a simulator for grid scheduling studies
CCGRID '05 Proceedings of the Fifth IEEE International Symposium on Cluster Computing and the Grid (CCGrid'05) - Volume 2 - Volume 02
Bridging the High Performance Computing Gap: the OurGrid Experience
CCGRID '07 Proceedings of the Seventh IEEE International Symposium on Cluster Computing and the Grid
Efficient simulation of large-scale p2p networks: packet-level vs. flow-level simulations
Proceedings of the second workshop on Use of P2P, GRID and agents for the development of content networks
Scheduling data-intensive bags of tasks in P2P grids with bittorrent-enabled data distribution
Proceedings of the second workshop on Use of P2P, GRID and agents for the development of content networks
Relative autonomous accounting for peer-to-peer Grids: Research Articles
Concurrency and Computation: Practice & Experience - Middleware for Grid Computing: A “Possible Future”
Improving Automated Testing of Multi-threaded Software
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Grid scheduling simulations with GSSIM
ICPADS '07 Proceedings of the 13th International Conference on Parallel and Distributed Systems - Volume 02
SimGrid: A Generic Framework for Large-Scale Distributed Experiments
UKSIM '08 Proceedings of the Tenth International Conference on Computer Modeling and Simulation
Skoll: A Process and Infrastructure for Distributed Continuous Quality Assurance
IEEE Transactions on Software Engineering
Detecting potential deadlocks with static analysis and run-time monitoring
HVC'05 Proceedings of the First Haifa international conference on Hardware and Software Verification and Testing
Hi-index | 0.00 |
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 [7]. 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 [5, 4] and Desktop Grids [22], and possibly Globus-based Grids [3]).