Expression ¡Level ¡Parallelism ¡for ¡Distributed ¡ Spice ¡Circuit ¡Simula:on ¡ Dylan ¡Pfeifer ¡ The ¡University ¡of ¡Texas ¡at ¡Aus6n ¡ Intel ¡Corpora6on ¡ Dr. ¡Andreas ¡Gerstlauer ¡ The ¡University ¡of ¡Texas ¡at ¡Aus6n ¡ The ¡15 th ¡IEEE/ACM ¡Interna6onal ¡Symposium ¡on ¡Distributed ¡ Simula6on ¡and ¡Real ¡Time ¡Applica6ons ¡ ¡ MediaCityUK, ¡Salford, ¡Manchester, ¡U.K. ¡ ¡ Sep. ¡5 ¡, ¡2011 ¡
Topics ¡ I. Introduc6on ¡and ¡Requirements ¡ II. ¡ ¡ ¡ ¡Kahn ¡Process ¡Networks ¡and ¡Interpolated ¡Events ¡ III. Applica6on: ¡ ¡Expression-‑level ¡parallelism ¡for ¡Spice ¡ V. ¡ ¡ ¡ ¡Q ¡& ¡A ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[1 ¡of ¡7] ¡ ¡ System ¡Level ¡Design ¡(SLD): ¡ ¡“The ¡next ¡fron6er ¡in ¡EDA ¡[1]” ¡ Need: ¡ ¡To ¡concurrently ¡simulate ¡the ¡hardware ¡and ¡sofware ¡ behavior ¡of ¡real-‑6me ¡embedded ¡and ¡cyber-‑physical ¡systems ¡ ¡ 1. Support ¡concurrent ¡simula6on ¡of ¡mul6ple ¡engineering ¡ domains ¡– ¡electrical, ¡mechanical, ¡fluid, ¡thermal, ¡and ¡ biomedical ¡engineering ¡ 2. Support ¡mul6ple ¡levels ¡of ¡model ¡abstrac6on, ¡from ¡ transac6on-‑level ¡modeling ¡(TLM), ¡to ¡register ¡transfer ¡ level ¡(RTL), ¡to ¡conserva6ve ¡signal ¡networks ¡KVL/KCL ¡ [1] ¡ ¡Sangiovanni-‑Vincentelli, ¡A.; ¡, ¡"Quo ¡Vadis, ¡SLD? ¡Reasoning ¡ About ¡the ¡Trends ¡and ¡Challenges ¡of ¡System ¡Level ¡Design," ¡ Proceedings ¡of ¡the ¡IEEE ¡, ¡vol.95, ¡no.3, ¡pp.467-‑506, ¡March ¡2007 ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[2 ¡of ¡7] ¡ ¡ 3. * ¡Enable ¡source ¡level ¡sofware ¡debugging ¡over ¡ a ¡virtual ¡system ¡target ¡that ¡includes ¡models ¡of ¡ embedded ¡processors, ¡board ¡level ¡devices, ¡ transducers, ¡and ¡world ¡physical ¡effects ¡ 4. Model ¡closed ¡loop ¡systems ¡with ¡feedback ¡ (cycles ¡in ¡subsystem ¡dependencies ¡and ¡signal ¡ flow), ¡ ¡emphasizing ¡sofware ¡interac6on ¡with ¡ physical ¡processes ¡ 5. Support ¡wide ¡area ¡distributed ¡simula6on ¡ ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[3 ¡of ¡7] ¡ ¡ Example: ¡ ¡EKG ¡signal ¡condi:oning ¡[1] ¡ [1] ¡Valvano, ¡Real ¡Time ¡Embedded ¡Instrumenta6on ¡ hjp://users.ece.utexas.edu/~valvano ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[4 ¡of ¡7] ¡ ¡ Solu:on ¡Design ¡Choices ¡ • ¡Created ¡a ¡distributed, ¡heterogeneous, ¡mul6-‑domain ¡simulator ¡ connec6on ¡system ¡that ¡supports ¡independent, ¡concurrently ¡ running ¡simulators ¡of ¡choice ¡that ¡best ¡model ¡subsystem ¡ components ¡ • ¡Created ¡a ¡client/server-‑based ¡simulator ¡backplane ¡called ¡ “SimConnect” ¡ • ¡Created ¡lightweight ¡socket-‑based ¡message ¡passing ¡protocol ¡ called ¡“SimTalk” ¡ • ¡Structure ¡backplane ¡around ¡an ¡abstracted ¡dataflow ¡model: ¡ Kahn ¡Process ¡Network ¡ • ¡Use ¡ interpolated ¡event ¡ (IE) ¡data ¡types ¡as ¡KPN ¡tokens ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[5 ¡of ¡7] ¡ ¡ Cosimula:on ¡view: ¡ ¡ ¡ CAN ¡network ¡ Each ¡simulator ¡runs ¡ • independently ¡as ¡its ¡ own ¡process ¡ Communica6on ¡occurs ¡ • through ¡IPC ¡to ¡ backplane ¡data ¡server ¡ Synchroniza6on ¡occurs ¡ • through ¡“interpolated ¡ event” ¡data ¡tokens ¡ from ¡backplane ¡server ¡ • SimTalk/SimConnect ¡ implements ¡KPN ¡ dataflow ¡rules ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[6 ¡of ¡7] ¡ ¡ Cosimula:on ¡view: ¡ ¡ ¡ Distributed ¡Spice ¡ Instan6ate ¡<n> ¡ • independent ¡Spice ¡ simula6on ¡processes ¡ Par66on ¡model ¡into ¡<n> ¡ • subcircuits ¡assigned ¡over ¡ <n> ¡simulators ¡ (“expression-‑level” ¡ parallelism) ¡ Simulators ¡require ¡no ¡ • code-‑changes ¡if ¡they ¡offer ¡ a ¡device-‑level ¡host ¡OS ¡ interface ¡with ¡socket ¡ support ¡
I. ¡ ¡Introduc6on ¡and ¡Requirements ¡[7 ¡of ¡7] ¡ ¡ Challenges ¡inherited ¡from ¡Parallel ¡Discrete ¡Event ¡Simula:on ¡(PDES) ¡ • ¡Each ¡simulator, ¡having ¡an ¡independent ¡process ¡and ¡address ¡ space, ¡maintains ¡its ¡own ¡copy ¡of ¡6me ¡(“local ¡virtual ¡6me”) ¡ • ¡Simulators ¡(“logical ¡processes”) ¡may ¡advance ¡their ¡local ¡6me ¡ at ¡different ¡rates ¡-‑ ¡no ¡central ¡6me ¡controller ¡or ¡master-‑slave ¡ topology ¡ ¡ • ¡Simulators ¡are ¡signal-‑interdependent: ¡ ¡internal ¡state ¡depends ¡ on ¡signals ¡and ¡events ¡produced ¡by ¡other ¡simulators ¡progressing ¡ at ¡different ¡rates ¡ • ¡To ¡preserve ¡global ¡event ¡causality, ¡the ¡“local ¡causality ¡ constraint” ¡(LCC) ¡applies: ¡ ¡simulators ¡must ¡process ¡events ¡in ¡ 6mestamp ¡order ¡(simulators ¡cannot ¡advance ¡local ¡6me ¡beyond ¡ the ¡6mestamp ¡of ¡input ¡events ¡from ¡other ¡simulators, ¡unless ¡ rollback ¡is ¡offered) ¡
Topics ¡ I. Introduc6on ¡and ¡Requirements ¡ II. ¡ ¡ ¡ ¡Kahn ¡Process ¡Networks ¡and ¡Interpolated ¡Events ¡ III. Applica6on: ¡ ¡Expression-‑level ¡parallelism ¡for ¡Spice ¡ V. ¡ ¡ ¡ ¡Q ¡& ¡A ¡
II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[1 ¡of ¡5] ¡ Kahn ¡Process ¡Network ¡(KPN): ¡ ¡Proper:es ¡I ¡ • ¡ The ¡KPN ¡is ¡a ¡directed ¡graph ¡with ¡arcs, ¡ represen6ng ¡simplex ¡FIFOs, ¡and ¡ nodes, ¡represen6ng ¡concurrent ¡ compute ¡elements ¡without ¡ interdependent ¡side-‑effects ¡ ¡ • ¡ Nodes ¡may ¡read ¡from ¡input ¡FIFOs ¡and ¡ write ¡to ¡output ¡FIFOs, ¡but ¡reads ¡are ¡ blocking ¡(the ¡node ¡stalls) ¡if ¡the ¡FIFO ¡is ¡ empty, ¡while ¡writes ¡always ¡succeed ¡ (the ¡node ¡does ¡not ¡stall) ¡
II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[2 ¡of ¡5] ¡ Kahn ¡Process ¡Network ¡(KPN): ¡ ¡Proper:es ¡II ¡ • ¡The ¡KPN ¡is ¡independent ¡on ¡the ¡ order ¡of ¡node ¡execu6on ¡if ¡the ¡KPN ¡ dataflow ¡rules ¡are ¡followed ¡ ¡ • ¡The ¡KPN ¡is ¡completely ¡determined ¡ by ¡its ¡node ¡set, ¡arc ¡set, ¡ini6al ¡ condi6ons, ¡and ¡FIFO ¡producer ¡rates ¡ • ¡Nodes ¡may ¡not ¡condi6onally ¡ execute ¡by ¡FIFO ¡sniffing ¡ • ¡FIFOs ¡are ¡unbounded ¡(infinite ¡ depth) ¡ ¡ • ¡Execu6on ¡is ¡determinis6c ¡
II. ¡ ¡KPN ¡and ¡Interpolated ¡Events ¡[3 ¡of ¡5] ¡ KPN ¡to ¡distributed ¡cosimula:on ¡mapping: ¡ • ¡FIFO’s ¡are ¡simplex ¡ output ¡–to ¡– ¡input ¡ channels ¡between ¡ simulators, ¡signal ¡ producer ¡to ¡signal ¡ consumer ¡ • ¡ Nodes ¡are ¡simulators ¡ • ¡Simulators ¡stalled ¡iff ¡ input ¡FIFOs ¡empty ¡(sync ¡ • ¡Nodes ¡consume ¡inputs, ¡ is ¡then ¡achieved ¡as ¡a ¡ compute, ¡produce ¡outputs, ¡ result ¡of ¡dataflow) ¡ ¡ and ¡repeat ¡
Recommend
More recommend