Abstract
Most complex information systems are event driven: each part of the system reacts to the events happening in the other parts, potentially generating new events. Complex event processing (CEP) engines in charge of interpreting, filtering, and combining primitive events to identify higher level composite events according to a set of rules are the new breed of message-oriented middleware, which is being proposed today to better support event-driven interactions. A key requirement for CEP engines is low latency processing, even in presence of complex rules and large numbers of incoming events. In this paper, we investigate how parallel hardware may speed up CEP processing. In particular, we consider the most common operators offered by existing rule languages (i.e., sequences, parameters, and aggregates); we consider different algorithms to process rules built using such operators; and we discuss how they can be implemented on a multi-core CPU and on CUDA, a widespread architecture for general-purpose programming on GPUs. Our analysis shows that the use of GPUs can bring impressive speedups in the presence of complex rules. On the other hand, it shows that multi-core CPUs scale better with the number of rules. Our conclusion is that an advanced CEP engine should leverage a multi-core CPU for processing the simplest rules, using the GPU as a coprocessor devoted to process the most complex ones
چکیده
اغلب سیستمهای اطلاعاتی پیچیده توسط رویداد اجرایی میشوند (رویداد-محور): هر بخش سیستم به رویدادهای دیگر بخش ها واکنش می دهد و احتمالا" رویدادهای جدیدی خلق می کند. موتورهای CEP (پردازش رویداد پیچیده) مسؤل تفسیر، فیلترینگ و ادغام رویدادهای اولیه برای شناسایی رویدادهای ترکسیبی سطح بالاتر طبق گروهی از اصول، نسل جدیدی از میان افزار پیام محور هستند که امروزه برای ساپورت فعل و انفعالات رویداد-محور ارایه میشود. یکی از شرایط اصلی موتورهای CEP، پردازش با تاخیر اندک است حتی با وجود اصول پیچیده و تعداد زیاد رویدادهای ورودی.ما در این مقاله چگونگی سرعت بخشیدن سخت افزار موازی به پردازش CEP را بررسی می کنیم. بخصوص رایجترین اپراتورهای حاصل از زبانهای اصول کنونی را در نظر میگیریم، الگوریتمهای مختلف پردازش اصول ساخته با استفاده از این اپراتورها را مطرح میکنیم و نشان میدهیم چگونه میتوان آنها را در یک CPU چند هسته ای و CUDA اجرا کرد. آنالیز ما نشان میدهد که استفاده از GPUS میتواند تاثیر چشمگیری بر سرعت با وجود اصول پیچیده داشته باشد. از سوی دیگر نشان میدهد که CPUS چند هسته ای با شماره ی اصول بهتر رتبه بندی میشوند. نتیجه گیری ما این است که که یک موتور CEP پیشرفته باید CPU چند هسته ای را برای پردازش ساده ترین اصول مدیریت کند،این کار با استفاده از GPU بعنوان یک پردازشگر ویژه ی پردازش پیچیده ترین موارد انجام میشود.
1-مقدمه
اکثر سیستمهای اطلاعاتی موجود نهایتا" رویداد محور هستند.جریانهای اطلاعاتی توسط رویدادها ترغیب میشوند و رویدادهای جدیدی خلق میکنند. هربخش سیستم به رویدادهای بخشهای دیگر واکنش میدهد و رویدادهای جدیدی خلق میشوند. این پدیده عامل کارهای زیادی در حوزه ICT وبررسی بهترین روش ساپورت و اتوماتیک کردن این فعل و انفعالات است...