skip to main content
research-article
Free Access

Satin: A high-level and efficient grid programming model

Published:16 March 2010Publication History
Skip Abstract Section

Abstract

Computational grids have an enormous potential to provide compute power. However, this power remains largely unexploited today for most applications, except trivially parallel programs. Developing parallel grid applications simply is too difficult. Grids introduce several problems not encountered before, mainly due to the highly heterogeneous and dynamic computing and networking environment. Furthermore, failures occur frequently, and resources may be claimed by higher-priority jobs at any time.

In this article, we solve these problems for an important class of applications: divide-and-conquer. We introduce a system called Satin that simplifies the development of parallel grid applications by providing a rich high-level programming model that completely hides communication. All grid issues are transparently handled in the runtime system, not by the programmer. Satin's programming model is based on Java, features spawn-sync primitives and shared objects, and uses asynchronous exceptions and an abort mechanism to support speculative parallelism.

To allow an efficient implementation, Satin consistently exploits the idea that grids are hierarchically structured. Dynamic load-balancing is done with a novel cluster-aware scheduling algorithm that hides the long wide-area latencies by overlapping them with useful local work. Satin's shared object model lets the application define the consistency model it needs. If an application needs only loose consistency, it does not have to pay high performance penalties for wide-area communication and synchronization.

We demonstrate how grid problems such as resource changes and failures can be handled transparently and efficiently. Finally, we show that adaptivity is important in grids. Satin can increase performance considerably by adding and removing compute resources automatically, based on the application's requirements and the utilization of the machines and networks in the grid.

Using an extensive evaluation on real grids with up to 960 cores, we demonstrate that it is possible to provide a simple high-level programming model for divide-and-conquer applications, while achieving excellent performance on grids. At the same time, we show that the divide-and-conquer model scales better on large systems than the master-worker approach, since it has no single central bottleneck.

References

  1. Adriaans, P. and Jacobs, C. 2006. Using MDL for grammar induction. In 8th International Colloquium on Grammatical Inference (ICGI'06). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Arnold, D., Agrawal, S., Blackford, S., Dongarra, J., Miller, M., Seymour, K., Sagi, K., Shi, Z., and Vadhiyar, S. 2002. Users' guide to NetSolve V1.4.1. Tech. rep. ICL-UL-02-05, University of Tennessee, Knoxville, TN.Google ScholarGoogle Scholar
  3. Badia, R. M., Labarta, J., Sirvent, R., Perez, J. M., Cela, J. M., and Grima, R. 2003. Programming grid applications with GRID superscalar. J. Grid Comput. 1, 2.Google ScholarGoogle ScholarCross RefCross Ref
  4. Baduel, L., Baude, F., Caromel, D., Contes, A., Huet, F., Morel, M., and Quilici, R. 2006. Grid Computing: Software Environments and Tools. Springer.Google ScholarGoogle Scholar
  5. Bal, H. E., Bhoedjang, R., Hofman, R., Jacobs, C., Langendoen, K., Ruehl, T., and Kaashoek, M. F. 1998. Performance evaluation of the Orca shared object system. ACM Trans. Comput. Syst. 16, 1, 1--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Baldeschwieler, E. J., Blumofe, R., and Brewer, E. 1996. ATLAS: An infrastructure for global computing. In Proceedings of the 7th ACM SIGOPS European Workshop on System Support for Worldwide Applications. 165--172. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Birrel, A. D. and Nielson, B. J. 1984. Implementing remote procedure calls. ACM Trans. Comput. Syst. 2, 1, 39--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Blackston, D. and Suel, T. 1997. Highly portable and efficient implementations of parallel adaptive N-body methods. In Proceedings of the ACM/IEEE Conference on Supercomputing (SC'97). http://www.supercomp.org. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Blumofe, R. D., Joerg, C. F., Kuszmaul, B. C., Leiserson, C. E., Randall, K. H., and Zhou., Y. 1995. Cilk: An efficient multithreaded runtime system. In Proceedings of the 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'95). 207--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Blumofe, R. D. and Leiserson, C. E. 1994. Scheduling multithreaded computations by work stealing. In Proceedings of the 35th Annual Symposium on Foundations of Computer Science (FOCS'94). 356--368. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Blumofe, R. D. and Lisiecki, P. 1997. Adaptive and reliable parallel computing on networks of workstations. In Proceedings of the USENIX Annual Technical Conference on UNIX and Advanced Computing Systems. 133--147. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Bornemann, M., Nieuwpoort, R. V. v., and Kielmann, T. 2005. MPJ/Ibis: A flexible and efficient message passing platform for java. In Proceedings of EuroPVM/MPI. Lecture Notes in Computer Science, vol. 3666. Springer, 217--224. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Butenhof, D. 1997. Programming with POSIX Threads. Professional Computing. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cappello, F. and Bal, H. 2007. Towards an international computer science grid (keynote paper). In Proceedings of the 7th IEEE International Symposium on Cluster Computing and the Grid (CCGRID'07). 230--237. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Carpenter, B., Getov, V., Judd, G., Skjellum, A., and Fox, G. 2000. MPJ: MPI-Like message passing for Java. Concurr. Pract. Exper. 12, 11, 1019--1038.Google ScholarGoogle ScholarCross RefCross Ref
  16. Chiu, D.-M., Kadansky, M., Provino, J., and Wesley, J. 2000. Experiences in programming a traffic shaper. In Proceedings of the 5th IEEE Symposium on Computers and Communications (ISCC'00). 470--476. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Danaher, J. S., Lee, I.-T. A., and Leiserson, C. E. 2005. The JCilk language for multithreaded computing. In Proceedings of the Synchronization and Concurrency in Object-Oriented Languages (SCOOL).Google ScholarGoogle Scholar
  18. de Carvalho Jr., S. A. and Crochemore, M. The neobio library. http://neobio.sourceforge.net.Google ScholarGoogle Scholar
  19. Eager, D. L., Zahorjan, J., and Lazowska, E. D. 1989. Speedup versus efficiency in parallel systems. IEEE Trans. Comput. 38, 3, 408--423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Eickermann, T., Grund, H., and Henrichs, J. 1999. Performance issues of distributed MPI applicatins in a German gigabit testbed. In Proceedings of the 6th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface. Lecture Notes in Computer Science, vol. 1697. Springer, 3--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Foster, I. 2006. Globus toolkit version 4: Software for service-oriented systems. In Proceedings of the IFIP International Conference on Network and Parallel Computing. Lecture Notes in Computer Science, vol. 3779. Springer, 2--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Foster, I. and Kesselman, C., Eds. 2003. The Grid 2: Blueprint for a New Computing Infrastructure, 2nd ed. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Freisleben, B. and Kielmann, T. 1995. Automated transformation of sequential divide--and--conquer algorithms into parallel programs. Comput. Artif. Int. 14, 6, 579--596.Google ScholarGoogle Scholar
  24. Frigo, M., Leiserson, C. E., and Randall, K. H. 1998. The implementation of the Cilk-5 multithreaded language. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation (PLDI'98). 212--223. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Gabriel, E., Resch, M., Beisel, T., and Keller, R. 1998. Distributed computing in a heterogeneous computing environment. In Proceedings of the 5th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface. Lecture Notes in Computer Science, vol. 1497, Springer, 180--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Goux, J.-P., Kulkarni, S., Yoder, M., and Linderoth, J. 2000. An enabling framework for master-worker applications on the computational grid. In Proceedings of the 9th IEEE International Symposium on High Performance Distributed Computing (HPDC'00). 43--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Graham, R., Shipman, G., Barrett, B., Castain, R., Bosilca, G., and Lumsdaine, A. 2006. Open MPI: A high-performance, heterogeneous MPI. In Proceedings of the IEEE International Conference on Cluster Computing.Google ScholarGoogle Scholar
  28. Gropp, W., Lusk, E., Doss, N., and Skjellum, A. 1996. A high-performance, portable implementation of the MPI message passing interface. Parall. Comput. 22, 6, 789--828. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Huang, C., Zheng, G., Kumar, S., and Kale, L. V. 2006. Performance evaluation of adaptive MPI. In Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'06). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Iwata, S. and Kasai, T. 1994. The Othello game on an n*n board is PSPACE-complete. Theor. Comp. Sci. 123, 123, 329--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Kale, L. V., Kumar, S., and DeSouza, J. 2002. A malleable-job system for timeshared parallel machines. In Proceedings of the 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02). 230--237. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Karonis, N. T., Toonen, B., and Foster, I. 2003. MPICH-G2: A grid-enabled implementation of the message passing interface. J. Parall. Distrib. Comput. 63, 5, 551--563. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Kielmann, T., Hofman, R. F. H., Bal, H. E., Plaat, A., and Bhoedjang, R. A. F. 1999. MagPIe: MPI's collective communication operations for clustered wide area systems. In Proceedings of the 7th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'99). 131--140. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Kishimoto, A. and Schaeffer, J. 2002. Transposition table driven work scheduling in distributed game-tree search. In Proceedings of the 15th Canadian Conference on Artificial Intelligence (AI'02). Lecture Notes in Artificial Intelligence, vol. 2338. Springer, 56--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Kitsuregawa, M. 2007. The info-plosion project. In Proceedings of the IFIP International Conference on Network and Parallel Computing Workshops (NPC'07). IEEE Computer Society, 3--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Lang, K. J., Pearlmutter, B. A., and Price, R. A. 1998. Results of the Abbadingo one DFA learning competition and a new evidence-driven state merging algorithm. V. Honavar and G. Slutzki, Eds. Lecture Notes in Artificial Intelligence, vol. 1433. Springer, 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Lea, D. 2000. A Java Fork/Join Framework. In Proceedings of the ACM Java Grande Conference. 36--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Lee, H.-K., Carpenter, B., Fox, G., and Lim, S. B. 2004. HPJava: Programming support for high-performance grid-enabled applications. Int. J. Parall. Algor. Appl. 19, 2-3, 175--193.Google ScholarGoogle Scholar
  39. Lindholm, T. and Yellin, F. 1999. Java(TM) Virtual Machine Specification, 2nd ed. Prentice Hall PTR. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Maassen, J. and Bal, H. E. 2007. Smartsockets: Solving the connectivity problems in grid computing. In Proceedings of the 16th International Symposium on High-Performance Distributed Computing (HPDC'07). 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Maassen, J., Nieuwpoort, R. V. v., Veldema, R., Bal, H., Kielmann, T., Jacobs, C., and Hofman, R. 2001. Efficient Java RMI for parallel programming. ACM Trans. Program. Lang. Syst. 23, 6, 747--775. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Maassen, J., Seinstra, F., Kemp, R., Drost, N., and Nieuwpoort, R. V. v. 2008. Going nova. The First International Data Challenge for Finding SuperNovae, held in conjunction with IEEE Cluster2008. First prize winner.Google ScholarGoogle Scholar
  43. Marlow, S., Jones, S. L. P., Moran, A., and Reppy, J. H. 2001. Asynchronous exceptions in Haskell. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 274--285. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Mohr, E., Kranz, D., and Halstead, R. 1990. Lazy task creation: A technique for increasing the granularity of parallel programs. In Proceedings of the ACM Conference on Lisp and Functional Programming. 185--197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. MPIF, M. P. I. F. 1996. MPI-2: Extensions to the message-passing interface. Tech. rep. University of Tennessee, Knoxville.Google ScholarGoogle Scholar
  46. Neary, M. O. and Cappello, P. 2002. Advanced eager scheduling for Java-based adaptively parallel computing. In Proceedings of the Joint ACM Java Grande - ISCOPE (International Symposium on Computing in Object-Oriented Parallel Environments) Conference. 56--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Nieuwpoort, R. V. v. 2003. Efficient Java-centric grid-computing. Ph.D. thesis, Vrije Universiteit Amsterdam. http://www.cs.vu.nl/~rob/.Google ScholarGoogle Scholar
  48. Nieuwpoort, R. V. v., Kielmann, T., and Bal, H. E. 2001. Efficient load balancing for wide-area divide-and-conquer applications. In Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'01). 34--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Nieuwpoort, R. V. v., Kielmann, T., and Bal, H. E. 2007. User-Friendly and reliable grid computing based on imperfect middleware. In Proceedings of the ACM/IEEE Conference on Supercomputing (SC'07). Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Nieuwpoort, R. V. v., Maassen, J., Agapi, A., Oprescu, A.-M., and Kielmann, T. 2006. Experiences deploying parallel applications on a large-scale grid. In Proceedings of EXPGRID - Experimental Grid Testbeds for the Assessment of Large-Scale Distributed Applications and Tools, Workshop in Conjunction with the 15th International Symposium on High Performance Distributed Computing (HPDC-15).Google ScholarGoogle Scholar
  51. Nieuwpoort, R. V. v., Maassen, J., Bal, H. E., Kielmann, T., and Veldema, R. 2000. Wide-Area parallel programming using the remote method invocation model. Concurr. Pract. Exper. 12, 8, 643--666.Google ScholarGoogle ScholarCross RefCross Ref
  52. Nieuwpoort, R. V. v., Maassen, J., Kielmann, T., and Bal, H. E. 2005-A. Satin: Simple and efficient Java-based grid programming. Scalable Comput. Pract. Exper. 6, 3 19--32.Google ScholarGoogle Scholar
  53. Nieuwpoort, R. V. v., Maassen, J., Wrzesińska, G., Hofman, R., Jacobs, C., Kielmann, T., and Bal, H. E. 2005-B. Ibis: A flexible and efficient Java-based grid programming environment. Concurr. Comput. Pract. Exper. 17, 7-8, 1079--1107. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Peng, L., Wong, W., Feng, M., and Yuen, C. 2000. SilkRoad: A multithreaded runtime system with software distributed shared memory for SMP clusters. In Proceedings of the IEEE International Conference on Cluster Computing (Cluster'00). 243--249.Google ScholarGoogle ScholarCross RefCross Ref
  55. Plaat, A., Bal, H. E., and Hofman, R. F. 1999. Sensitivity of parallel applications to large differences in bandwidth and latency in two-layer interconnects. In Proceedings of High Performance Computer Architecture (HPCA-5). 244--253. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Plaat, A., Schaeffer, J., Pijls, W., and de Bruin, A. 1996. Best-First fixed-depth minimax algorithms. Artif. Intell. 87, 1-2, 255--293. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Robinson, J., Russ, S., Heckel, B., and Flachs, B. 1996. A task migration implementation of the message-passing interface. In Proceedings of the 5th IEEE International Symposium on High Performance Distributed Computing (HPDC'96). IEEE Computer Society, 61--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Romein, J. W., Bal, H. E., Schaeffer, J., and Plaat, A. 2002. A performance analysis of transposition-table-driven work scheduling in distributed search. IEEE Trans. Parall. Distrib. Syst. 13, 5, 447--459. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Seinstra, F., Drost, N., Kemp, R., Maassen, J., Nieuwpoort, R. V. v., Verstoep, K., and Bal, H. 2008. Scalable wall-socket multimedia grid computing. 1st IEEE International Scalable Computing Challenge (SCALE'08), held in conjunction with the 8th IEEE International Symposium on Cluster Computing and the Grid (CCGrid'08). First prize winner.Google ScholarGoogle Scholar
  60. Seymour, K., Nakada, H., Matsuoka, S., Dongarra, J., Lee, C., and Casanova, H. 2002. Overview of GridRPC: A remote procedure call API for grid computing. In Proceedings of the International Workshop on Grid Computing (GRID02). Lecture Notes in Computer Science, vol. 2536. Springer, 274--278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Slate, D. and Atkin, L. 1977. Chess 4.5 --The Northwestern Univeristy chess program. Chess Skill Man Mach. 82--118.Google ScholarGoogle Scholar
  62. Smith, T. and Watherman, M. 1981. Identification of common molecular subsequences. J. Molec. Biol. 147, 195--197.Google ScholarGoogle ScholarCross RefCross Ref
  63. Sun Microsystems. 2008. Java Remote Method Invocation Specification. http://java.sun.com/javase/technologies/core/basic/rmi.Google ScholarGoogle Scholar
  64. Tanaka, Y., Nakada, H., Sekiguchi, S., Suzumura, T., and Matsuoka, S. 2003. Ninf-G: A reference implementation of RPC-based programming middleware for grid computing. J. Grid Comput. 1, 1, 41--51.Google ScholarGoogle ScholarCross RefCross Ref
  65. Taura, K., Endo, T., Kaneda, K., and Yonezawa, A. 2003. Phoenix: A parallel programming model for accommodating dynamically joining/leaving resources. In Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'03). 216--229. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Vadhiyar, S. S. and Dongarra, J. J. 2005. Self adaptivity in grid computing. Concurr. Comput. Pract. Exper. 17, 2--4, 235--257. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Verstoep, K., Maassen, J., Bal, H. E., and Romein, J. W. 2008. Experiences with fine-grained distributed supercomputing on a 10g testbed. In Proceedings of the 8th IEEE International Symposium on Cluster Computing and the Grid (CCGRID). 376--383. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Waldo, J. 1998. Remote procedure calls and java remote method invocation. IEEE Concurr. 6, 3, 5--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Wollrath, A., Waldo, J., and Riggs, R. 1997. Java-Centric distributed computing. IEEE Micro 17, 3, 44--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Wolski, R., Spring, N., and Hayes, J. 1999. The network weather service: A distributed resource performance forecasting service for metacomputing. J. Future Gener. Comput. Syst. 15, 5--6, 757--768. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Wrzesińska, G., Maassen, J., and Bal, H. E. 2007-A. Self-Adaptive applications on the grid. In Proceedings of ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP'07). Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Wrzesińska, G., Maassen, J., Verstoep, K., and Bal, H. E. 2007-B. Satin++: Divide-and-share on the grid. In Proceedings of the 2nd IEEE International Conference on e-Science and Grid Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Wrzesińska, G., Nieuwpoort, R. V. v., Maassen, J., and Bal, H. E. 2005. Fault-Tolerance, malleability and migration for divide-and-conquer applications on the grid. In Proceedings of the 19th International Parallel and Distributed Processing Symposium (IPDPS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Wrzesińska, G., Oprescu, A.-M., Kielmann, T., and Bal, H. 2007-C. Persistent fault-tolerance for divide-and-conquer applications on the grid. In Proceedings of the CoreGRID Symposium. 230--237.Google ScholarGoogle Scholar

Index Terms

  1. Satin: A high-level and efficient grid programming model

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Programming Languages and Systems
            ACM Transactions on Programming Languages and Systems  Volume 32, Issue 3
            March 2010
            176 pages
            ISSN:0164-0925
            EISSN:1558-4593
            DOI:10.1145/1709093
            Issue’s Table of Contents

            Copyright © 2010 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 16 March 2010
            • Revised: 1 July 2009
            • Accepted: 1 July 2009
            • Received: 1 October 2006
            Published in toplas Volume 32, Issue 3

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!