End of Year Presentation

798 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
798
On SlideShare
0
From Embeds
0
Number of Embeds
55
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

End of Year Presentation

  1. 1. An Aspect-Oriented Approach to High Productivity High Performance Computing <ul><ul><li>Chanwit Kaewkasi </li></ul></ul><ul><ul><li>CNC </li></ul></ul><ul><ul><li>Supervisor: John R. Gurd </li></ul></ul><ul><ul><li>Advisor: Chris C. Kirkham </li></ul></ul>
  2. 2. Motivation <ul><li>Scientific problems have become more complex. </li></ul><ul><ul><li>Performance is always critical for High Performance Computing (HPC) to solve scientific problems. </li></ul></ul><ul><ul><li>But, Software Engineering techniques is needed to manage this complexity . </li></ul></ul><ul><li>The goal of the High Productivity Computing Systems programme: </li></ul><ul><ul><li>By 2010, systems should double productivity for every 18 months </li></ul></ul><ul><ul><li>Not only hardware speed, but real values of the system </li></ul></ul>[http://www.highproductivity.org], [Kepner, 2004]
  3. 3. An AOP Approach <ul><li>Reduces programs' complexity </li></ul><ul><li>Introduces programming abstractions </li></ul><ul><li>for HPC development, but </li></ul><ul><li>Its weaving process impedes development cycle </li></ul><ul><li>AOP on VM generates execution overheads </li></ul>Why is AOP important?
  4. 4. Separation of Concerns <ul><li>A real-world example </li></ul><ul><li>Foods + Drinks + De s serts </li></ul><ul><li>People can mix them together before they eat . </li></ul><ul><ul><li>Easier to digest  High Performance </li></ul></ul><ul><ul><li>Do you prefer to eat them this way? </li></ul></ul><ul><li>SoC works that way </li></ul>How does AOP work for HPC?
  5. 5. AOP and HPC <ul><li>Separate parallelisation concerns from the algorithm </li></ul><ul><ul><li>Write an algorithm </li></ul></ul><ul><ul><li>Apply parallel strategies, aspects, to the algorithm </li></ul></ul><ul><li>This approach allows simpler development life cycle </li></ul><ul><ul><li>Develop the serial version of the algorithm </li></ul></ul><ul><ul><li>Develop a number of parallel strategies for different machines, architectures or platforms. </li></ul></ul><ul><ul><li>[Harbulot and Gurd 2004, 2006] </li></ul></ul>
  6. 6. Relative Productivity <ul><li>Is measured between any two programming languages (0 and L) </li></ul><ul><ul><li>[Kennedy et al. 2004] </li></ul></ul>
  7. 7. Relative Productivity (cont'd) <ul><li>T(P) is the total time to solve the problem P </li></ul><ul><li>I(P) is the development time </li></ul><ul><li>C(P) is the average compilation time </li></ul><ul><ul><li>weighted by r 1 </li></ul></ul><ul><li>E(P) is the average execution time </li></ul><ul><ul><li>weighted by r 2 </li></ul></ul>
  8. 8. Concern Fencing Index concern 1 concern 2 CFI = 5 concern fences
  9. 9. Evaluation Strategy <ul><li>Relative Productivity Metric </li></ul><ul><ul><li>Development time , I(P) </li></ul></ul><ul><ul><li>Compilation time, C(P) </li></ul></ul><ul><ul><li>Execution time, E(P) </li></ul></ul><ul><li>Concern Fencing Index </li></ul><ul><ul><li>Program complexity (from AOP point of view) </li></ul></ul><ul><li>Experimental Environment </li></ul><ul><ul><li>Distributed Memory Machines, or </li></ul></ul><ul><ul><li>Computational Grid </li></ul></ul>
  10. 10. Success ? <ul><li>For a newly developed language L, </li></ul><ul><li>Acceptance Goal </li></ul><ul><li>Expected Goal </li></ul>
  11. 11. Plan
  12. 12. <ul><li>Separate parallelisation concerns </li></ul><ul><ul><li>Reduce complexity </li></ul></ul><ul><ul><li>Raise level of abstraction </li></ul></ul><ul><li>Productivity Measurement </li></ul><ul><ul><li>Relative Productivity Model </li></ul></ul><ul><ul><li>Concern Fences </li></ul></ul><ul><li>Reduce development time with </li></ul><ul><ul><li>A new AOP weaving technique </li></ul></ul><ul><li>Reduce execution overheads with </li></ul><ul><ul><li>A number of optimisation techniques </li></ul></ul>Conclusion
  13. 13. Questions ? <ul><li>Thank you very much ! </li></ul>
  14. 14. Behind the scene <ul><li>You shouldn't see this slide </li></ul>
  15. 15. Aspect-Oriented Programming <ul><li>Separates crosscutting concerns </li></ul><ul><li>Provides abstraction s and constructs </li></ul><ul><ul><li>Join point abstractions </li></ul></ul><ul><ul><li>Pointcut designators </li></ul></ul><ul><ul><li>Advice codes </li></ul></ul><ul><ul><li>Introduction </li></ul></ul><ul><ul><li>[Kiczales et al. 1997] </li></ul></ul>
  16. 16. Relative Productivity (cont'd) <ul><li>The proposed model: </li></ul>
  17. 17. Join point Shadows Traditional Approach for AOP
  18. 18. Transparent Join points Our Approach for AOP
  19. 19. Event-based AOP <ul><li>Another Dynamic AOP model </li></ul><ul><li>Close to the Ideal AOP system </li></ul><ul><li>Allows Re-defining Aspects at Runtime </li></ul><ul><li>We take this approach for Block join points </li></ul><ul><li>Allows fast weaving </li></ul><ul><ul><li>= Reduce development time </li></ul></ul><ul><ul><li>=? High Productivity </li></ul></ul>
  20. 20. Motivation <ul><li>Scientific problems become more complex. </li></ul><ul><ul><li>Performance is always the critical issue for HPC to solve scientific problems. </li></ul></ul><ul><ul><li>But, we might need software engineering techniques to help manage this complexity . </li></ul></ul><ul><li>The goal of the High Productivity Computing Systems (HPCS) programme: </li></ul><ul><ul><li>By 2010, systems should double productivity for every 18 months </li></ul></ul><ul><ul><li>Not only hardware speed, but real values of the system </li></ul></ul>[http://www.highproductivity.org]

×