Issue No.03 - May/June (2009 vol.11)
pp: 27-35
Yang Zhang , Mississippi State University
Edward Luke , Mississippi State University
The parallel coordination of tasks and data is the most significant challenge in high-performance scientific software development. Performance dictates that distributed data communication is best performed outside of a software module, but this comes with a cost of increased coupling and loss of system cohesion. Therefore, developers often face complicated component interactions and distributed data management problems that are hard to design and optimize. The authors developed a software framework called Loci that provides an automatic system for the generating the communication and synchronization that are required to correctly compose software modules. Within Loci, software components only document their needs: the communication coupling between components is removed because the framework automatically generates it. This significantly simplifies concurrency management for those who develop simulation codes and results in a cleaner software architecture and clear separations of concerns between the numerical algorithms and management of distributed datasets.
parallel programming, software composition, numerical simulation
Yang Zhang, Edward Luke, "Concurrent Composition Using Loci", Computing in Science & Engineering, vol.11, no. 3, pp. 27-35, May/June 2009, doi:10.1109/MCSE.2009.50
1. L.G. Valiant, "A Bridging Model for Parallel Computation," Comm. ACM, vol. 33, no. 8, 1990, pp. 103–111.
2. M. Herlihy et al., "Software Transactional Memory for Dynamic-Sized Data Structures," Proc. 22nd Ann. Symp. Principles of Distributed Computing, ACM Press, 2003, pp. 92–101.
3. W.D. Henshaw, "Overture: An Object-Oriented Framework for Overlapping Grid Applications," Proc. AIAA Conf. Applied Aerodynamics, AIAA, 2002; henshaw/publicationsaiaa02Henshaw.pdf.
4. T. Goodale et al., "The Cactus Framework and Toolkit: Design and Applications," Proc. 5th Int'l Conf Vector and Parallel Processing (VECPAR 02), Springer, 2003; .
5. J.T. Feo, D.C. Cann, and R.R. Oldehoeft, "A Report on the SISAL Language Project," J. Parallel and Distributed Computing, vol. 10, no. 4, 1990, pp. 349–366.
6. G.E. Blelloch et al., "Implementation of a Portable Nested Data-Parallel Language," J. Parallel and Distributed Computing, vol. 21, no. 1, 1994, pp. 4–14.
7. P.W. Trinder, H.-W. Loidl, and R.F. Pointon, "Parallel and Distributed Haskells," J. Functional Programming, vol. 12, nos. 4–5, 2002, pp. 469–510.
8. E.A. Luke and T. George, "Loci: A Rule-Based Framework for Parallel Multidisciplinary Simulation Synthesis," J. Functional Programming, Special Issue on Functional Approaches to High-Performance Parallel Programming, vol. 15, no. 3, Cambridge Univ. Press, 2005, pp. 477–502.
9. Nikolay Mateev et al., "Next-Generation Generic Programming and Its Application to Sparse Matrix Computations," Int'l Conf. Supercomputing, ACM Press, 2000, pp. 88–100.
10. H.C. Edwards, J.R. Stewart, and J.D. Zepper, "Mathematical Abstractions of the SIERRA Computational Mechanics Framework," Proc. 5th World Congress on Computational Mechanics, 2002.
11. S. Chalasani et al., "On the Use of General Elements in Fluid Dynamics Simulations," Comm. Numerical Methods in Eng., vol. 24, no. 6, 2008, pp. 435–448.