Charades ¡ An ¡Adap've ¡Parallel ¡Discrete ¡Event ¡ Simula'on ¡Framework ¡on ¡Charm++ ¡ Eric ¡Mikida ¡
Char m++ ¡ Overlap ¡of ¡ Communica'on ¡ & ¡Computa'on ¡ A dap've ¡ Object ¡Mapping ¡ D iscrete ¡ via ¡Dynamic ¡Load ¡ Balancing ¡ E vent ¡ GVT ¡Computa'on ¡ S imulator ¡ via ¡Asynchronous ¡ Messaging ¡ 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) ¡ 3 ¡
Performance ¡Metrics ¡ Event ¡Rate ¡= ¡ E commiRed ¡/ ¡s ¡ Event ¡Efficiency ¡= ¡ E commiRed ¡/ ¡E total ¡ 4 ¡
Performance ¡Tuning ¡Tradeoffs ¡ • Shown ¡good ¡performance ¡on ¡benchmarks ¡ – We ¡can ¡execute/send ¡large ¡numbers ¡of ¡fine-‑ grained ¡events ¡effec'vely ¡ • How ¡do ¡we ¡adapt ¡to ¡improve ¡performance ¡in ¡ the ¡less ¡ideal ¡cases? ¡ – What ¡events ¡are ¡we ¡actually ¡execu'ng/sending ¡ 5 ¡
GVT ¡Computa'on ¡ • Global ¡computa'on, ¡required ¡frequently ¡ • Common ¡solu'on ¡blocks ¡en'rely ¡during ¡ computa'on ¡ – Side ¡effect ¡of ¡blocking ¡is ¡bounded-‑op'mism ¡ – Leads ¡to ¡higher ¡event ¡efficiency ¡ 6 ¡
GVT ¡Tradeoff ¡ • One ¡coupled ¡tuning ¡knob ¡ • Common ¡case ¡is ¡high ¡synchroniza'on ¡ Synchroniza'on ¡Costs ¡ Low ¡ High ¡ Event ¡Efficiency ¡ GVT ¡ 7 ¡
GVT ¡Tradeoff ¡ • One ¡coupled ¡tuning ¡knob ¡ • Common ¡case ¡is ¡high ¡synchroniza'on ¡ • As ¡we ¡lower ¡synchroniza'on, ¡we ¡lose ¡ efficiency ¡ Synchroniza'on ¡Costs ¡ Low ¡ High ¡ Event ¡Efficiency ¡ GVT ¡ 8 ¡
GVT ¡Tradeoff ¡ • One ¡coupled ¡tuning ¡knob ¡ • Common ¡case ¡is ¡high ¡synchroniza'on ¡ • As ¡we ¡lower ¡synchroniza'on, ¡we ¡lose ¡ efficiency ¡ Synchroniza'on ¡Costs ¡ Low ¡ High ¡ Event ¡Efficiency ¡ GVT ¡ 9 ¡
Reducing ¡Synchroniza'on ¡Costs ¡ Asynchronous Reduction Event Execution Event Execution QD Red FC Continuous Execution Event Exec. Event Execution Event Execution CD Red FC CD Red FC 10 ¡
Performance ¡on ¡Blue ¡Waters ¡ Sync ¡ Cont ¡ 11 ¡
Load ¡Balancing ¡on ¡Blue ¡Waters ¡ 12 ¡
Load ¡Balancing ¡on ¡Blue ¡Waters ¡ 13 ¡
Decoupling ¡the ¡Tuning ¡Knob ¡ • GVT ¡can ¡tune ¡for ¡synchroniza'on ¡ • LB ¡can ¡tune ¡for ¡efficiency ¡ Synchroniza'on ¡Costs ¡ Low ¡ High ¡ Event ¡Efficiency ¡ GVT ¡ 14 ¡
Decoupling ¡the ¡Tuning ¡Knob ¡ • GVT ¡can ¡tune ¡for ¡synchroniza'on ¡ • LB ¡can ¡tune ¡for ¡efficiency ¡ GVT ¡ Synchroniza'on ¡Costs ¡ Low ¡ High ¡ Event ¡Efficiency ¡ LB ¡ 15 ¡
Con'nuous ¡GVT ¡w/ ¡Load ¡Balancing ¡ 16 ¡
Bucketed ¡GVT ¡Scheme ¡ Virtual ¡Time ¡ 17 ¡
Bucketed ¡GVT ¡Scheme ¡ 1. Divide ¡en're ¡simula'on ¡'meline ¡into ¡buckets ¡ Sent: ¡0 ¡ Sent: ¡0 ¡ Sent: ¡0 ¡ Sent: ¡0 ¡ Sent: ¡0 ¡ Sent: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Virtual ¡Time ¡ 18 ¡
Bucketed ¡GVT ¡Scheme ¡ 1. Divide ¡en're ¡simula'on ¡'meline ¡into ¡buckets ¡ 2. Monitor ¡incoming/outgoing ¡events ¡ Sent: ¡4 ¡ Sent: ¡3 ¡ Sent: ¡1 ¡ Sent: ¡0 ¡ Sent: ¡1 ¡ Sent: ¡0 ¡ Recvd: ¡2 ¡ Recvd: ¡1 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Virtual ¡Time ¡ 19 ¡
Bucketed ¡GVT ¡Scheme ¡ 1. Divide ¡en're ¡simula'on ¡'meline ¡into ¡buckets ¡ 2. Monitor ¡incoming/outgoing ¡events ¡ 3. As ¡buckets ¡get ¡passed, ¡advance ¡GVT ¡ Sent: ¡4 ¡ Sent: ¡3 ¡ Sent: ¡1 ¡ Sent: ¡0 ¡ Sent: ¡1 ¡ Sent: ¡0 ¡ Recvd: ¡2 ¡ Recvd: ¡1 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Virtual ¡Time ¡ 20 ¡
Bucketed ¡GVT ¡Scheme ¡ 1. Divide ¡en're ¡simula'on ¡'meline ¡into ¡buckets ¡ 2. Monitor ¡incoming/outgoing ¡events ¡ 3. As ¡buckets ¡get ¡passed, ¡advance ¡GVT ¡ Sent: ¡4 ¡ Sent: ¡3 ¡ Sent: ¡1 ¡ Sent: ¡0 ¡ Sent: ¡1 ¡ Sent: ¡0 ¡ Recvd: ¡2 ¡ Recvd: ¡1 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Recvd: ¡0 ¡ Virtual ¡Time ¡ How ¡do ¡we ¡know ¡when ¡a ¡bucket ¡is ¡passed? ¡ 21 ¡
Bucketed ¡GVT ¡Scheme ¡ Virtual ¡Time ¡ LVT ¡ GVT ¡ Each ¡PE ¡contributes ¡to ¡a ¡ min ¡reduc'on ¡when ¡it ¡ Virtual ¡Time ¡ passes ¡a ¡bucket ¡boundary ¡ LVT ¡ GVT ¡ 22 ¡
Bucketed ¡GVT ¡Scheme ¡ Virtual ¡Time ¡ LVT ¡ GVT ¡ Each ¡PE ¡contributes ¡to ¡a ¡ min ¡reduc'on ¡when ¡it ¡ Virtual ¡Time ¡ passes ¡a ¡bucket ¡boundary ¡ LVT ¡ GVT ¡ Contributes ¡1, ¡for ¡1 ¡bucket ¡passed ¡ 23 ¡
Bucketed ¡GVT ¡Scheme ¡ Contributes ¡2, ¡for ¡2 ¡buckets ¡passed ¡ Virtual ¡Time ¡ LVT ¡ GVT ¡ Each ¡PE ¡contributes ¡to ¡a ¡ min ¡reduc'on ¡when ¡it ¡ Virtual ¡Time ¡ passes ¡a ¡bucket ¡boundary ¡ LVT ¡ GVT ¡ Contributes ¡1, ¡for ¡1 ¡bucket ¡passed ¡ 24 ¡
Bucketed ¡GVT ¡Scheme ¡ • Once ¡the ¡reduc'on ¡completes, ¡we ¡know ¡ everyone ¡has ¡passed ¡at ¡least ¡some ¡buckets ¡ • Start ¡a ¡series ¡of ¡“tuple” ¡reduc'ons ¡of ¡bucket ¡ counts, ¡and ¡buckets ¡passed ¡ • Similar ¡to ¡comple'on ¡detec'on ¡with ¡extra ¡ informa'on ¡ 25 ¡
Bucketed ¡GVT ¡Scheme ¡ • Result ¡of ¡count ¡reduc'ons ¡for ¡ n ¡buckets ¡ – Sent ¡counts: ¡ [s 1 , ¡s 2 , ¡…, ¡s n ] ¡ – Received ¡counts: ¡ [r 1 , ¡r 2 , ¡…, ¡r n ] ¡ – New ¡min ¡bucket ¡passed: ¡ k ¡ • Find ¡ x ¡such ¡that ¡ s i ==r i ¡ for ¡all ¡ i≤x ¡and ¡ x≤k ¡ • Advance ¡GVT ¡ x ¡buckets, ¡ k-‑x ¡keep ¡reducing ¡ 26 ¡
Bucketed ¡GVT ¡Scheme ¡ First ¡2 ¡buckets ¡counts ¡ match, ¡and ¡all ¡PEs ¡have ¡ Sent: ¡4 ¡ Sent: ¡3 ¡ Sent: ¡2 ¡ Recvd: ¡6 ¡ Recvd: ¡7 ¡ Recv: ¡3 ¡ passed ¡at ¡least ¡3 ¡buckets ¡ LVT ¡ GVT ¡ Sent: ¡6 ¡ Sent: ¡7 ¡ Sent: ¡6 ¡ Recvd: ¡4 ¡ Recvd: ¡3 ¡ Recvd: ¡1 ¡ LVT ¡ GVT ¡ 27 ¡
Bucketed ¡GVT ¡Scheme ¡ First ¡2 ¡buckets ¡counts ¡ match, ¡and ¡all ¡PEs ¡have ¡ Sent: ¡4 ¡ Sent: ¡3 ¡ Sent: ¡2 ¡ Recvd: ¡6 ¡ Recvd: ¡7 ¡ Recv: ¡3 ¡ passed ¡at ¡least ¡3 ¡buckets ¡ LVT ¡ GVT ¡ Sent: ¡6 ¡ Sent: ¡7 ¡ Sent: ¡6 ¡ Recvd: ¡4 ¡ Recvd: ¡3 ¡ Recvd: ¡1 ¡ Advance ¡GVT ¡2 ¡buckets, ¡ con'nue ¡wai'ng ¡on ¡the ¡3 rd , ¡ LVT ¡ and ¡possibly ¡pull ¡in ¡more ¡ GVT ¡ 28 ¡
Early ¡Results ¡ • Comparable, ¡or ¡beRer, ¡to ¡Con'nuous ¡ • More ¡manageable/robust ¡ • Easier ¡to ¡tune/understand ¡ • Opportunity ¡for ¡adap've ¡event ¡control ¡ – Adap'vely ¡hold ¡back ¡high-‑risk ¡events ¡ – Reduce ¡overall ¡communica'on ¡load ¡ 29 ¡
Adap've ¡Event ¡Delay ¡ Reg: ¡101 ¡ Reg: ¡90 ¡ Reg: ¡40 ¡ Reg: ¡38 ¡ Reg: ¡27 ¡ Reg: ¡5 ¡ Anti: ¡ ¡ ¡1 ¡ Anti: ¡ ¡3 ¡ Anti: ¡ ¡8 ¡ Anti: ¡30 ¡ Anti: ¡26 ¡ Anti: ¡5 ¡ Offset ¡From ¡GVT ¡ GVT ¡ 30 ¡
Adap've ¡Event ¡Delay ¡ High-‑Risk ¡Events ¡ Reg: ¡101 ¡ Reg: ¡90 ¡ Reg: ¡40 ¡ Reg: ¡38 ¡ Reg: ¡27 ¡ Reg: ¡5 ¡ Anti: ¡ ¡ ¡1 ¡ Anti: ¡ ¡3 ¡ Anti: ¡ ¡8 ¡ Anti: ¡30 ¡ Anti: ¡26 ¡ Anti: ¡5 ¡ Offset ¡From ¡GVT ¡ GVT ¡ 31 ¡
Ques'ons? ¡ 32 ¡
More recommend