balancing specula ve loads in parallel discrete event
play

Balancing Specula-ve Loads in Parallel Discrete Event - PowerPoint PPT Presentation

Balancing Specula-ve Loads in Parallel Discrete Event Simula-on Eric Mikida Brief PDES Descrip-on Simula-on made up of Logical Processes (LPs) LPs


  1. Balancing ¡Specula-ve ¡Loads ¡in ¡ Parallel ¡Discrete ¡Event ¡Simula-on ¡ Eric ¡Mikida ¡

  2. Brief ¡PDES ¡Descrip-on ¡ • Simula-on ¡made ¡up ¡of ¡Logical ¡Processes ¡(LPs) ¡ • LPs ¡process ¡events ¡in ¡-mestamp ¡order ¡ • Synchroniza-on ¡is ¡conserva-ve ¡or ¡op-mis-c ¡ • Periodically ¡compute ¡global ¡virtual ¡-me ¡(GVT) ¡ 2 ¡

  3. Op-mis-c ¡Execu-on ¡ LP ¡ Processed ¡events ¡ Pending ¡events ¡ 1 ¡ 3 ¡ 6 ¡ 7 ¡ 9 ¡ 10 ¡ 3 ¡

  4. Op-mis-c ¡Execu-on ¡ LP ¡ 1 ¡ 3 ¡ 6 ¡ 7 ¡ 9 ¡ 10 ¡ 4 ¡

  5. Op-mis-c ¡Execu-on ¡ LP ¡ 1 ¡ 3 ¡ 6 ¡ 7 ¡ 9 ¡ 10 ¡ 4 ¡ 5 ¡

  6. Op-mis-c ¡Execu-on ¡ LP ¡ 1 ¡ 3 ¡ 6 ¡ 7 ¡ 9 ¡ 10 ¡ 4 ¡ 6 ¡

  7. Op-mis-c ¡Execu-on ¡ LP ¡ 1 ¡ 3 ¡ 4 ¡ 6 ¡ 7 ¡ 9 ¡ 10 ¡ 7 ¡

  8. Op-mis-c ¡Execu-on ¡ LP ¡ 1 ¡ 3 ¡ 4 ¡ 6 ¡ 7 ¡ 9 ¡ 10 ¡ GVT ¡ 8 ¡

  9. Performance ¡Metrics ¡ Event ¡Rate ¡= ¡ E commiTed ¡/ ¡s ¡ Event ¡Efficiency ¡= ¡ E commiTed ¡/ ¡E total ¡ Load ¡Balance ¡= ¡ ?? ¡ 9 ¡

  10. What ¡is ¡“load”? ¡ • Charm++ ¡automa-cally ¡measures ¡CPU ¡-me ¡ – Makes ¡sense ¡when ¡all ¡work ¡is ¡useful ¡work ¡ – Relies ¡on ¡principle ¡of ¡persistence ¡ – Balances ¡CPU ¡-me ¡per ¡PE ¡ 10 ¡

  11. What ¡is ¡“load”? ¡ • Charm++ ¡automa-cally ¡measures ¡CPU ¡-me ¡ – Makes ¡sense ¡when ¡all ¡work ¡is ¡useful ¡work ¡ – Relies ¡on ¡principle ¡of ¡persistence ¡ – Balances ¡CPU ¡-me ¡per ¡PE ¡ Does ¡this ¡make ¡sense ¡in ¡a ¡specula-ve ¡se^ng? ¡ 11 ¡

  12. Example ¡ LP ¡1 ¡ LP ¡2 ¡ LP ¡3 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ CommiTed: ¡4 ¡ CommiTed: ¡0 ¡ CommiTed: ¡0 ¡ Rolled ¡Back: ¡0 ¡ Rolled ¡Back: ¡4 ¡ Rolled ¡Back: ¡0 ¡ 12 ¡

  13. Example ¡ LP ¡1 ¡ LP ¡2 ¡ LP ¡3 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ CommiTed: ¡4 ¡ CommiTed: ¡0 ¡ CommiTed: ¡0 ¡ Rolled ¡Back: ¡0 ¡ Rolled ¡Back: ¡4 ¡ Rolled ¡Back: ¡0 ¡ 13 ¡

  14. Example ¡ LP ¡1 ¡ LP ¡2 ¡ LP ¡3 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ CommiTed: ¡4 ¡ CommiTed: ¡0 ¡ CommiTed: ¡0 ¡ Rolled ¡Back: ¡0 ¡ Rolled ¡Back: ¡4 ¡ Rolled ¡Back: ¡0 ¡ 14 ¡

  15. Example ¡ LP ¡1 ¡ LP ¡2 ¡ LP ¡3 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ CommiTed: ¡4 ¡ CommiTed: ¡0 ¡ CommiTed: ¡0 ¡ Rolled ¡Back: ¡0 ¡ Rolled ¡Back: ¡4 ¡ Rolled ¡Back: ¡0 ¡ 15 ¡

  16. Example ¡ LP ¡1 ¡ LP ¡2 ¡ LP ¡3 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ CommiTed: ¡4 ¡ CommiTed: ¡0 ¡ CommiTed: ¡0 ¡ Rolled ¡Back: ¡0 ¡ Rolled ¡Back: ¡4 ¡ Rolled ¡Back: ¡0 ¡ Roughly ¡the ¡same ¡CPU ¡-me ¡spent ¡execu-ng ¡events ¡ 16 ¡

  17. Example ¡ LP ¡1 ¡ LP ¡2 ¡ LP ¡3 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ Executed: ¡5 ¡ CommiTed: ¡4 ¡ CommiTed: ¡0 ¡ CommiTed: ¡0 ¡ Rolled ¡Back: ¡0 ¡ Rolled ¡Back: ¡4 ¡ Rolled ¡Back: ¡0 ¡ Roughly ¡the ¡same ¡CPU ¡-me ¡spent ¡execu-ng ¡events ¡ How ¡does ¡the ¡load ¡balancer ¡differen-ate? ¡ 17 ¡

  18. How ¡does ¡GVT ¡affect ¡balance? ¡ Count-­‑Based ¡GVT ¡ Leash-­‑Based ¡GVT ¡ • GVT ¡computed ¡every ¡X ¡ • GVT ¡computed ¡every ¡X ¡units ¡ events ¡ of ¡virtual ¡-me ¡ • Doesn’t ¡aTempt ¡to ¡bound ¡ • Keeps ¡virtual ¡-mes ¡ op-mism ¡ balanced ¡across ¡PEs ¡ • Can ¡lead ¡to ¡poor ¡event ¡ • Can ¡lead ¡to ¡poor ¡CPU ¡ efficiency ¡ balance ¡across ¡PEs ¡ 18 ¡

  19. Benchmarks ¡ PHOLD ¡ Traffic ¡ • Common ¡PDES ¡benchmark ¡ • Simulates ¡a ¡grid ¡of ¡ intersec-ons ¡ • Execu-ng ¡an ¡event ¡causes ¡a ¡ • Events ¡are ¡cars ¡arriving, ¡ new ¡event ¡for ¡a ¡random ¡LP ¡ leaving, ¡and ¡changing ¡lanes ¡ • Changing ¡event ¡distribu-on ¡ • Cars ¡travel ¡from ¡source ¡to ¡ causes ¡imbalance ¡ des-na-on ¡ 19 ¡

  20. GVT ¡Trigger ¡Event ¡Rates ¡ 40 ¡ 64 ¡nodes ¡of ¡Vesta ¡(BG/Q) ¡ 35 ¡ Event ¡Rate ¡(millions/s) ¡ PHOLD: ¡ 30 ¡ -­‑ 32 ¡LPs ¡per ¡rank ¡ 25 ¡ -­‑ 50% ¡remote ¡events ¡ Count ¡ 20 ¡ Traffic: ¡ Leash ¡ 15 ¡ -­‑ 64K ¡intersec-ons ¡ 10 ¡ -­‑ 1M ¡cars ¡ 5 ¡ 0 ¡ PHOLD ¡ Traffic ¡ 20 ¡

  21. GVT ¡Trigger ¡Comparison ¡ 100 ¡ 90 ¡ 64 ¡nodes ¡of ¡Vesta ¡(BG/Q) ¡ 80 ¡ PHOLD: ¡ -­‑ 32 ¡LPs ¡per ¡rank ¡ 70 ¡ Efficiency ¡(%) ¡ -­‑ 50% ¡remote ¡events ¡ 60 ¡ Count ¡ 50 ¡ Traffic: ¡ 40 ¡ Leash ¡ -­‑ 64K ¡intersec-ons ¡ 30 ¡ -­‑ 1M ¡cars ¡ 20 ¡ 10 ¡ 0 ¡ PHOLD ¡ Traffic ¡ 21 ¡

  22. Our ¡Load ¡Balancing ¡Goal ¡ • Make ¡sure ¡all ¡PEs ¡have ¡useful ¡work ¡ – Balance ¡the ¡CPU ¡load ¡ – Only ¡count ¡useful ¡work ¡ • Maintain ¡a ¡high ¡event ¡efficiency ¡ – Balance ¡rate ¡of ¡progress ¡ – Leads ¡to ¡less ¡overall ¡work ¡ 22 ¡

  23. Redefine ¡“Load” ¡for ¡PDES ¡ Past-­‑Looking ¡Metrics ¡ Future-­‑Looking ¡Metrics ¡ • CPU ¡Time ¡ • Next ¡Timestamp ¡ • Current ¡Timestamp ¡ • Pending ¡Events ¡ • CommiTed ¡Timestamp ¡ • Weighted ¡Pending ¡Events ¡ • CommiTed ¡Events ¡ • “Ac-ve” ¡Events ¡ • Poten-al ¡CommiTed ¡Events ¡ 23 ¡

  24. PHOLD ¡Event ¡Rate ¡ 100 ¡ 2.5x ¡Speedup ¡ 90 ¡ No ¡LB ¡ Event ¡Rate ¡(millions/s) ¡ 80 ¡ CPU ¡Time ¡ 70 ¡ 4.5x ¡Speedup ¡ CommiTed ¡TS ¡ 60 ¡ ¡Current ¡TS ¡ 50 ¡ 40 ¡ Next ¡TS ¡ 30 ¡ CommiTed ¡Events ¡ 20 ¡ Pending ¡Events ¡ 10 ¡ Ac-ve ¡Events ¡ 0 ¡ Count ¡ Leash ¡ 24 ¡

  25. PHOLD ¡Efficiency ¡ 100 ¡ 90 ¡ No ¡LB ¡ 80 ¡ CPU ¡Time ¡ 70 ¡ Efficiency ¡(%) ¡ CommiTed ¡TS ¡ 60 ¡ ¡Current ¡TS ¡ 50 ¡ 40 ¡ Next ¡TS ¡ 30 ¡ CommiTed ¡Events ¡ 20 ¡ Pending ¡Events ¡ 10 ¡ Ac-ve ¡Events ¡ 0 ¡ Count ¡ Leash ¡ 25 ¡

  26. Traffic ¡Event ¡Rate ¡ 35 ¡ 3x ¡Speedup ¡ 30 ¡ No ¡LB ¡ Event ¡Rate ¡(millions/s) ¡ CPU ¡Time ¡ 25 ¡ CommiTed ¡TS ¡ 20 ¡ ¡Current ¡TS ¡ 15 ¡ Next ¡TS ¡ 3x ¡Speedup ¡ CommiTed ¡Events ¡ 10 ¡ Pending ¡Events ¡ 5 ¡ Ac-ve ¡Events ¡ 0 ¡ Count ¡ Leash ¡ 26 ¡

  27. Traffic ¡Efficiency ¡ 100 ¡ 90 ¡ No ¡LB ¡ 80 ¡ CPU ¡Time ¡ 70 ¡ Efficiency ¡(%) ¡ CommiTed ¡TS ¡ 60 ¡ ¡Current ¡TS ¡ 50 ¡ 40 ¡ Next ¡TS ¡ 30 ¡ CommiTed ¡Events ¡ 20 ¡ Pending ¡Events ¡ 10 ¡ Ac-ve ¡Events ¡ 0 ¡ Count ¡ Leash ¡ 27 ¡

  28. What’s ¡next? ¡ • BeTer ¡visualiza-on/analysis ¡tools ¡ • More ¡diverse ¡set ¡of ¡models ¡ • Conserva-ve ¡synchroniza-on ¡ • Vector ¡load ¡balancing ¡strategies ¡ • Adap-ve ¡load ¡balancer ¡ • Combine ¡with ¡GVT ¡work ¡ 28 ¡

Recommend


More recommend