به نام هستیبخش مهربان پروژه نهایی درس شبیهسازی کامپیوتری دانشکده کامپیوتر ،دانشگاه صنعتی شریف – ترم اول 39-39 موعد تحویل39/44/49 : در این پروژه شما باید سیستمی که در ادامه معرفی خواهد شد را به صورت رخداد گسسته شبیهسازی کنید و خروجیهای مورد نظر برای ارزیابی سیستم را بدست آورید. معرفی کلی سیستم سیستم مورد نظر یک محیط پردازش کار است که تعدادی سرور پردازشی آماده به خدمت در آن وجود دارد .هر سرور تعداد مشخصی هسته پردازشی دارد که با سرعت مشخصی کار میکنند .در این مح یط کارها که ممکن است از انواع مختلفی باشند با نرخ مشخصی از بیرون وارد سیستم میشوند .هر کار ورودی ابتدا وارد یک سرور زمانبند میشود ،این سرور مشخص میکند که هر کار برای دریافت سرویس به کدام سرور پردازشی فرستاده شود .کارها دارای یک ضرب االجل 1هستند که حداکثر زمان انتظار آنها تا شروع دریافت سرویس را مشخص میکند .اگر ضرب االجل کاری فرا برسد ولی کار هنوز در صف باشد ،کار صف را ترک خواهد کرد .هیچ کدام از صفهای سیستم محدودیت ظرفیتی ندارند .شکل 1نمونهای فرضی از چنین سیستمی را نشان میدهد که شامل ۳سرور پردازشی است. سرور پردازشی 1 ورود به سیستم سرور زمانبند سرور پردازشی۲ سرور پردازشی ۳ شکل 1نمای کلی سیستم انواع کارها در سیستم دو نوع کار وجود دارد ،ما آنها را نوع 1و ۲مینامیم .نوع کارها تنها بر اولویت آنها در صفها تأثیر دارد به این صورت که در هر صف اولویت همیشه با کار از نوع 1است و در میان کارهای از یک نوع ،اولویت بر اساس زمان ورود به سیستم مشخص Deadline 1 پروژه نهایی درس شبیهسازی کامپیوتری پاییز ۳۳ میشود .توزیع ورود کلی به سیستم (شامل هر دو نوع کار) به صورت پوآسن با نرخ λاست که به صورت میانگین 1۱درصد کارها از نوع 1و بقیه از نوع ۲هستند .ضرب االجل یک کار ممکن است در زمان حضور در صف زمانبند ،در حال سرویسگیری از زمانبند و یا در زمان حضور در صف سرورهای پردازشی فرا برسد .ضرب االجل کارها هم دارای توزیع نمایی با میانگین αاست. راهنمایی :برای تولید اعداد تصادفی از توزیع نمایی از روش Inverse Transformاستفاده کنید و توجه داشته باشید وقتی توزیع تعداد یک رخداد در یک بازه زمانی از توزیع پوآسن با نرخ 𝛼 پیروی میکند ،توزیع زمان بین رخدادها از نوع نمایی با میانگین 1 𝛼 است. زمانبند زمانبند ،یک سرور با یک صف و یک هسته است ( .)M/M/1زمانبند همواره -اگر کاری موجود باشد -یک کار را از سر صف ورودی خود بر می دارد و بر اساس اینکه طول صف کدام سرور پردازشی در حال حاضر از همه کوتاهتر است کار را به آن سرور میفرستد .اگر چند سرور دارای صف خالی باشند زمانبند کار را به صورت تصادفی به یکی از آنها میفرستد .نرخ سرویسدهی در هسته زمانبند از توزیع پوآسن با نرخ μپیروی میکند. سرورهای پردازشی هر سرور پردازشی یک صف با چند هسته است .در صورتی که یک کار به یک سرور پردازشی وارد شود و هسته بیکاری وجود داشته باشد بالفاصله شروع به دریافت خدمت میکند وگرنه در صف آن سرور منتظر میماند .هر گاه یک هسته کاری را به پایان برساند ،اگر کار دیگری سر صف منتظر باشد بالفاصله آن کار را بر میدارد و شروع به سرویسدهی به آن کار میکند .هستههای مختلف از سرورهای مختلف با سرعتهای مختلفی سرویسدهی میکنند ،بنابراین شما باید در این مرحله برای یک کار بر اساس اینکه بر روی کدام هسته اجرا خواهد شد زمان اجرایی را از توزیع نمایی با میانگین مشخصی تولید کنید. ورودی ورودی برنامه شما یک فایل است که در خط اول آن اطالعات زیر قرار دارد: M, λ, α, μ ،Mتعداد سرورهاست که M<100و λنرخ ورودی کلی کارها به سیستم و αمیانگین زمان ضرب االجل است و μنرخ سرویسدهی در زمانبند است .در -iامین خط پس از خط اول اطالعات زیر قرار دارد: Ni, μi1, …, μij که Niتعداد هستههای سرور -iام و عددی بین 1تا ۵است و μijنرخ سرویسدهی هسته -jام از سرور -iام است. خروجی برای تولید خروجیها ،شبیهسازی شما باید شامل ۲فاز باشد .فاز اول که اصطالحاً به آن warm upمیگویند به این هدف اجرا می شود که سیستم از حالت گذرا عبور کند و به حالت پایدار خود برسد .در طول این فاز سیستم به صورت معمول کار خواهد کرد 2|Page پاییز ۳۳ پروژه نهایی درس شبیهسازی کامپیوتری ولی شما نباید آمارهای مورد نیاز برای محاسبه خروجیها را جمعآوری کنید ،در پایان این فاز همه آمارها صفر هستند ولی تعدادی کار در صفها و هستهها حضور دارند .پس از پایان این فاز است که جمعآوری آمار شروع میشود .فاز اول زمانی تمام میشود که ۵۱۱۱کار سیستم را ترک کرده باشند. در مورد خروجیها شما باید شبیهسازی را تا زمان رسیدن به بازه اطمینان ۳۵درصد و دقت ۱۰۱۵ادامه دهید .دقت به صورت نسبت بازه اطمینان به اندازه متغیر تعریف میشود و هرگاه این مقدار در مورد هر کدام از خروجیها از ۵صدم کمتر شد خروجی را گزارش کنید .توجه داشته باشد که مقدار 𝑛 و 𝜎 به ترتیب تعداد و انحراف معیار دادههای مرحله پایدار هستند Pr(|𝑋̅ − 𝑠| ≤ 𝑒) = 𝑃0 𝑠 𝑋̅ − × 𝑛√ = ̅𝑌 𝜎 Pr(|𝑌̅| ≤ 1.96) = 0.95 𝜎1.96 ≤ |𝑠 Pr (|𝑋̅ − ) = 0.95 𝑛√ 𝜎1.96 = 𝑦𝑐𝑎𝑟𝑢𝑐𝑐𝐴 ̅𝑋𝑛√ ممکن است در مورد یک خروجی هرگز به این دقت نرسیم و یا نیازمند زمان زیادی باشیم برای پرهیز از رخداد چنین حالتی یک حد باال برای تعداد کارهای خارج شده در نظر بگیرید و پس از رسیدن به این حد شبیهسازی را در تمام کنید .این مقدار را برابر ۵۱میلیون در نظر بگیرید .در پایان شبیهسازی از شما انتظار میرود که مقادیر زیر را به عنوان خروجی گزارش کنید .در مورد هر کدام از موارد دقت را ذکر کنید. .1میانگین زمان صرف شده در سیستم به تفکیک کالس و کلی .۲میانگین زمان انتظار در صف به تفکیک کالس و کلی .۳میانگین تعداد ضرب االجلهای منقضی شده به تفکیک کالس و کلی .4میانگین طول صف هر یک از سرورهای پردازشی و زمانبند .۵تعداد کارهای مورد نیاز برای رسیدن تمام آمارها به دقت مورد نظر تذکرات پایانی! تمام قسمتهای پروژه را باید خودتان پیادهسازی کنید و حق استفاده از برنامههای شبیهساز را ندارید .با هر زبان برنامه سازی که راحت هستید میتوانید کد بزنید ولی جاوا و سی ترجیح داده میشود. پروژه باید در تیمهای ۲نفره تحویل داده شود .اگر در یافتن همگروهی با مشکل مواجه شدید حداکثر تا 1۵دی از طریق ایمیل [email protected]اطالع دهید. به ازای هر روز تأخیر در ارسال ۲۵درصد از نمره را از دست خواهید داد. طراحی مناسب کد و خوانایی آن بخشی از نمره شما را تشکیل میدهد. 3|Page پروژه نهایی درس شبیهسازی کامپیوتری پاییز ۳۳ پروژه تحویل حضوری دارد و تسلط اعضای گروه بر همه بخشهای کد الزامی است .ممکن است از شما خواسته شود در زمان تحویل بخشی از کد را عوض کنید. تا پیش از موعد ،کدها و مستندی شامل توضیحات در مورد کدها را در قالب یک فایل فشرده ،ضمیمه ایمیلی به آدرس [email protected]با عنوان> prj931_<student#_1>_<student#_2کنید. موفق باشید 4|Page
© Copyright 2025 Paperzz