آموزش پردازش موازی در پایتون

در دنیای امروز پایتون به‌خاطر سادگی و امکانات و کتابخانه‌های بسیار گسترده‌اش به یکی از محبوب‌ترین و جذاب‌ترین زبان‌های برنامه‌نویسی تبدیل شده است. درواقع برنامه‌نویسان پایتون با نوشتن برنامه‌های ساده می‌توانند کارهای بزرگ و پیچیده ... ادامه

برگزارکننده:  مکتب‌خونه  مکتب‌خونه
3.3 (25 رای)
سطح: مقدماتی
 پلاس
  
زمان مورد نیاز برای گذارندن دوره:  5 ساعت
مجموع محتوای آموزشی:  1:59 ساعت ویدئو - 3 ساعت تمرین و پروژه
 (قابل دانلود می‌باشد)
مهلت دوره:  4 هفته
  
حد نصاب قبولی در دوره:  70 نمره
فارغ‌التحصیل شدن در این دوره نیاز به ارسال تمرین‌ها و پروژه‌های الزامی دارد. 
organization-pic  گواهینامه این دوره توسط مکتب‌خونه ارائه می‌شود.
course-feature   گواهی‌نامه مکتب‌خونه course-feature   خدمات منتورینگ course-feature   پروژه محور course-feature   تمرین و آزمون course-feature   تالار گفتگو course-feature   تسهیل استخدام

پیش‌نیاز‌ها

در این دوره تلاش شده که کلیه مفاهیم موازی‌سازی و پردازش موازی در پایتون از ابتدا گفته شود؛ اما لازم است که برای فهم بهتر مفاهیم گفته‌شده تا حدی با زبان پایتون و نحوه استفاده از توابع، لیست‌ها و فرهنگ لغت آشنا باشید.

سرفصل‌های دوره آموزش پردازش موازی در پایتون

مقدمه‌ای بر ترد

در این فصل ابتدا با ترد و مفاهیم مربوط به آن آشنا می‌شویم، یاد می‌گیریم چه زمانی باید از ترد استفاده کرد. همچنین مثال‌هایی از کاربرد آن در برنامه‌ها، بازی‌ها و سیستم‌عامل را می‌بینیم.

  thread چیست؟
"03:44  
  چرا و چه موقع از thread استفاده می‌کنیم؟
"06:13  
  ساختار ترد و ترد در بازی Fifa21
"05:12  
  کوییز فصل مقدمه‌ای بر ترد
 100%    
"03:00  
چالش‌های ترد

در فصل دوم، با ۳ چالش روبرو و با روش‌های حل آن‌ها توسط ترد آشنا می‌شویم. در انتهای فصل برای شما چالشی در قالب پروژه مطرح می‌شود.

  چالش ارسال ایمیل
"04:12  
  چالش ایجاد فایل‌های متنی
"03:29  
  چالش آپلود فایل در وبسایت
"02:42  
  پروژه کپی فایل‌های ویدیویی (الزامی)
 100%    
"45:00  
ترد در پایتون

در این فصل پس از یادگیری تئوری‌های مربوط به ترد، یاد می‌گیریم چگونه با استفاده از پایتون کد‌های مربوط به ترد را پیاده‌سازی کنیم. سپس با استفاده از این دانش جدید به حل چند مسئله می‌پردازیم. در انتهای فصل با مفهوم بسیار مهم Race Condition آشنا می‌شویم.

  مقدمه‌ای بر کتابخانه threading
"03:29  
  ساختن اولین تردها
"06:06  
  آرگومان دادن به تابع هدف یک ترد
"07:43  
  تردهای daemon
"04:47  
  اجرا کردن تردها به صورت موازی و متوالی
"05:03  
  حل سوال تردکاری وبسایت Quera
"07:12  
  مفهوم Race Condition چیست؟
"06:13  
  کوییز فصل ترد در پایتون
 50%    
"05:00  
  پروژه مهمانی (الزامی)
 50%    
"45:00  
مدیریت پیشرفته تردها

در این فصل با مفاهیم پیشرفته‌تری مثل Event‌ها در ترد‌ها آشنا می‌شویم. در ادامه با حل چندین چالش این مفاهیم را پیاده‌سازی می‌کنیم و نکات مربوط به آن‌ها را می‌آموزیم.

  مقدمه‌ای بر Event در ترد
"10:44  
  گذر از Race Condition با استفاده از Lock
"06:53  
  حل چالش PrintOrder
"05:41  
  حل چالش FooBar
"04:48  
  کوییز مدیریت پیشرفته ترد‌ها
 33.3%    
"03:00  
  پروژه احوال‌پرسی (الزامی)
 66.7%    
"45:00  
مفهوم Async در پایتون

فصل آخر این دوره مربوط به آموزش مفهوم بسیار مهم Async می‌باشد. علاوه بر آشنایی با Async و پیاده‌سازی کد‌های آن، با کتاب‌خانه‌های کاربردی آن نیز کار می‌کنیم.

  مقدمه‌ای بر Asnyc و تفاوت آن با ترد
"02:53  
  ساخت Decorator برای Sync کردن یک تابع
"09:49  
  کار به صورت موازی با کتابخانه asyncio
"06:20  
  کپی کردن فایل‌های سنگین به صورت موازی
"06:17  
  کوییز مفهوم Async در پایتون
 30%    
"03:00  
  پروژه «چقدر فایل» (الزامی)
 70%    
"45:00  

ویژگی‌های دوره

گواهی‌نامه مکتب‌خونه
گواهی‌نامه مکتب‌خونه

در صورت قبولی در دوره، گواهی نامه رسمی پایان دوره توسط مکتب‌خونه به اسم شما صادر شده و در اختیار شما قرار می گیرد.

مشاهده نمونه گواهینامه

ویژگی‌های دوره

خدمات منتورینگ
خدمات منتورینگ

خدمات منتورینگ به معنای برخورداری دانشجو از راهنما یا پشتیبان علمی در طول گذراندن دوره می‌باشد. این خدمات شامل پاسخگویی به سوالات آموزشی(در قالب تیکتینگ)، تصحیح آزمون یا پروژه های دوره و ارائه باز خورد موثر به دانشجو می‌باشد.

ویژگی‌های دوره

پروژه محور
پروژه محور

این دوره طوری طراحی شده است که محتوای آموزشی دوره حول چند پروژه واقعی و کاربردی هستند تا یادگیری دانشجو در طول دوره به کاربردهای عملی تبدیل شود و به این ترتیب بالاترین سطح یادگیری را فراهم نمایند.

ویژگی‌های دوره

تمرین و آزمون
تمرین و آزمون

با قرار گرفتن تمرین ها و آزمون های مختلف در طول دوره، محیطی تعاملی فراهم شده است تا بهره گیری از محتوا و یادگیری بهتر و عمیق تر شود.

ویژگی‌های دوره

تالار گفتگو
تالار گفتگو

شما می توانید از طریق تالار گفتگو با دیگر دانشجویان دوره در ارتباط باشید، شبکه روابط حرفه ای خود را تقویت کنید یا سوالات مرتبط با دوره خود را از دیگر دانشجویان بپرسید.

ویژگی‌های دوره

تسهیل استخدام
تسهیل استخدام

در صورت قبولی در دوره، شما می‌توانید با وارد کردن اطلاعات آن در بخش دوره‌های آموزشی رزومه‌ساز «جاب ویژن»، تایید مهارت خود را در قالب اضافه شدن «مدال مهارت» به روزمه آنلاین خود دریافت نمایید. این مدال علاوه بر ایجاد تمایز در نمایش رزومه شما، باعث بالاتر قرار گرفتن آن در لیست انبوه رزومه‌های ارسالی به کارفرما شده و بدین ترتیب شانس شما را برای استخدام در سازمانهای موفق و پر متقاضی افزایش می‌دهد.

بررسی فرصت‌های شغلی

درباره دوره

در دنیای امروز پایتون به‌خاطر سادگی و امکانات و کتابخانه‌های بسیار گسترده‌اش به یکی از محبوب‌ترین و جذاب‌ترین زبان‌های برنامه‌نویسی تبدیل شده است. درواقع برنامه‌نویسان پایتون با نوشتن برنامه‌های ساده می‌توانند کارهای بزرگ و پیچیده را به‌راحتی انجام دهند. با توجه به اهمیت افزایش سرعت اجرای برنامه‌ها و موازی‌سازی در کامپیوتر لازم است که برنامه‌نویسان این زبان به سراغ پردازش موازی در پایتون بروند. این شیوه برنامه‌نویسی از برنامه‌نویسی عادی پیچیده‌تر نخواهد بود؛ اما سرعت اجرای برنامه‌ها و عملکرد آن‌ها را به طرز شگفت‌انگیزی تغییر خواهد داد.

 

هدف از دوره آموزش پردازش موازی در پایتون چیست؟

هدف از دوره پردازش موازی در پایتون تربیت برنامه‌نویسانی است که به‌صورت حرفه‌ای برنامه می‌نویسند و از همه توان سخت‌افزاری کامپیوتر و وسایل هوشمند برای اجرای برنامه‌ها استفاده می‌کنند. این دوره به زبان پایتون ارائه می‌شود؛ اما مفاهیم آن به‌گونه‌ای بیان خواهد شد که هرکسی که از زبان‌های دیگر برای برنامه‌نویسی استفاده می‌کند هم بتواند ترفندهای آن را به کار بگیرد.

نکته مهم این است که همیشه پردازش موازی در پایتون یا هر زبان برنامه‌نویسی دیگری نمی‌تواند باعث بهبود سرعت برنامه‌ها شود و حتی ممکن است آن‌ها را کندتر از حالت عادی به نتیجه نهایی برساند. یکی از اهداف مهم و کاربردی در این دوره کسب مهارت شناسایی مسائلی است که موازی‌سازی برای آن‌ها مفید نیست تا وقت برنامه‌نویسان برای نوشتن برنامه‌های بی‌فایده تلف نشود.

 

دوره پردازش موازی با پایتون مناسب چه کسانی است؟

دوره آموزش پردازش موازی در پایتون برای توسعه‌دهندگانی طراحی شده است که قصد دارند با ارتقای مهارت‌ها و یادگیری برنامه‌نویسی هم‌زمان و موازی، حرفه‌ای‌تر بشوند و برنامه‌های جذاب‌تر و کاربردی‌تری بنویسند. درواقع این دوره آن‌ها را یک قدم به جلو می‌برد.

علاوه بر این دانشجویانی که اکنون در حال یادگیری مفاهیم اولیه برنامه‌نویسی و محاسبات موازی هستند و دوست دارند بدانند که چگونه می‌توانند مفاهیم آموزش‌داده‌شده در کلاس را با تمرین به مهارت تبدیل کنند، می‌توانند در این دوره ثبت‌نام کنند.

این دوره تنها برای افراد مبتدی مفید نیست، توسعه‌دهندگان باتجربه‌ای که به زبان پایتون مسلط هستند و حتی به‌نوعی با برنامه‌نویسی موازی سروکار داشته‌اند هم می‌توانند با شرکت در این دوره از زاویه‌ای متفاوت به موضوع نگاه کنند و مفاهیم جدید و امروزی را یاد بگیرند.

 

در پایان دوره پردازش موازی با پایتون چه مهارت‌هایی کسب خواهید کرد؟

با شرکت در دوره پردازش موازی با پایتون یاد می‌گیرید که چگونه نرم‌افزارهایی کاربرپسند با کارایی بالا بسازید که بتوانند در زمانی کوتاه نیازهای یک یا چند کاربر را برطرف کنند و به همه درخواست‌های ورودی کاربر جواب صحیحی بدهند.

علاوه بر این نحوه برنامه‌نویسی multithreading و multiprocessing را نیز یاد می‌گیرید تا بتوانید مشکلات و مسائل خاص و پیچیده را با مدل‌سازی و برنامه‌نویسی شیءگرا به‌راحتی آب خوردن حل کنید.

در این دوره یاد می‌گیرید که چگونه برنامه‌هایی به زبان پایتون بنویسید که از حداکثر قابلیت موازی‌سازی استفاده کرده‌اند و با همزمانی بخش‌های مختلف در زمانی کوتاه اجرا می‌شوند. همچنین با مزایا، معایب و محدودیت‌های برنامه‌نویسی موازی نیز آشنا می‌شوید.

در این دوره مهارت‌های برنامه‌نویسی پایتون شما بسیار رشد می‌کند و می‌توانید برای مسائل پیشرفته‌تر، چندمنظوره و چند پردازشی برنامه بنویسید. همچنین درباره قابلیت‌های زبان پایتون در برنامه‌نویسی موازی نیز مطالبی مفید و کاربردی یاد خواهید گرفت.

درباره استاد

maktabkhooneh-teacher محمدرضا کریمی‌نژاد

محمدرضا کریمی‌نژاد متولد ١٣٨٠، از ۱۵ سالگی شروع به برنامه‌نویسی کرده و از ۱۷ سالگی وارد بازار کار شده است. در مدارس سمپاد برنامه‌نویسی تدریس کرده است و در شرکت‌های نظیر کافه‌بازار و نوبیتکس به عنوان مهندس نرم‌ افزار دارای تجربه می‌باشد. محمدرضا کریمی‌نژاد اکنون در دانشکده پزشکی دانشگاه هاروارد و آزمایشگاه یادگیری ماشین دانشگاه شریف مشغول به پژوهش هست.

مشاهده پروفایل و دوره‌‌های استاد

نظرات کاربران

تا کنون نظری برای این دوره ثبت نشده است. برای ثبت نظر باید ابتدا در دوره ثبت نام کرده و دانشجوی دوره باشید.
کسری مسکنی 1402-11-26
دوره صرفا برای چند چیز عالی بود ولی مباحث زیادی نداشت ، کلا یه هفته طول نکشید دوره . بازم ممنون ازاستاد
شهرام ثمر 1402-08-11
عالی بود همه چیز
زهرا مومن 1402-07-10
عالی یود، ممنون.
احمد اسدی امجد 1402-07-02
تشکر میکنم از زحمات جناب آقای مهندس کریمی. برای شروع بسیار خوب است.
شهریار کریمی 1401-02-18
این دوره بی شک دوره عالی هست. اقای کریمی نژاد همیشه کارش درسته
سعید باقری 1400-12-06
مهندس کریمی نژاد یکی از بهترین دولوپر های پایتون هستند. دوره بسیار فوق العاده هست‌، حتما استفاده ببرید.
پیمان عبدالکریم زاده 1400-11-06
این بهترین دوره برای پردازش موازی است. استاد یک برنامه نویس حرفه ای است و مثال ها برای نشان دادن مفاهیم به دانش آموزان بسیار ساده است. با تشکر از مکتبخونه و استاد برای این دوره عالی.
امیر علی رستگاری 1402-12-18
با سلام و خسته نباشید. با تشکر از استاد درس و نکات گفته شده. امیدوارم در آینده دوره های پیشرفته تری با این محتوا تولید شود و نکات بیشتری در زمینه پردازش موازی گفته شود. به عنوان یک دوره مقدماتی دوره مناسبی بود.
امیر محمد امیری 1402-12-08
با اینکه کم بود ولی خیلی خوب و مختصر بود هم تدریس و هم تمرین ها و خیلی ممنون از استاد
1402-11-02
سطح دوره رو باید مبتدی در نظر بگیرید برای مبتدی خوب بود ولی بهتر بود سطح دوره پیشرفته تر باشه دیگه خیلی مبتدی بود
سیدشهاب الدین م شریعتمداری 1402-07-08
دوره خوبیه ولی اگر نیاز به مدرکش ندارید پیشنهاد میکنم فقط آموزشش رو بخرید
مهدی امینی 1403-01-13
سلام. به نظرم فن بیان توی این دوره ضعیف هستش و مفهوم به طور مناسب منتقل نمیشود و نیاز هستش که خود دانشجو به دنبال مفاهیم باشه. البته با توجه به پیشرفته بودن دوره و کوتاه بودن دوره کمی قابل چشم پوشی هستش و آزار دهنده نیست. درکل از جناب آقای محمدرضا کریمی نژاد بخاطر زحماتشون و تهیه این دوره تشکر میکنم.
پویان صمیمی 1402-08-22
این دوره رو به دلیل حضور در "مسیر یادگیری پایتون" تهیه کردم. به نظرم به عنوان دوره آخر این مسیر اصلا مناسب نبود و ای کاش حداقل یک دوره پیشرفته با همین موضوع اضافه بشه به این مسیر. خود دوره هم به طور جداگانه، درسته که برچسب "مقدماتی" داره، اما دیگه بیش از حد مقدماتی بود و عملا محتوایی بیش از ۵ صفحه pdf نداشت. تمرینها هم کاملا غیرکاربردی بودند.
مسعود باغبانی 1401-06-07
دوره نسبت به قیمتش بدک نیست ولی خب تسلط مدرس کافی نیست + بیان و شیوه تدریس ضعیف بود + کلا خیلی وقت نذاشته بودن برا دوره انگار.
مجتبی اسدالهی 1403-01-06
ارائه مطالب و توضیح کد ها با فن بیانی ضعیف انجام شده
1
2

دوره‌های پیشنهادی

سوالات پرتکرار

آیا در صورت خرید دوره، گواهی نامه آن به من تعلق می گیرد؟
خیر؛ شما با خرید دوره می توانید در آن دوره شرکت کنید و به محتوای آن دسترسی خواهید داشت. در صورتی که در زمان تعیین شده دوره را با نمره قبولی بگذرانید، گواهی نامه دوره به نام شما صادر خواهد شد.

سوالات پرتکرار

حداقل و حداکثر زمانی که می توانم یک دوره را بگذرانم چقدر است؟
برای گذراندن دوره حداقل زمانی وجود ندارد و شما می توانید در هر زمانی که مایل هستید فعالیت های مربوطه را انجام دهید. برای هر دوره یک حداکثر زمان تعیین شده است که در صفحه معرفی دوره می توانید مشاهده کنید که از زمان خرید دوره توسط شما تنها در آن مدت شما از ویژگی های تصحیح پروژه ها توسط پشتیبان و دریافت گواهی نامه بهره مند خواهید بود.

سوالات پرتکرار

در صورت قبولی در دوره، آیا امکان دریافت نسخه فیزیکی گواهی نامه دوره را دارم؟
خیر، به دلیل مسائل زیست محیطی و کاهش قطع درختان، فقط نسخه الکترونیکی گواهی‌نامه در اختیار شما قرار می‌گیرد

سوالات پرتکرار

پس از سپری شدن زمان دوره، به محتوای دوره دسترسی خواهم داشت؟
بله؛ پس از سپری شدن مدت زمان دوره شما به محتوای دوره دسترسی خواهید داشت و می توانید از ویدئوها، تمارین، پروژه و دیگر محتوای دوره در صورت وجود استفاده کنید ولی امکان تصحیح تمارین توسط پشتیبان و دریافت گواهی نامه برای شما وجود نخواهد داشت.

برای آشنایی بیشتر با پردازش موازی در پایتون در این بخش تعدادی از مهم‌ترین مفاهیم این دوره را توضیح می‌دهیم تا بتوانید دیدی کلی در خصوص دوره و کاربرد آن پیدا کنید.

 

چند پردازشی یا Multiprocessing چیست؟

در فضای سخت‌افزار چند پردازشی به معنای قراردادن چند پردازنده در کنار یکدیگر است که به‌صورت موازی برنامه‌های در حال اجرا بر روی سیستم را مدیریت می‌کنند. برنامه‌نویسان با استفاده از پردازش موازی در پایتون می‌توانند این سیستم را به کار بگیرند تا برنامه‌های خود را با سرعت بهتری اجرا کنند. علاوه بر این‌چنین روش برنامه‌نویسی باعث شکل‌گیری مفاهیم جدید مانند multithreading، برنامه‌نویسی شیءگرا، هم‌زمان و ... شده است که لازم است با آن‌ها نیز آشنا باشید.

 

تفاوت Multiprocessing و Multithreading

Multiprocessing درواقع همان پردازنده چندهسته‌ای یا استفاده از پردازنده‌های موازی در سخت‌افزار است که به اجرای برنامه‌هایی که به‌صورت موازی نوشته شده‌اند کمک می‌کند. این فرایند برای تقسیم وظایف بین هسته‌های مختلف پردازنده و نحوه به‌اشتراک‌گذاری منابع بین آن‌ها تعریف شده است.

Multithreading از مفاهیم برنامه‌نویسی شیءگرا و موازی است که به برنامه‌نویس کمک می‌کند برنامه خود را در قالب رشته‌های مختلف تعریف کرده و آن‌ها را با یکدیگر مرتبط کند.

 

کتابخانه‌های پردازش موازی در پایتون

برای راحتی برنامه‌نویسان موازی و عدم نیاز به تعریف همه جزئیات از صفر 6 کتابخانه بسیار مهم در پایتون ساخته شده است که در این دوره کار با همه آن‌ها را یاد گرفته و توابع موجود در هریک را می‌شناسید. این کتابخانه‌ها شامل Ray، Dask، Dispy، Pandaral-lel، Ipyparallel و Joblib می‌شود.

 

اجرای موازی (parallelism)

برای اینکه برنامه‌هایی که به‌صورت موازی نوشته‌اید اجرا شوند، نیاز است که از نحوه اجرای موازی یا Parallelism نیز اطلاع داشته باشید. درواقع باید تا حدودی بدانید که چگونه منابع مشترک مانند حافظه را بین برنامه‌های مختلف به اشتراک بگذارید تا برنامه‌ها با سرعت بالا و درست همان‌طور که شما دوست دارید اجرا شوند. در این مفهوم علاوه بر موازی‌سازی سخت‌افزاری خود برنامه نیز taskها را به بخش‌های کوچک‌تر تقسیم می‌کند تا هسته‌های مختلف پردازنده راحت‌تر از پس اجرای آن‌ها بربیایند.

 

هم‌زمانی (Concurrency)

مفهوم هم‌زمانی یا Concurrency به توانایی یک برنامه برای اجرای هم‌زمان چند task مربوط می‌شود. این مفهوم زمانی به کار می‌آید که کامپیوتر شما ازنظر سخت‌افزاری برای اجرای برنامه‌ها محدودیت دارد اما با تقسیم آن بین taskهای مختلف می‌توانید موازی‌سازی را تا حدی در آن پیاده کنید.

poster
  
برگزار کننده:  مکتب‌خونه
  
زمان مورد نیاز برای گذارندن دوره:  5 ساعت
مجموع محتوای آموزشی:  1:59 ساعت ویدئو - 3 ساعت تمرین و پروژه
 (قابل دانلود می‌باشد)
مهلت دوره:  4 هفته
  
حد نصاب قبولی در دوره:  70 نمره
فارغ‌التحصیل شدن در این دوره نیاز به ارسال تمرین‌ها و پروژه‌های الزامی دارد. 
organization-pic  گواهینامه این دوره توسط مکتب‌خونه ارائه می‌شود.
course-feature   گواهی‌نامه مکتب‌خونه course-feature   خدمات منتورینگ course-feature   پروژه محور course-feature   تمرین و آزمون course-feature   تالار گفتگو course-feature   تسهیل استخدام