Parallelism در Data Mining
Parallelism در Data Mining
در این مقاله قصد داریم مروری بر مفهوم كلمه ی Parallel و یا موازی بودن در مبحث Data Mining داشته باشیم. در ابتدا مقدمه ی كوتاهی پیرامون Data Mining خواهیم داشت.
Data Mining به فرایند استخراج اطلاعات سودمند پنهان در انبوهی از داده ها در پایگاه های داده گفته می شود. امروزه با وجود منابع ذخیره اطلاعات ارزان، علاقه ی سازمان های بزرگ به بكارگیری فرایند های Data Mining رو به افزایش است. Search Engine ها یك مثال كاملاً جا افتاده در استفاده از تكنیك های Data Mining هستند. قابل ذكر است كه استفاده و توسعه ی تكنیك های Data Mining در Search Engine ها برای تولید بهترین نتیجه، اجتناب ناپذیر است.
سرعت پردازش یكی از فاكتور های بسیار مهم در Data Mining می باشد كه با استفاده از سیستم های مدیریت پایگاه داده ای موازی(PDBMS) همانند MS SQL Server 2005 و بكارگیری سیستم های چند پردازشگری میسر می شود(جهت آشنایی با نحوه ی كاركرد تكنیك های Data Mining در MS SQL Server 2005 و سرویس Analysis، به لینك انتهای مقاله رجوع كنید).
استفاده از تكنیك های پردازش موازی در حصول سرعت مطلوب بسیار حیاتی است كه در ادامه به این مطلب خواهیم پرداخت.
Parallelism
همانطور كه می دانید، امروزه پردازش موازی دیگر در انحصار ابركامپیوتر ها نیست. ماشین های Symmetric Multi Processor (SMP) ،Workstation ها، (Massively Parallel Processors (MPP ها و معماری های تركیبی از این تكنولوژی ها در دنیای امروز دستیافتنی اند. معماری های موازی در برنامه هایی كه با حجم عظیمی از داده سرو كار دارند، همچون برنامه های Data Mining، به چند طبقه دسته بندی می شوند. برای مثال معماری های Share-Disk ،Shared-Memory ،Shared-Nothing و Shared-Something.
در معماری Shared-Memory، تمام پردازنده ها از حافظه ی اصلی مشتركی استفاده می كنند. در Shared-Disk، حافظه ی ارزان دیسك میان پردازنده ها مشترك است. در ماشین های SMP، تركیب این دو معماری به چشم می خورد. در این ماشین ها، هر پردازنده حافظه ی Cache مخصوص به خود را دارد اما حافظه اصلی و همینطور حافظه ی دیسك مشترك است.
در معماری Shared-Nothing، هر پردازنده، حافظه ی اصلی و دیسك مربوط به خود را دارد و از این رو، افرایش منابع در این معماری راحت تر است. این معماری در Workstation ها و MMP ها مورد استفاده قرار میگیرد. در Workstation ها، ارتباط میان پردازنده ها توسط شبكه های Ethernet برقرار میگردد در حالی كه در MMP ها، این ارتباط توسط شبكه های سریع و حتی Bus ها انجام میگیرد.
معماری Shared-Something تركیبی از معماری های Shared-Memory و Shared-Nothing است. در این معماری مجموعه ای از ماشین های SMP توسط خطوط ارتباطی دو طرفه با یكدیگر در ارتباط اند.
انواع Parallelism
ابتدا به دو نوع Inter-Model و Intra-Model خواهیم پرداخت. در نوع اول، هر پردازنده مدل مربوط به خود را دارد(این مدل ها، در یافتن اطلاعات پنهان مورد استفاده قرار می گیرند). در نوع دوم، همه ی پردازنده ها در حوزه ی یك مدل فعالیت میكنند. این نوع از Parallelism، در مواردی كاربرد دارد كه ساخت مدل به مدت زمان زیادی نیاز دارد.
Data Parallelism و Control Parallelism
Data Parallelism مربوط به اجرای یك عملیات بر روی چندین مجموعه ی داده ای است در حالی كه Control Parallelism تاكید بر اجرای چندین عملیات به صورت همزمان را دارد.
در مدل سوم، پردازش موازی تنها در هنگام دسترسی بر اطلاعات انجام میگردد كه معمولا بر عهده ای Provider داده است. از این رو این مدل بسیار شبیه به برنامه های معمولی است كه كار را برای برنامه نویسان ساده می كند. در مقابل نوع چهارم تاكید زیادی بر نحوه ی انجام پردازش در مراحل مختلف پردازش موازی دارد. در مقایسه ی اجمالی، نوع سوم پردازش موازی در مورد داده های عظیم و نوع چهارم در مورد حوزه های جستجوی مختلف مناسب تر است. از طرفی استفاده همزمان از هر دو نوع سوم و چهارم نیز امكان پذیر است. در پایان به موانع موجود در پردازش موازی خواهیم پرداخت.
موانع پردازش موازی
۱- هزینه ی شروع:
همواره ممكن است هزینه ی شروع یك فرایند كل عملیات پردازش موازی را تحت تاثیر قرار دهد.
۲- اختلال:
از آنجا كه فرایند ها معمولاً از حافظه ی یكسان استفاده می كنند، كنترل دسترسی منابع موجب ایجاد سربار خواهد شد.
۳- ارتباط:
گاهی فرایند ها نیاز به برقراری ارتباط با یكدیگر دارند. این ارتباط تحت شرایطی مانع پردازش موازی است كه ادامه ی اجرای یك فرایند وابسته به ارتباط با فرایند دیگری باشد.
۴- انحراف:
اگر تقسیم كار یا Workload به گونه ی مناسبی نباشد و فرضاً برخی فرایند ها به سرعت به كار خود پایان دهند و برخی مدت زیادی مشغول اجرا باشند، نتیجه ی بدست آمده از پردازش موازی دور از انتظار خواهد بود.
۵- اتحاد:
پس از تقسیم كارها بین پردازنده های مختلف و اجرای آنها، معمولاً یك فرایند مسئول جمع آوری نتایج از همه ی فرایند ها می شود تا نتیجه ی پایانی حاصل گردد. از آنجا كه این فرایند ممكن نیست به صورت موازی انجام گردد، كل عملیات را تحت تاثیر قرار می دهد.
|