ACM Home Page
Please provide us with feedback. Feedback
Generating parallel applications for distributed memory systems using aspects, components, and patterns
Full text PdfPdf (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
Purushotham V. Bangalore  Birmingham, AL
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 44,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1233901.1233904
What is a DOI?

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
 
15
TOP500 Supercomputer Sites. http://www.top500.org.

Collaborative Colleagues:
Purushotham V. Bangalore: colleagues