| Generating parallel applications for distributed memory systems using aspects, components, and patterns |
| Full text |
Pdf
(173 KB)
|
| Source
|
ACP4IS; Vol. 219
archive
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
table of contents
Vancouver, British Columbia, Canada
Article No. 3
Year of Publication: 2007
ISBN:1-59593-657-8
|
|
Author
|
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 9, Downloads (12 Months): 44, Citation Count: 0
|
|
|
ABSTRACT
Developing and debugging parallel programs particularly for distributed memory architectures is still a difficult task. The most popular approach to developing parallel programs for distributed memory architectures requires adding explicit message passing calls into existing sequential programs for data distribution, coordination, and communication. This approach creates separate source tree for sequential code and parallel code as well as further branches based on the specific set of message passing primitives used (point-to-point communication vs. one-sided communication). Aspect oriented programming provides an option to separate programming concerns and weave code into applications instead of directly modifying the original program. This paper described an effort to use Aspect Oriented Programming (specifically AspectC++), components and patterns for data distribution and message passing to develop parallel programs without making any changes to existing sequential program. This technique is used to generate a suite of parallel matrix multiplication algorithms as well as several simple parallel algorithms without making any changes to the sequential code. Performance results obtained indicate that the desired functionality is achieved without compromising performance.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
AspectC Homepage. http://www.aspectc.net.
|
| |
2
|
AspectC++ Homepage. http://www.aspectc.org.
|
| |
3
|
|
| |
4
|
Grama, A., Gupta, A., Karypis, G., Kumar, V., Introduction to Parallel Computing, 2nd Edition, Addison Wesley, 2003.
|
| |
5
|
|
 |
6
|
|
| |
7
|
High Performance Fortran Forum, High Performance Fortran Language Specification, Scientific Programming 2(1-2), pp. 1--170, 1993.
|
| |
8
|
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Videira Lopes, C., Loingtier, J. and Irwin, J., Aspect-Oriented Programming, European Conference on Object-Oriented Programming (ECOOP), LNCS 1241, Springer-Verlag, Jyväskylä, Finland, June 1997, pp. 220--242.
|
| |
9
|
Li, J., Skjellum, A., Falgout, R. D., A poly-algorithm for parallel dense matrix multiplication on two-dimensional process grid topologies. Concurrency: Practice and Experience, 9(5), pp. 345--389, 1997.
|
| |
10
|
Message Passing Interface Forum, "MP12: A Message-Passing Interface Standard," International Journal of Supercomputer Applications and High Performance Computing, Special Issue, 12(1/2), pp. 1--299, 1998.
|
| |
11
|
Sobral, J. Incrementally Developing Parallel Applications with AspectJ, 20th IEEE International Parallel & Distributed Processing Symposium (IPDPS'06), Greece, Rhodes, April 2006, IEEE Computer Society, 2006.
|
| |
12
|
|
| |
13
|
|
 |
14
|
Kai Tan , Duane Szafron , Jonathan Schaeffer , John Anvik , Steve MacDonald, Using generative design patterns to generate parallel code for a distributed memory environment, Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 11-13, 2003, San Diego, California, USA
|
| |
15
|
TOP500 Supercomputer Sites. http://www.top500.org.
|
|