To Towards ¡High ¡ ¡Performa mance ¡ ¡ Processing ¡ ¡of ¡ ¡Streami ming ¡ ¡Data May-‑27-‑2016 ¡ Supun ¡Kamburugamuve, ¡Saliya ¡Ekanayake, ¡Milinda ¡Pathirage ¡and ¡ Geoffrey ¡C. ¡Fox ¡ Indiana ¡University ¡ Bloomington, ¡USA ¡ ¡
Outline • Research ¡MoMvaMon ¡ • Distributed ¡stream ¡processing ¡systems ¡(DSPFs) ¡ • CommunicaMon ¡improvements ¡ • Results ¡ • Future ¡work ¡
Background ¡& ¡Mo>va>on RoboMcs ¡ApplicaMons ¡ Time ¡series ¡data ¡visualizaMon ¡ Simultaneous ¡LocalizaMon ¡and ¡Mapping ¡ N-‑Body ¡Collision ¡Avoidance ¡ in ¡real ¡Mme ¡ Work ¡in ¡progress ¡ Robot ¡with ¡a ¡Laser ¡ Robots ¡need ¡to ¡avoid ¡ Map ¡Built ¡from ¡Robot ¡data ¡ Range ¡Finder ¡ collisions ¡when ¡they ¡move ¡ HPC ¡ApplicaMons ¡ Cloud ¡ApplicaMons ¡
Data ¡pipeline Sending ¡to ¡ ¡ Sending ¡to ¡ ¡ PersisMng ¡ ¡ pub-‑sub ¡ to ¡storage ¡ MulMple ¡ ¡ streaming ¡ ¡ workflows ¡ A ¡stream ¡ applicaMon ¡with ¡ Streaming ¡ ¡ some ¡tasks ¡running ¡ workflow ¡ in ¡parallel ¡ Gateway ¡ Message ¡Brokers ¡ RabbitMQ, ¡KaZa ¡ Streaming ¡Workflows ¡ Apache ¡Storm ¡ End ¡to ¡end ¡delays ¡without ¡any ¡ Hosted ¡in ¡FutureSystems ¡OpenStack ¡cloud ¡ processing ¡is ¡less ¡than ¡10ms ¡ which ¡is ¡accessible ¡through ¡IU ¡network ¡
Improving ¡communica>ons • Broadcast ¡communicaMon ¡ • Shared ¡memory ¡communicaMon ¡between ¡workers ¡in ¡a ¡node ¡ ¡
Streaming ¡Applica>on Stream ¡of ¡events ¡ Event ¡processing ¡logic ¡ User ¡Graph ¡ ExecuMon ¡Graph ¡ User ¡graph ¡is ¡converted ¡to ¡an ¡execuMon ¡graph ¡ Communica)on ¡methods ¡ Broadcast, ¡Round ¡Robin, ¡Direct, ¡Stream ¡ParMMoning ¡
Example ¡applica>ons N-‑Body ¡collision ¡avoidance ¡ SLAM ¡ ParMcles ¡are ¡distributed ¡ ¡ in ¡parallel ¡tasks ¡ Map ¡building ¡ happens ¡ periodically ¡
Execu>on ¡Graph ¡Distribu>on ¡in ¡the ¡Storm ¡ Cluster Node-‑1 ¡ Node-‑2 ¡ S ¡ W ¡ S ¡ G ¡ W ¡ W ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ Two ¡node ¡cluster ¡each ¡running ¡two ¡workers. ¡The ¡tasks ¡of ¡the ¡ Topology ¡is ¡assigned ¡to ¡the ¡workers ¡
Communica>ons ¡in ¡Storm B ¡ W ¡ Node-‑1 ¡ Node-‑2 ¡ Node-‑1 ¡ Node-‑2 ¡ B-‑1 ¡ W-‑2 ¡ W-‑4 ¡ W-‑6 ¡ B-‑1 ¡ W-‑2 ¡ W-‑4 ¡ W-‑6 ¡ W-‑1 ¡ W-‑3 ¡ W-‑5 ¡ W-‑7 ¡ W-‑1 ¡ W-‑3 ¡ W-‑5 ¡ W-‑7 ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡and ¡Task ¡distribuMon ¡of ¡Storm ¡ CommunicaMon ¡links ¡are ¡between ¡workers ¡ A ¡worker ¡hosts ¡mulMple ¡tasks. ¡B-‑1 ¡is ¡a ¡task ¡ These ¡are ¡mulMplexed ¡among ¡the ¡tasks ¡ ¡ of ¡component ¡B ¡and ¡W-‑1 ¡is ¡a ¡task ¡of ¡W ¡ ¡ 9 ¡
Default ¡Broadcast Node-‑1 ¡ Node-‑2 ¡ B-‑1 ¡ W-‑2 ¡ W-‑4 ¡ W-‑6 ¡ W-‑1 ¡ W-‑3 ¡ W-‑5 ¡ W-‑7 ¡ Worker ¡ Worker ¡ Worker ¡ Worker ¡ B-‑1 ¡wants ¡to ¡broadcast ¡a ¡message ¡to ¡W, ¡it ¡sends ¡6 ¡ messages ¡through ¡3 ¡TCP ¡communicaMon ¡channels ¡ and ¡send ¡1 ¡message ¡to ¡W-‑1 ¡via ¡memory ¡ 10 ¡
Op>mized ¡Broadcast • Binary ¡tree ¡ • Workers ¡arranged ¡in ¡a ¡binary ¡tree ¡ • Flat ¡tree ¡ • Broadcast ¡from ¡the ¡origin ¡to ¡1 ¡worker ¡in ¡each ¡node ¡sequenMally. ¡This ¡worker ¡ broadcast ¡to ¡other ¡workers ¡in ¡the ¡node ¡sequenMally ¡ • BidirecMonal ¡Rings ¡ • Workers ¡arranged ¡in ¡a ¡line ¡ • Starts ¡two ¡broadcasts ¡from ¡the ¡origin ¡and ¡these ¡traverse ¡half ¡of ¡the ¡line ¡
Three ¡Algorithms ¡for ¡broadcast Serial ¡Broadcast ¡ Flat ¡tree ¡ Binary ¡tree ¡ Ring ¡ Example ¡broadcasMng ¡communicaMons ¡for ¡each ¡algorithm ¡in ¡a ¡4 ¡node ¡cluster ¡with ¡each ¡machine ¡ having ¡4 ¡workers. ¡The ¡outer ¡green ¡boxes ¡show ¡cluster ¡machines ¡and ¡inner ¡small ¡boxes ¡show ¡ workers. ¡The ¡top ¡box ¡displays ¡the ¡broadcasMng ¡worker ¡and ¡arrows ¡illustrate ¡the ¡communicaMon ¡ among ¡the ¡workers ¡
Shared ¡memory ¡based ¡Communica>ons • Inter ¡process ¡communicaMons ¡using ¡shared ¡memory ¡for ¡a ¡single ¡node ¡ • MulMple ¡writer ¡single ¡reader ¡design ¡ • Writer ¡breaks ¡the ¡message ¡in ¡to ¡packets ¡and ¡puts ¡them ¡to ¡memory ¡ • Reader ¡reads ¡the ¡packets ¡and ¡assemble ¡the ¡message ¡ ¡
Shared ¡Memory ¡Communica>ons Read ¡packet ¡by ¡packet ¡ sequenMally ¡ Write ¡ ¡ Reader ¡ Writer ¡01 ¡ Obtain ¡the ¡write ¡locaMon ¡ write ¡ Packet ¡1 ¡ Packet ¡2 ¡ Packet ¡3 ¡ atomically ¡and ¡increment ¡ Writer ¡02 ¡ Write ¡ Shared ¡File ¡ Use ¡a ¡new ¡file ¡when ¡the ¡file ¡size ¡is ¡reached ¡ Reader ¡deletes ¡the ¡files ¡acer ¡it ¡reads ¡them ¡fully ¡ Fields ¡ ID ¡ No ¡of ¡Packets ¡ Packet ¡No ¡ Dest ¡Task ¡ Content ¡Length ¡ Source ¡Task ¡ Stream ¡Length ¡ Stream ¡ Content ¡ Bytes ¡ 16 ¡ 4 ¡ 4 ¡ 4 ¡ 4 ¡ 4 ¡ 4 ¡ Variable ¡ Variable ¡ Packet ¡Structure ¡
Experiments • 11 ¡Node ¡cluster ¡ W • 1 ¡Node ¡– ¡Nimbus ¡& ¡ZooKeeper ¡ RabbitMQ ¡ R B W G RabbitMQ ¡ • 1 ¡Node ¡– ¡RabbitMQ ¡ ¡ W • 1 ¡Node ¡– ¡Client ¡ • 8 ¡Nodes ¡– ¡Supervisors ¡with ¡4 ¡ Client ¡ workers ¡each ¡ • Client ¡sends ¡messages ¡with ¡the ¡ current ¡Mmestamp, ¡the ¡topology ¡ returns ¡a ¡response ¡with ¡the ¡same ¡ Mme ¡stamp. ¡Latency ¡= ¡current ¡Mme ¡-‑ ¡ Mmestamp ¡
Memory ¡Mapped ¡Communica>ons ¡ ¡ RelaMve ¡Importance ¡of ¡Shared ¡Memory ¡ CommunicaMon ¡to ¡TCP ¡ A ¡topology ¡with ¡ No ¡significant ¡ communicaMons ¡going ¡ difference ¡ ¡ through ¡all ¡the ¡workers ¡ because ¡we ¡are ¡ arranged ¡in ¡a ¡line ¡ using ¡all ¡ ¡ the ¡workers ¡in ¡the ¡ cluster ¡beyond ¡30 ¡ workers ¡ Default ¡TCP ¡implementaMon ¡Latency ¡ Y ¡axis ¡shows ¡the ¡difference ¡in ¡latency ¡ of ¡default ¡TCP ¡implementaMon ¡and ¡ shared ¡memory ¡based ¡implementaMon ¡ About ¡25% ¡reducMon ¡for ¡32 ¡workers ¡ (TCP ¡-‑ ¡SHM) ¡
Broadcast ¡Latency ¡Improvement Speedup ¡of ¡latency ¡with ¡ both ¡TCP ¡based ¡and ¡ Shared ¡Memory ¡based ¡ communicaMons ¡for ¡ different ¡algorithms ¡ Latency ¡of ¡binary ¡tree, ¡flat ¡tree ¡and ¡bi-‑direcMonal ¡ring ¡implementaMons ¡compared ¡to ¡serial ¡implementaMon. ¡ Different ¡lines ¡show ¡varying ¡parallel ¡tasks ¡with ¡TCP ¡communicaMons ¡and ¡shared ¡memory ¡communicaMons(SHM). ¡
Throughput Throughput ¡of ¡serial, ¡binary ¡tree, ¡flat ¡tree ¡and ¡ring ¡implementaMons. ¡Different ¡lines ¡show ¡varying ¡parallel ¡tasks ¡with ¡TCP ¡ communicaMons ¡and ¡shared ¡memory ¡communicaMons ¡(SHM) ¡
Future ¡Work • Implement ¡the ¡Shared ¡memory ¡and ¡communicaMon ¡algorithms ¡for ¡ other ¡stream ¡engines ¡(Twiler ¡Heron) ¡ • Experiment ¡on ¡larger ¡clusters ¡with ¡applicaMons ¡ • HPC ¡Scheduler ¡for ¡Streaming ¡applicaMons ¡(Slurm, ¡Torque) ¡ • C++ ¡APIs ¡for ¡data ¡processing ¡ • High ¡performance ¡interconnects ¡for ¡high ¡throughput ¡low ¡latency ¡ communicaMons ¡in ¡HPC ¡clusters ¡ • Scheduling ¡to ¡take ¡advantage ¡of ¡the ¡shared ¡memory ¡& ¡collecMve ¡ communicaMons ¡
Recommend
More recommend