پروژه بررسی الگوریتم خوشه بندی در ساخت سیستم های توزیع شده
دسته بندي :
فنی و مهندسی »
کامپیوتر و IT
عنوان پروژه : بررسی
الگوریتم خوشه بندی در ساخت
سیستم های توزیع شدهتعداد صفحات : ۱۵۳
شرح مختصر پروژه : پروژه ای که در این مطلب برای دانلود آماده شده است ، به بررسی الگوریتم خوشه بندی در ساخت سیستم های توزیع شده پرداخته است. هدف از این پروژه خوشه بندی کلاس های یک برنامه شی گرا جهت ایجاد حداکثر همروندی اجرای کد توزیعی برنامه ها و رسیدن به کمترین زمان اجرا تا حد امکان می باشد. برای رسیدن به بیشترین همروندی و توزیع بهینه، باید مکان مناسب هر یک از کلاسهای برنامه در خوشه بندی گراف فراخوانی آنها مشخص گردد. بعبارت دیگر کلاسهای موجود در برنامه آنقدر باید جابجا شوند که کلاسهایی با حجم کاری زیاد عوض اینکه در یک خوشه جمع شوند، در خوشه های مختلف ,توزیع شوند تا زمان اجرای کل برنامه توزیع شده کاهش یابد.
در این پروژه روشی جدید برای توزیع اتوماتیک برنامه های ترتیبی با
الگوریتم خوشه بندی کلاس های آن صورت می گیرد.تکنیک های الگوریتم خوشه بندی متنوعی تا کنون برای این منظور استفاده شده است که پس از بررسی مزایا و معایب هر یک روش جدیدی برای خوشه بندی معرفی شده است. پس از خوشه بندی معماری طوری بازسازی میشود که حداکثر همروندی در اجرای قطعات توزیع شده ایجاد شود لذا در این پروژه روشی برای بازسازی معماری سیستم های توزیعی علمی با ایجاد حداکثر همروندی در اجرای کد برنامه ها ارائه خواهد شد.
یک سیستم توزیع شده مجموعه ای از کامپیوتر های مستقل می باشند که برای انجام کارهای مختلف با یکدیگر همکاری کرده و به صورت یک سیستم واحد و قدرتمند برای کاربران دیده می شوند. یک سیستم توزیع شده حداقل بایداهداف زیر را برآورده کند: ۱-به سادگی منابع موجود در شبکه را در اختیار کاربران قرار دهد.۲ – کاربران نباید از این موضوع که منبع مورد استفاده آنها در کامپیوتر دیگری در شبکه قرار دارد مطلع شوند.(شفافیت) ۳- سیستم توزیع شده باید باز باشد. ۴- سیستم توزیع شده باید مقیاس پذیر باشد. با افزایش روزافزون نیاز به توان پردازشی سریعتر، هیچ بستر محاسباتی منفرد، نمی تواند پاسخگوی این نیاز باشد بنابراین محیطهای پردازشی آتی باید بتواننداز منابع محاسباتی نا همگن موجود در شبکه استفاده کنند. فقط سیستم های موازی و توزیع شده امکان استفاده از منابع مختلف موجود در شبکه را میسر می کنند.
در فصل اول دلایل نیاز به یک توزیعگر اتوماتیک، کار های مرتبط انجام شده با این موضوع و ساختار کلی محیط پیاده سازی شده جهت تبدیل برنامه های ترتیبی به نسخه های توزیع شده از همان برنامه بررسی شده است . در فصل دوم تحقیقات و ابزارهای مرتبط با این پروژه و نحوه استخراج کد خلاصه شده از متن برنامه جهت ساخت گراف فراخوانی متد ها ، بررسی شده اند. در فصل سوم نحوه وزن گذاری گراف فراخوانی استخراج شده و ساخت گراف کلاس های برنامه بررسی شده است . در فصل چهارم نحوه خوشه بندی گراف وابستگی استخراج شده توسط تکنیک های خوشه بندی سلسله مراتبی و یافتن تعداد خوشه های بهینه برای کلاس های برنامه ترتیبی توصیف شده است. و در فصل پنجم به نحوه پیاده سازی و ارزیابی روش پیشنهادی پرداخته خواهد شد . در فصل ششم نتیجه گیری از مطالب و نیز کارهای آتی بیان شده است.
در ادامه فهرست مطالب پروژه بررسی الگوریتم خوشه بندی در ساخت سیستم های توزیع شده را مشاهده میفرمایید :
مقدمه
چکیده
فصل ۱- مفاهیم اولیه
۱-۱- سیستم های توزیع شده
۱-۱-۱- مزایا و معایب سیستم های توزیع شده
۱-۲- انگیزش
۱-۳- مراحل کلی تبدیل برنامه ترتیبی به برنامه توزیع شده
۱-۴- ساختار پایان نامه
۱-۵- جمع بندی
فصل ۲- تکنیک ها و ابزارهای مرتبط
۲-۱- ابزارهای تبادل پیام در مقایسه با حافظه اشتراکی توزیع شده
۲-۲- تبادل پیام
۲-۲-۱- خصوصیات مطلوب یک سیستم تبادل پیام
۲-۲-۲- طبقه بندی ابزارهای تبادل پیام
۲-۳- توزیعگرهای اتوماتیک
۲-۳-۱- ابزار های نیمه اتوماتیک
۲-۳-۲- ابزار های تمام اتوماتیک
۲-۳-۳- توزیع بایت کد جاوا بر مبنای تحلیل وابستگی به صورت اتوماتیک
۲-۴- مطابقت اندازه گره در محیط برنامه نویسی شیگرا به صورت پویا توسط روش اسکوپ
۲-۵- افراز بندی در سیستم توزیع شده شی گرا به صورت پویا
۲-۵-۱- معیارهای مختلف در زمینه گروه بندی اشیاء
۲-۵-۲- الگوریتم خوشه بندی مشتق شده از الگوریتم حریصانه lo,s
۲-۵-۳- دسته بندی اشیاء موجود در خوشه ها
۲-۶- نتیجه گیری
فصل ۳- استخراج گراف فراخوانی
۳-۱- ساخت گراف جریان فراخوانی
۳-۲- الگوریتم های تعین مقصد فراخوانی
۳-۲-۱- روش آنالیز نوع ایستاتیک
۳-۲-۲- روش آنالیز سلسله مراتب کلاس
۳-۲-۳- روش آنالیز نوع سریع
۳-۲-۴- روش آنالیز نوع سریع حساس به جریان برنامه
۳-۳- استخراج گراف فراخوانی جهت ساخت گراف کلاسها
۳-۴- مقایسه الگوریتم های ساخت گراف فراخوانی
۳-۵- وزن گذاری گراف فراخوانی
۳-۶- استراتژی وزن گذاری یال های گراف فراخوانی توابع
۳-۷- برآورد زمان اجرای کد های ترتیبی
۳-۷-۱- روش های برآورد زمان اجرای کد های ترتیبی
۳-۷-۲- برآورد زمان اجرای کدهای برنامه با آنالیز متن برنامه
۳-۷-۳- تخمین ایستای زمان اجرای برنامه ها
۳-۷-۴- تعیین سرحد تکرار حلقهها و فراخوانیهای بازگشتی
۳-۷-۵- حذف مسیرهای اجرا نشدنی
۳-۷-۶- بهینه سازی کامپایلرها و تخمین زمان اجرای برنامه
۳-۸- زبان های برنامه سازی و تخمین زمان اجرا
۳-۹- رعایت میزان دقت تخمین در زمان اجرا
۳-۱۰- معیارهای موجود در تخمین طولانی ترین زمان اجرا
۳-۱۰-۱- تحلیل جریان داده
۳-۱۰-۲- تحلیل کاهش بازگشتی
۳-۱۰-۳- حجم زیاد اطلاعات
۳-۱۰-۴- استفاده از کد Object برنامه
۳-۱۱- بایت کد جاوا و محاسبه زمان اجرای دستورالعملها
۳-۱۲- محاسبه زمان اجرای حلقه ها
۳-۱۲-۱- نحوه شناسایی حلقه های تکرار
۳-۱۳- انتشار دامنه مقادیر
۳-۱۴- دستورات شرطی و نحوه شناسایی آنها
۳-۱۵- محاسبه زمان اجرای کل برنامه با استفاده از روش پیشنهادی
۳-۱۵-۱- تشخیص حلقه های تکرار
۳-۱۵-۲- تخمین تعداد تکرار حلقه ها
۳-۱۵-۳- انتشار مقادیر
۳-۱۵-۴- محاسبه زمان اجرای توابع موجود در یک دور از گراف
۳-۱۶- یافتن نقاط همگام سازی
۳-۱۷- بررسی نتیجه الگوریتم پیشنهادی برروی یک برنامه نمونه
۳-۱۸- جمع بندی
فصل ۴- خوشه بندی
۴-۱- مقدمه
۴-۲- خوشه بندی سلسله مراتبی
۴-۳- خوشه بندی سلسله مراتبی پایین به بالا (تلفیق)
۴-۴- روش های ادغام خوشه ها در خوشه بندی پایین به بالا
۴-۴-۱- Single Linkage
۴-۴-۲- Complete Linkage
۴-۴-۳- Group Avreage Linkage
۴-۴-۴- Simple Average Linkage
۴-۴-۵- Weighted Average Linkage
۴-۴-۶- سه روش مفید دیگر (Median, Centroid, Wards )
۴-۵- تکنیک های یافتن تعداد خوشه های بهینه
۴-۵-۱- جدول تلفیق (جدول ادغام)
۴-۵-۲- تراز تلفیق
۴-۵-۳- نمودار dendrogram
۴-۵-۴- تعیین تعداد خوشه های بهینه
۴-۶- تکنیک های پیدا کردن نقطه پیچش در نمودار جدول تلفیق
۴-۷- روش پیشنهادی در این پایان نامه جهت خوشه بندی
۴-۷-۱- الگوریتم پیشنهادی برای خوشه بندی کلاس ها
۴-۸- جمع بندی
فصل ۵- پیاده سازی و ارزیــابــی
۵-۱- محیط پیاده سازی شده
۵-۱-۱- مقایسه روش خوشه بندی پیشنهادی با روش حریصانه متداول
فصل ۶- نتیجـه گیـری
۶-۱- کارهای آتی
منابع و مراجع