پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای پژوهش کامل در حوزه کامپیوتر و IT میباشد و در 7 فصل تنظیم شده است.این پروژه با معرفی واحد پردازش گرافیکی (GPU) به پیاده سازی الگوریتم موازی پرداخته است. شما میتوانید فهرست مطالب پروژه را در ادامه مشاهده نمایید.
پروژه بصورت فایل قابل ویرایش ورد(WORD) در 124 صفحه برای رشته کامپیوتر و IT در پایین همین صفحه قابل دانلود میباشد. شایسته یادآوری است که پروژه از ابتدا تا پایان ویرایش وتنظیم , سکشن بندی (section) ، نوشتن پاورقی (Footnote) و فهرست گذاری اتوماتیک کامل شده وآماده تحویل یا کپی برداری از مطالب مفید آن است.
در سال های اخیر، افزایش روز افزون عملکرد کارت های گرافیکی، محققین را به فکر بهره گیری از توان پردازشی آنها در کاربردهای غیر گرافیکی انداخته است. درهمین راستا شاخه جدیدی در علوم کامپیوتر به نام محاسبات با اهداف همه منظوره روی واحد GPU ایجاد شده است ، هدف فعالان این عرصه بهره گیری از کارت گرافیک به عنوان یک کمک پردازنده محاسباتی در برنامه های غیرگرافیکی و برنامه های عمومی است.ازاین رو از صنعت محاسباتی گرفته تا محاسبات موازی دچار تغییرات گسترده ای شده وعملیات انتقال تقریبا تمام کامپیوترهای مصرف کننده سال 2010 همراه با پردازنده های چند هسته ای صورت گرفته است صنعت رایانه ای در سراشیبى تند انقلاب محاسباتی موازی قرار دارد ،نتیجه اینکه در پی آن، تقریبا هر برنامه نویس مشتاق در آن نیاز به آموزش برنامه نویسی موازی دارد تا بتواند در علوم کامپیوتری به طور کامل موثر واقع شود. و در نتیجه CUDA C NVIDIA تا کنون به عنوان یکی از موفق ترین زبانهای عمل کرده است که تا به حال برای محاسبات موازی طراحی شده است. در این پایان نامه، ضمن بیان مقدمه ای از CUDA، تعدادی از دستورات زبان NVIDIA CUDA C معرفی خواهد شد.
واژه های کلیدی:کارت های گرافیکی،NVIDIA CUDA C، برنامه نویسی موازی،GPU، کودا
فهرست مطالب
1-2- مقایسه توانایی هایGPU باCPU.. 3
1-3- مقایسه سخت افزار GPU با CPU.. 6
1-4- فناوری های ATI و NVIDIA.. 7
2-4- محاسبات یکپارچه و GPU ها16
2-5- سیتم های محاسبات GPU.. 17
2-6- اکوسیستم محاسبات GPU.. 17
3-1- معماری محاسباتی تسلا.. 20
3-2- چند پردازندههای جریانی.. 20
3-5-2- تردها، بلاک ها و گریدها: تطبیق الگوریتم ها با مدل کودا23
3-5-4- معماری مجموعه دستور و اجرا نخ های موازی.. 33
3-5-7- مدل برنامه نویسی کودا37
3-5-8- یک مدل برنامه نویسی ناهمگن.. 38
3-5-12- کامپایل یک برنامه کودا46
3-5-13- اشکال زدایی یک برنامه کودا46
3-6- نگاشت به معماری تسلا.. 48
3-8- سیستم های محاسباتی NVIDIA Tesla S1070. 49
3-9-1- سلسله مراتب حافظه کش.... 51
3-9-3- چند پردازندههای جریانی.. 52
3-10- برنامه نویسی multi-GPU.. 53
4ـ2ـ1ـ پردازنده های گرافیکی فعال شده CUDA.. 55
4ـ2ـ2ـ دستگاه درایور NVIDIA.. 57
4ـ2ـ3ـ کیت ابزار توسعه CUDA.. 57
5ـ3ـ اولین برنامه دستگاه های جستجوگر. 68
فصل ششم برنامه نویسی موازی درCUDA C
6ـ2ـ برنامه نویسی CUDA موازی.. 75
7ـ2ـ1 مجموع برداری: ردوکس.... 82
7ـ2ـ2 موج دار کردنGPU با استفاده از رشته ها88
7ـ3 حافظه اشتراکی و همزمانسازی.. 94
7ـ3ـ2 بیت مپ حافظه مشترک... 106
فهرست شکل ها
شکل 1- 1 - مقایسه توان پردازشی خام پردازندهگرافیکی با پردازندهمرکزی.. 3
شکل1-2- مقایسه پهنای باند GPUو CPU.. 4
شکل 1- 3- نمودار مقایسه سرعت GPUها و CPUها در بدست اوردن پسورد فایل های RAR.. 6
شکل 1- 4- مقایسه سخت افزار GPUو CPU.. 7
شکل 1- 5- مدل تخصیص ترانزیستور برای GPUو CPU.. 7
جدول2-1- نقطه عطف توسعه تکنولوژی GPUها NVIDIA.. 14
شکل3-2- گریدها، بلاک ها و تردها26
شکل3-3 - کامپایل JITو هدف گیری دستگاه یک برنامه کاربردی کودا34
شکل3- 4- مثالی از توزیع بلاک ها روی GPUهای با اندازه متفاوت.. 35
شکل3- 5- فضاهای حافظه دستگاه کودا و مکان فیزکی انها روی دستگاه. 35
شکل3- 6- سلسله مراتب حافظه کودا در ارتباط با تردهای کرنل.. 36
شکل3- 7- پایپلاین گرافیکی.. 38
شکل3- 8- مثال اجرا ناهمگن.. 39
شکل3- 9- جریان کنترل پایه ای کودا40
شکل3- 10- پشته نرم افزاری کودا41
شکل3- 11- مدل اجرایی یک برنامه کودا با سازمان نخ.. 43
شکل3- 12- معماری سیستم محاسباتی NVIDIA Tesla S1070. 49
شکل3- 13- پیکربندی کامل محاسباتی S1070. 50
شکل3- 14- معماری محاسبات GPUبا 512 هسته پردازنده کودا51
شکل3- 15- چند پردازندهای جریانی فرمی.. 53
شکل 3- 16- دو شیوه ممکن برای برنامه ای کردن GPUها (a) ترتیبی (b) چند نخی.. 54
شکل4ـ1 پردازنده های گرافیکی فعال شده با CUDA.. 56
جدول5-1 خواص دستگاه با CUDA.. 69
شکل 7ـ1 ترتیب دو بعدی مجموعه ای از بلوک ها و رشته ها و رشته های صفر.85
شکل 7ـ3 ثصویری از یک مثال موجGPU.. 94
پروژه سخت افزار تکاملی با الگوریتم ژنتیک پژوهش کامل در حوزه کامپیوتر و فناوری اطلاعات میباشد و در 5 فصل تنظیم شده است.این پروژه با معرفی الگوریتم ژنتیک و سخت افزار تکاملی به بررسی آنها پرداخته است.شما میتوانید فهرست مطالب پروژه را در ادامه مشاهده نمایید.
پروژه بصورت فایل قابل ویرایش ورد(WORD) در 68 صفحه برای رشته کامپیوتر و IT در پایین همین صفحه قابل دانلود میباشد. شایسته یادآوری است که پروژه از ابتدا تا پایان ویرایش وتنظیم , سکشن بندی (section) ، نوشتن پاورقی (Footnote) و فهرست گذاری اتوماتیک کامل شده وآماده تحویل یا کپی برداری از مطالب مفید آن است.
سخت افزار تکاملی، سخت افزاری است که بتواند ساختار خود را اصلاح کند. این تفکر با پیدایش تکنولوژی FPGAدر بین محققان شروع به رشد کرد. با توجه به اهمیت مدار های ترتیبی همگام در طراحی مدار های منطقی، در این پروژه با یک رهیافت تکاملی سعی در بهینه سازی این گونه مدار ها داریم. درگام اول بهینه سازی، با توجه به اینکه مسئلۀ تخصیص حالت که ذاتاً به این گونه مدار ها مربوط می شود، مسئله ای NP کامل است، سعی داریم با رهیافت الگوریتم ژنتیک تخصیص حالت بهینه مدار را بیابیم. خواهیم دید که یک تخصیص حالت بهینه به طور قابل توجهی در کاهش پیچیدگی بخش ترکیبی مدار ترتیبی تأثیرگذار می باشد. در گام دوم بهینه سازی سعی داریم با رهیافت برنامه نویسی ژنتیکی بخش ترکیبی مدار را از نظر تعداد گیت های معادل و میزان تأخیر انتشار در مدار کاهش می دهیم
شرح مختصری از مطالبی که در فصل های اینده به ان می پردازیم، در ذیل اورده شده است :
فصل اول، مطالبی در بارۀ اصول الگوریتم ژنتیک بیان شده است.
فصل دوم، مسئلۀ تخصیص حالت را بررسی می کنیم و نشان می دهیم که یک تخصیص حالت بهینه به طور قابل ملاحظه ای در کاهش پیچیدگی اجزای بخش ترکیبی مدار تأثیر گذار است. و در اخر، الگوریتم ژنتیک به کار رفته را به طور مختصر بیان می کنیم.
فصل سوم، مطالبی در بارۀ اصول برنامه نویسی ژنتیکی پایه بیان شده است.
فصل چهارم، مفاهیمی چون ماکزیمم تأخیر انتشار و تعداد گیت های معادل در یک مدار را توضیح داده و کارهای انجام شده در جهت حداقل سازی این پارامتر ها را بیان می کنیم. و در اخر رهیافت تکاملی ارائه شده برمبنای برنامه نویسی ژنتیکی را شرح می دهیم.
فصل پنجم، نتایج حاصل از اجرای پروژه و مقایسه با روش مرسوم.
واژه های کلیدی:سخت افزار تکاملی، مدار ترتیبی، الگوریتم ژنتیک، برنامه نویسی ژنتیکی، تخصیص حالت.
فهرست مطالب
فصل اول مقدمه ای بر الگوریتم ژنتیک
1- 1- الگوریتم ژنتیک چیست... 4
1-2- فلسفۀ انتخاب اصلح در طبیعت... 4
1-3- مفاهیم پایه ای الگوریتم ژنتیک... 5
1-3-2- نحوۀ کد کردن متغیر های تابع.. 6
1-3-5- انتخاب والد برای ایجاد نسل بعد. 8
فصل دوم مدار های ترتیبی همگام و مسئلۀ تخصیص حالت
2-1- مدار های ترتیبی همزمان 15
2-1-2- فرایند طراحی مدار های ترتیبی.. 16
2-1-4- شناسایی یک تخصیص حالت خوب.. 21
2-2- کاربرد سخت افزار تکاملی در مساله تخصیص حالت... 21
2-3- الگوریتم ژنتیک در تخصیص حالت... 22
2-3-3- ارزیابی هزینۀ یک نمونۀ تخصیص حالت... 24
2-3-4- انتخاب تخصیص حالت های مناسب... 27
2-3-5- انجام عمل ادغام روی جمعیت... 27
2-3-6- انجام عمل جهش روی جمعیت... 28
2-3-7- شرایط خاتمۀ الگوریتم.. 28
3-1- برنامه نویسی ژنتیکی چیست... 29
3-1-1- کروموزوم ها در برنامه نویسی ژنتیکی.. 29
3-1-3- انتخاب کروموزوم برای ایجاد نسل جدید. 30
3-2-گام های مقدماتی در اجرای برنامه نویسی ژنتیکی.. 33
3-2-1- گام اول : مجموعۀ پایانه ها33
3-2-2-گام دوم : مجموعه توابع.. 34
3-2-3- گام سوم : تابع سودمندی.. 34
3-2-4- گام چهارم : پارامتر های برنامه نویسی ژنتیکی.. 35
3-2-5-گام پنجم : شرایط خاتمه و خروجی برنامه. 35
3-3- یک نمونه اجرای برنامه نویسی ژنتیک... 35
3-3-2- گام به گام اجرای برنامه. 37
3-3-2-1- ایجاد جمعیت اولیه. 37
3-3-2-3- انتخاب، ادغام و جهش.... 39
3-3-2-4- شرایط خاتمه و خروجی برنامه. 40
فصل چهارم بهینه سازی یک مدار ترکیبی
4-1- موارد موثر در کارایی مدار. 41
4-1-1- تعداد گیت های به کار رفته در مدار. 41
4-1-2- تأخیر انتشار یک گیت... 42
4-2- سخت افزار تکاملی در بهینه سازی بخش ترکیبی مدار. 42
4-3- برنامه نویسی ژنتیکی در بهینه سازی مدار های ترکیبی.. 44
4-3-2- مقایسۀ ساختار ماتریسی و ساختار درختی در برنامه نویسی ژنتیکی.. 47
4-3-4- ارزیابی سودمندی مدار. 47
4-3-5- انتخاب و ایجاد جمعیت جدید. 49
1-1- مقایسۀ یک نمونه مدار پس از دو مرحله بهینه سازی.. 53
فهرست شکل ها
شکل 1-1: مقایسه ای بین الگوریتم ژنتیک و تکامل زیستی.. 4
شکل 1-2: نمودار گردشی الگوریتم ژنتیک... 6
جدول 1-1- نمونه ای از یک جمعیت تصادفی.. 8
جدول 1-2- کروموزوم های انتخابی.. 9
جدول 1-3- احتمال تجمعی کروموزوم ها10
جدول 1-4- احتمال اننتخاب هر کروموزوم بر مبنای هزیۀ ان.. 11
شکل 1-4- ادغام دو نقطه ای.. 12
شکل 1-6 –یک نمومه عمل اغدام. 12
شکل 2-1-ساختار کلی مدل مدارهای ترتیبی.. 15
شکل 2-2- فرایند طلراحی مدارهای ترتیبی.. 16
شکل2-3- نمودار ماشین حالت... 18
جدول 2-1-جدول حالت مربوط به ماشین حالت... 18
شکل2-4- ساده سازی در سطح گیت با روش نقشه کارنو. 19
جدول 2-2- جدول درستی ماشین حات با تخصیص حالت جدید. 20
شکل 2-6-ساده سازی در سطح گیت با روش نقشه کارنو برای تخصیص حالت جدید. 20
شکل 2-7- مدار حاصل از تخصیص حالت جدید. 21
شکل 2-8- یک نمونه کروموزوم برای تخصیص حالت3-2. 22
شکل 3-1- ساختار درختیGPدر نمایش عبارت max(x+x,x+3*y)29
شکل 3-2- کروموزوم های والد. 30
شکل3-3- کروموزوم های والد مشابه. 31
شکل 3-4 –فرزندان متفاوت از والد های کاملاً مشابه. 32
شکل 3-7 –مقایسۀ نمودار های مربوط به عبارت های حاصل از نسل اول با نمودار مربوط به عبارت هدف 38
شکل4-1- نمونه ای از معدل سازی گیت ها41
شکل4-2- ساختار فنوتیپ ارائه شده توسط لوییس.... 43
شکل 4-3-ژنوتیپی بر مبنای فنوتیپ ارائه شده توسط لوییس.... 43
شکل4-4- نمونه ای از مدار ترکیبی با فنو تیپ لوییس.... 44
جدول 4-5- تعداد گیت های معدل و تأخیر در یک نمونه گیت... 45
شکل4-6- ساختار ژن در این نوع کروموزوم ها45
شکل 4-7- مدار مربوط به کروموزوم بالا. 46
شکل 4-8- یک نمو نه مدار کد شده (کروموزوم)46
شکل 4-9- ادغام چهار نقطهای.. 50
شکل 5-1- مدار (1) با یک تخصیص حالت نامناسب... 53
شکل 5-2- مدار (1) با تخصیص حالت بهینه. 53
شکل 5-3- مدار(1)پس از بهینه سازی بخش ترکیبی.. 54
شکل5-4- نمودار بهترین سودمندی مدارها در نسل های مختلف... 54
این کتاب پیادهسازی مایکروسافت را تشریح می کند. فرض بر آن است که میتوانیم از کدهای قبلی نوشته شده نیز استفاده
به سیستم عامل د یگری منتقل نخواهد شد و محیط مجازی گفته شده نیز شفاف NET. کنیم و کدهای پیادهسازی شده توسط
است.
راهنمایی بسار خوب برای دانشجویان و علاقه مندان به برنامه نویسی
نوع فایل: pdf . cpp قالب کد:txt
در این پروژه که با زبان سی پلاس پلاس نوشته شده است، الگوریتم ماشین سکه خرد کن پیاده سازی شده و فایل تحلیل کل در کنار آن قرار داده شده.
فهرست :
۱- برای اجرای دستورات cout و cin دستورات ورودی خروجی سیستم این فایل را باید ضمیمه برنامه کرد.
۲- برای اجرای تابع های پاک کردن صفحه نمایش clrscr() و تابع getch() نیاز است این را به برنامه ضمیمه کنیم.
۳- تابع مرتب سازی که ورودی آن p[] ارزش اسکناس ها،n تعداد نوع سکه ها، r[] تعداد اسکناس ها.
۵- متغیر های i و j برای for ، متغیر mبرای کمک در جابه جایی ارزش اسناس ها،
۶- این for از ابتدا تا انتهای آرایه را پیمایش می کند
۸- مقدار ارزش اسکناس p[j] را در متغیر m می ریزد.
۹- این for که در for قبلی قرار دارد از یکی بعد از اندیس for قبلی شروع می کند و تا آخر آرایه را پیمایش می کند.
۱۱- اگر m که مقدار ارزش اسکناس را در خود دارد با مقدار اسکناس بعدی مقایسه می کند اگر m کوچکتر باشد.
۱۳- مقدار ارزش فعلی p[i] را در m می ریزد.
۱۴- شماره اندیس را د رمتغیر s می ریزد.
۱۵و ۱۶- جابه جایی ارزش بزرگتر به جای ارزش کوچکتر
۱۷تا ۱۹- جابه جایی تعداد اسکناس هایی که ارزش آنها جابه جا شده اند.
۲۳- این for از ابتدا تا انتهای آرایه را پیمایش می کند
۲۴- چاپ ارزش ها و تعداد ارزش ها جلوی آنها
۲۶- تابع خرد کردن سکه ها با ورودی های p[]ارزش اسکناس ها،r[] برای تعداد ارزش ها،s[]نتیجه در آن قرار دارد،n تعداد نوع اسکناس ها، m ارزشی که می خواهیم خرد شود.
۲۸- متغیر i وl برای forها و k برای اینکه تعداد اسکناس در آن ذخیره شود.
۲۹- این for از ابتدا تا انتهای آرایه را پیمایش می کند
۳۱ تا ۳۴- اگر مبلغ ورودی از اسکناس های موجود کمتر باشد قابل خرد شدن نیست و چاپ پیغام مبلغ کوچک است
مشخصات مقاله:
دسته : مهندسی فناوری اطلاعات, مهندسی کامپیوتر
عنوان پایان نامه : طراحی و پیاده سازی سیستم اشتراک فایل تحت اندروید و ویندوز
قالب بندی : pdf
قیمت: 2800 تومان
شرح مختصر: در دهه ی گذشته، برنامه نویسی تحت شبکه دیگر در قلمرو تعداد محدودی از متخصصان نبوده و تبدیل به بخش اصلی جعبه ابزار هر برنامه نویس شده است. امروزه تعداد نرم افزار های تحــت شبکه، از تعـداد برنامه های دیگر بیشتر است! گذشته از برنامه های کلاسیک مثل مرورگرها و ایمیل ها، بیشتر برنامه های کاربردی، سطحی از شبکه گرایی را در خود دارند. برای مثال، ضد ویروس ها برای دریافت اطلاعات ویروس های جدید به سایت خود متصل می شوند، پخش کننده های موزیک، بخشی از فایل صوتی را آپلود می کنند و از پایگاه داده ی خود، اطلاعات مربوط به آن آهنگ را دانلود می کنند و … اکنون، ظهور وب سرویس ها بیش از پیش شبکه را در آغوش تمامی انواع نرم افزار ها قرار داده. وقوع همه ی این رویدادها در اینترنت است و تمامی آن می تواند در جاوا نوشته شود! شبکه به یک برنامه ی ساده، قدرتی دو چندان می دهد. با شبکه، یک برنامه می تواند اطلاعات را از میلیون ها کامپیوتر که در جای جای کره ی خاکی پراکنده اند، دریافت کند. یک برنامه می تواند با ده ها میلیون انسان ارتباط برقرار کند. یک برنامه می تواند قدرت تعدادی زیادی کامپیوتر را برای حل یک مسئله به کار گیرد. و این تازه شروع است! … در ابتدا به بررسی فواید برنامه نویسی تحت شبکه و فواید جاوا و اندروید می پردازیم. سپس وارد فرایند طراحی سیستم اشتراک فایل با رویکرد RUP و با استفاده از UML خواهیم شد. خروجی این پروژه، نمودار های UML و دو برنامه ی کاربردی (یکی برای ویندوز و یکی برای اندروید) خواهد بود (به همراه سورس کد).
فهرست:
چکیده
پیش گفتار
فصل اول بررسی منابع علمی
بررسی فواید برنامه نویسی تحت شبکه با جاوا
تاریخچه ی جاوا
درباره ی اندروید
کمی در باره ی UML و RUP
فصل دوم روش انجام پروژه
دیسیپلین مدلسازی سازمان
دیسیپلین مدیریت نیازمندی ها
دیسیپلین تحلیل و طراحی
دیسیپلین پیاده سازی
دیسیپلین استقرار
نتیجه گیری
منابع
پیوست سورس کد
فهرست شکلها
نرم افزار چت Cisco Jabber
نرم افزار Azureus Vuze
نمودار مورد کاربرد سیستم اشتراک فایل
صفحه ی نخست نرم افزار کاربر
صفحه ی انتخاب دریافت یا ارسال فایل
صفحه ی انتخاب فایل برای دریافت
صفحه ی انتخاب فایل برای ارسال
نرم افزار طرف مدیر سیستم
پنجره ی ثبت کاربر جدید
صفحه ی لیست پوشه های اشتراکی
پنجره ی انتخاب پوشه ی جدید برای اشتراک
نمودار فعالیت متناظر با مورد کاربرد “اهراز هویت”
نمودار فعالیت متناظر با مورد کاربرد “دریافت فایل”
نمودار فعالیت متناظر با مورد کاربرد “ارسال فایل”
نمودار فعالیت شروع (طرف سرور)
نمودار فعالیت متناظر با چند مورد کاربرد مربوط به اشتراک پوشه
نمودار فعالیت متناظر با مورد کاربرد “نمایش لیست کاربران”
نمودار فعالیت متناظر با مورد کاربرد “ثبت کاربر”
نمودار کلاس سیستم اشتراک فایل
سناریوی اهراز هویت
نمودار توالی اهراز هویت