Developing Applications For Parallel Computing

   
By Liang T. Chen, Distinguished Engineer and Software Architect, Platform Developer Tools, Sun Microsystems , December 15, 2005  
This article discusses the important parallel application development issues now emerging from the parallel computing technology trend. It introduces and explains some of the most important industry standards such as OpenMP, MPI, and Grid Computing, and describes the current state of parallel application software development. This article highlights several significant design issues from two classes of real application case studies. It also discusses the important developer tools which are critical at the various stages during the software development cycle. In the end, it summarizes the right mindset for developers facing the challenge of developing parallel applications.
1: Introduction











2: OpenMP

2.1 OpenMP General







2.2 OpenMP example




Table 1: An example OpenMP program performance
1
Serial Version
6.636 sec
base
2
OpenMP 1 Thread
7.210 sec
8.65% drop
3
OpenMP 2 Threads
3.771 sec
1.76x faster
4
OpenMP 4 Threads
1.988 sec
3.34x faster
5
OpenMP 8 Threads
1.090 sec
6.09x faster
6
OpenMP 16 Threads
0.638 sec
10.40x faster
7
OpenMP 20 Threads
0.550 sec
12.06x faster
8
OpenMP 24 Threads
0.931 sec
saturation


2.3 OpenMP Constraints


3: MPI

3.1 MPI General











3.2 Memory Hierarchy





3.3 MPI Constraints


4: Grid Computing

4.1 Grid General




4.2 DRM


4.3 Grid Constraints




5: A Real Case Study



5.1 Parallel Search






5.2 Parallel Simulation




6: Tools for the Developer



6.1 Compilation




6.2 Debugging






6.3 Performance Tuning






7: Summary





Acknowledgements

 
About the Author
Liang Chen is Distinguished Engineer and Software Architect for Platform Developer Tools at Sun Microsystems. His focus is on the architecture and future technology of Sun Studio developer tools. Liang has more than 2 decades of application development experience. His current main interest is to investigate parallel application development from the tightly coupled OpenMP to loosely coupled SOA and Grid. Before his current job, Liang was software architect and manager of a research project at SunLabs to build a massive parallel machine with thousands of processors to simulate Sun future computing systems. Liang worked at several companies including SGI and AMD before joining Sun.
 
Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
Your email address (no reply is possible without an address):
Sun Privacy Policy

Note: We are not able to respond to all submitted comments.