message driven programming with s net methodology and
play

Message Driven Programming with S-Net Methodology and Performance - PowerPoint PPT Presentation

Message Driven Programming with S-Net Methodology and Performance Frank Penczek S.A. Herhut, S.-B. Scholz, A. Shafarenko, J. Yang, C.Y. Chen, N. Bagherzadeh, C. Grelck What is


  1. Message Driven Programming with S-Net Methodology and Performance Frank ¡Penczek ¡ S.A. ¡Herhut, ¡S.-­‑B. ¡Scholz, ¡A. ¡Shafarenko, ¡J. ¡Yang, ¡C.Y. ¡Chen, ¡N. ¡Bagherzadeh, ¡C. ¡Grelck ¡

  2. What is S-Net Coordination & Concurrency Engineering

  3. What is S-Net Applications as Streaming Networks

  4. What is S-Net Basic Building Blocks

  5. What is S-Net Basic Building Blocks { A, ¡B, ¡ ¡… } ¡ α β { X, ¡Y, ¡ ¡… } ¡ net ¡myNet ¡{ ¡ ¡ ¡ ¡ ¡box ¡MyBox( ¡(A,B) ¡-­‑> ¡(X,Y)); ¡ } ¡connect ¡MyBox; ¡

  6. Raytracing Application The Principle

  7. Raytracing Application ...in S-Net Read ¡ Gen ¡ Solve ¡ Scene ¡ Image ¡

  8. Raytracing Application ...in S-Net {scn_name} ¡ {scene} ¡ {raster} ¡ {img} ¡ Read ¡ Gen ¡ Solve ¡ Scene ¡ Image ¡

  9. Raytracing Application ...in S-Net {scn_name} ¡ {scene} ¡ {raster} ¡ {img} ¡ Read ¡ Gen ¡ Solve ¡ Scene ¡ Image ¡ net net raytrace raytrace { { box box ReadScene ReadScene( ( ( (scn_name scn_name) -> (scene)); ) -> (scene)); box Solve( (scene) -> (raster)); box Solve( (scene) -> (raster)); box box GenImage GenImage( (raster) -> ( ( (raster) -> (img img)); )); } connect } connect ReadScene ReadScene .. Solve .. .. Solve .. GenImage GenImage; ;

  10. Raytracing Application Parallelised Approach

  11. Raytracing Application Parallelised Approach in S-Net Solve ¡ Read ¡ Gen ¡ Solve ¡ Merge ¡ Scene ¡ Image ¡ Solve ¡

  12. S-Net Combinators Split Combinator net ¡split ¡{ ¡ ¡ ¡box ¡Solve( ¡(scene) ¡-­‑> ¡(raster)); ¡ Solve ¡ } ¡connect ¡Solve; ¡ Solve ¡ Solve ¡ Solve ¡ net ¡split ¡{ ¡ ¡ ¡box ¡Solve( ¡(scene) ¡-­‑> ¡(raster)); ¡ } ¡connect ¡Solve !<task> ; ¡

  13. Raytracing Application Parallelised Approach Solve ¡ Read ¡ Gen ¡ Solve ¡ Merge ¡ Scene ¡ Image ¡ Solve ¡

  14. Raytracing Application Extended Read Scene {scene} ¡ {raster} ¡ {scn_name, ¡ <num_tasks>} ¡ Solve ¡ Read ¡ Gen ¡ Solve ¡ Merge ¡ Scene ¡ Image ¡ Solve ¡ ¡ ¡{raster, ¡<task>, ¡<num_tasks>} ¡ ¡ ¡ ¡{scene, ¡<task>, ¡<num_tasks>} ¡

  15. S-Net Features Flow Inheritance ¡ ¡{scene, ¡<task>, ¡<num_tasks>} ¡ ¡{raster, ¡<task>, ¡<num_tasks>} ¡ {scene} ¡ {raster} ¡ Read ¡ Gen ¡ Solve ¡ Merge ¡ Scene ¡ Image ¡ ¡{<task>, ¡<num_tasks>} ¡

  16. Raytracing Application Parallelised Approach Solve ¡ Read ¡ Gen ¡ Solve ¡ Merge ¡ Scene ¡ Image ¡ Solve ¡

  17. S-Net Combinators Iteration {accu} ¡ {sub_res} ¡ {result} ¡ Merge ¡

  18. S-Net Combinators Star Combinator {accu} ¡ {sub_res} ¡ {result} ¡ Merge ¡ net ¡merge ¡{ ¡ ¡ ¡box ¡Merge( ¡(accu, ¡sub_res) ¡-­‑> ¡ ¡ ¡ ¡(accu) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡| ¡(result)); ¡ ¡ ¡ } ¡connect ¡Merge*{result}; ¡

  19. S-Net Features Synchronisation {accu} ¡ Merge ¡ {accu} ¡ {sub} ¡ net ¡merge ¡{ ¡ ¡ ¡box ¡Merge( ¡(accu, ¡sub_res) ¡-­‑> ¡ ¡ ¡ ¡(accu) ¡| ¡(result)); ¡ } ¡connect ¡( ¡[|{accu}, ¡{sub_res} ¡|] ¡.. ¡Merge)*{result}; ¡

  20. Raytracing Application Runtime on Shared Memory Solve ¡ Solve ¡ Merge ¡ Read ¡ Gen ¡ Scene ¡ Image ¡ Solve ¡ 500 ¡ 450 ¡ RunQme ¡in ¡Seconds ¡ 400 ¡ 350 ¡ 300 ¡ 250 ¡ 200 ¡ 150 ¡ 100 ¡ 50 ¡ 0 ¡ 1 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ Number ¡of ¡Cores ¡

  21. Raytracing Application Speed-Up vs. original C Code Solve ¡ Solve ¡ Merge ¡ Read ¡ Gen ¡ Scene ¡ Image ¡ Solve ¡ 32 ¡ Number ¡of ¡Cores ¡ 16 ¡ 8 ¡ 4 ¡ 2 ¡ 1 ¡ 0.00 ¡ 2.00 ¡ 4.00 ¡ 6.00 ¡ 8.00 ¡ 10.00 ¡ 12.00 ¡ 14.00 ¡ 1 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ SpeedUp ¡ 0.97 ¡ 1.27 ¡ 2.13 ¡ 3.62 ¡ 6.22 ¡ 12.11 ¡ Speed-­‑Up ¡

  22. S-Net Features Splitting using Distributed Memory Solve ¡ Solve ¡ Solve ¡ Solve ¡ Solve ¡ Solve ¡ net ¡split ¡{ ¡ net ¡split ¡{ ¡ ¡ ¡box ¡Solve( ¡(scene) ¡-­‑> ¡(raster)); ¡ ¡ ¡box ¡Solve( ¡(scene) ¡-­‑> ¡(raster)); ¡ } ¡connect ¡Solve !<task> ; ¡ } ¡connect ¡Solve !@<task> ; ¡

  23. Raytracing Application Runtime on Cluster Solve ¡ Solve ¡ Merge ¡ Read ¡ Gen ¡ Scene ¡ Image ¡ Solve ¡ 450 ¡ 400 ¡ RunQme ¡in ¡Seconds ¡ 350 ¡ 300 ¡ 250 ¡ 200 ¡ 150 ¡ 100 ¡ 50 ¡ 0 ¡ 1 ¡ 2 ¡ 4 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ Number ¡of ¡Nodes ¡

  24. Raytracing Application Speed-Up vs. original C Code and MPI Solve ¡ Solve ¡ Merge ¡ Read ¡ Gen ¡ Scene ¡ Image ¡ Solve ¡ 12 ¡ Number ¡of ¡Nodes ¡ 8 ¡ 4 ¡ 1 ¡ 0.00 ¡ 1.00 ¡ 2.00 ¡ 3.00 ¡ 4.00 ¡ 5.00 ¡ 6.00 ¡ 1 ¡ 2 ¡ 4 ¡ 6 ¡ 8 ¡ 10 ¡ 12 ¡ MPI/SN ¡ 0.99 ¡ 1.04 ¡ 1.06 ¡ 1.04 ¡ 1.05 ¡ 1.06 ¡ 1.06 ¡ Seq/SN ¡ 0.98 ¡ 1.23 ¡ 2.06 ¡ 3.19 ¡ 3.57 ¡ 4.13 ¡ 4.79 ¡ Speed-­‑Up ¡

  25. Utilising Resources Efficiently Dynamic Load Scheduling Sub-­‑ ¡ Sub-­‑ ¡ Prob ¡ Prob ¡ Problem ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡

  26. Utilising Resources Efficiently Dynamic Load Scheduling Sub-­‑ ¡ Prob ¡ Problem ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡

  27. Utilising Resources Efficiently Dynamic Load Scheduling Sub-­‑ ¡ Prob ¡ Problem ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Prob ¡ Sub-­‑ ¡ Result ¡

  28. Utilising Resources Efficiently Dynamic Load Scheduling Problem ¡ Sub-­‑ ¡ Sub-­‑ ¡ Result ¡ Result ¡ Sub-­‑ ¡ Result ¡ Result ¡ Sub-­‑ ¡ Sub-­‑ ¡ Result ¡ Result ¡

  29. Utilising Resources Efficiently Dynamic Load Scheduling in S-Net {<cpu>} ¡ Solve ¡ Read ¡ Merge ¡ Scene ¡ {cpu} ¡ {cpu} ¡ {sub} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ {cpu} ¡ {sub} ¡

  30. Utilising Resources Efficiently Dynamic Load Scheduling in S-Net {<cpu>} ¡ {scn_name, ¡ <num_tasks>, ¡ <num_cpus>} ¡ Solve ¡ Read ¡ Merge ¡ Scene ¡ {cpu} ¡ {cpu} ¡ {sub} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ ¡ ¡ ¡{scene, ¡<task>, ¡<num_tasks>, ¡<cpu>} ¡ | ¡{scene, ¡<task>, ¡<num_tasks>} ¡

  31. S-Net Combinators Choice ¡ ¡ ¡{raster, ¡<task>} ¡ ¡ ¡ ¡{scene, ¡<task>,<cpu>} ¡ | ¡{<cpu>} ¡ Solve ¡ {cpu} ¡ {cpu} ¡ {sub} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ {cpu} ¡ {scn} ¡ ¡ ¡ ¡{<cpu>} ¡ ¡ ¡ ¡{<cpu>, ¡scene} ¡ | ¡{scene, ¡<task>} ¡ net ¡solving ¡{ ¡ ¡ ¡ ¡... ¡ } ¡connect ¡(Solve ¡| ¡[|{cpu},{scene}|]) ¡*{raster}; ¡

  32. Raytracing Application Parallelised Approach {<cpu>} ¡ Solve ¡ Solve ¡ Read ¡ Solve ¡ Merge ¡ Scene ¡ {cpu} ¡ {cpu} ¡ {sub} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ {cpu} ¡ {sub} ¡

  33. Raytracing Application Runtime in Shared Memory {<cpu>} ¡ Solve ¡ Solve ¡ Merge ¡ Solve ¡ Read ¡ Scene ¡ {cpu} ¡ {cpu} ¡ {sub} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ 500 ¡ RunQme ¡in ¡Seconds ¡ 400 ¡ 300 ¡ 200 ¡ 100 ¡ 0 ¡ 1 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ 32 ¡ Number ¡of ¡Cores ¡

  34. Raytracing Application Runtime on Cluster + Shared Memory {<cpu>} ¡ Solve ¡ Solve ¡ Merge ¡ Solve ¡ Read ¡ Scene ¡ {cpu} ¡ {cpu} ¡ {sub} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ {cpu} ¡ {sub} ¡ 450 ¡ 400 ¡ RunQme ¡in ¡Seconds ¡ 350 ¡ 300 ¡ 250 ¡ 200 ¡ 150 ¡ 100 ¡ 50 ¡ 0 ¡ 1 ¡ 2 ¡ 4 ¡ 8 ¡ 12 ¡ Number ¡of ¡Nodes ¡

  35. S-Net on one Slide Combinators A A ¡ B ¡ B A .. B A | B A A A ¡ … A*{p} A!<t> A

  36. Thank you! End.

  37. S-Net Tool-Chain Overview S-­‑Net ¡ Box ¡ Box ¡ Compiler ¡ Compiler ¡ Interface ¡ S-­‑Net ¡ RunQme ¡ S-­‑Net ¡ Library ¡/ ¡ Module ¡ Objects ¡ Executable ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend