Abstract
Generic components, customizable for specific application domains, are being increasingly used in the software development for parallel and distributed systems. While previous research focused mostly on single components, e.g. skeletons, and their properties, our work addresses the optimization opportunities for the typical situation that several calls to components are composed in a large application. We present an overview of the recently developed optimizations of parallel and distributed components at three abstraction levels: 1) fusing compositions of basic skeletons, expressed as collective operations in MPI (Message Passing Interface), 2) developing cost-optimal implementations for skeleton compositions using domain-specific data structures, and 3) optimizing remote execution of components’ compositions in the context of Java RMI (Remote Method Invocation) in Grid-like distributed environments. We demonstrate our optimizations using application case studies and report experimental results on the achieved performance improvements.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Cole, M.I.: Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computation. PhD thesis, University of Edinburgh (1988)
Quinn, M.J.: Parallel Computing. McGraw-Hill, Inc., New York (1994)
Leighton, F.T.: Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes. Morgan Kaufmann Publ., San Francisco (1992)
Pacheco, P.: Parallel Programming with MPI. Morgan Kaufmann Publ., San Francisco (1997)
Gorlatch, S.: Message passing without send-receive. Future Generation Computer Systems 18, 797–805 (2002)
Grune, D., Bal, H.E., Jacobs, C.J.H.: Modern Compiler Design. John Wiley, Chichester (2000)
Gorlatch, S.: Optimizing compositions of scans and reductions in parallel program derivation. Technical Report MIP-9711, Universität Passau (1997), Available at: http://www.fmi.uni-passau.de/cl/papers/Gor97b.html
Gorlatch, S.: Towards formally-based design of message passing programs. IEEE Trans. on Software Engineering 26, 276–288 (2000)
Bischof, H., Gorlatch, S.: Double-scan: Introducing and implementing a new data-parallel skeleton. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 640–647. Springer, Heidelberg (2002)
Gorlatch, S.: Systematic efficient parallelization of scan and other list homomorphisms. In: Fraigniaud, P., Mignotte, A., Robert, Y., Bougé, L. (eds.) Euro-Par 1996. LNCS, vol. 1124, pp. 401–408. Springer, Heidelberg (1996)
Gorlatch, S., Lengauer, C.: Abstraction and performance in the design of parallel programs: overview of the SAT approach. Acta Informatica 36, 761–803 (2000)
Bischof, H., Gorlatch, S., Kitzelmann, E.: The double-scan skeleton and its parallelization. Technical Report 2002/06, Technische Universität Berlin (2002)
Alt, M., Bischof, H., Gorlatch, S.: Algorithm design and performance prediction in a Java-based Grid system with skeletons. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 899–906. Springer, Heidelberg (2002)
Getov, V., von Laszewski, G., Philippsen, M., Foster, I.: Multiparadigm communications in Java for Grid computing. Communications of the ACM 44, 118–125 (2001)
Hicklin, J., Moler, C., Webb, P., Boisvert, R.F., Miller, B., Pozo, R., Remington, K.: JAMA: A Java matrix package, http://math.nist.gov/javanumerics/jama/
Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P.: Numerical Recipes in C: The Art of Scientific Computing, 2nd edn. Cambridge University Press, Cambridge (1992)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elemets of reusable object-oriented software. Addison-Wesley, Reading (1995)
Szyperski, C.: Component software: beyond object-oriented programming. Addison-Wesley, Reading (1998)
Hu, Z., Iwasaki, H., Takeichi, M.: An accumulative parallel skeleton for all. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 83–97. Springer, Heidelberg (2002)
Raje, R., Williams, J., Boyles, M.: An asynchronous remote method invocation (ARMI) mechanism in Java. Concurrency: Practice and Experience 9, 1207–1211 (1997)
Falkner, K.K., Coddington, P., Oudshoorn, M.: Implementing asynchronous remote method invocation in Java. In: Proc. of Parallel and Real Time Systems (PART 1999), Melbourne, pp. 22–34 (1999)
Yeung, K.C., Kelly, P.H.J.: Optimising Java RMI programs by communication restructuring. In: Schmidt, D., Endler, M. (eds.) Middleware 2003: ACM/IFIP/ USENIX International Middleware Conference, pp. 324–343. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Gorlatch, S. (2004). Domain-Specific Optimizations of Composed Parallel Components. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds) Domain-Specific Program Generation. Lecture Notes in Computer Science, vol 3016. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25935-0_16
Download citation
DOI: https://doi.org/10.1007/978-3-540-25935-0_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22119-7
Online ISBN: 978-3-540-25935-0
eBook Packages: Springer Book Archive