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 ¡

Recommend


More recommend