در دنیای امروز پایتون بهخاطر سادگی و امکانات و کتابخانههای بسیار گستردهاش به یکی از محبوبترین و جذابترین زبانهای برنامهنویسی تبدیل شده است. درواقع برنامهنویسان پایتون با نوشتن برنامههای ساده میتوانند کارهای بزرگ و پیچیده را بهراحتی انجام دهند. با توجه به اهمیت افزایش سرعت اجرای برنامهها و موازیسازی در کامپیوتر لازم است که برنامهنویسان این زبان به سراغ پردازش موازی در پایتون بروند. این شیوه برنامهنویسی از برنامهنویسی عادی پیچیدهتر نخواهد بود؛ اما سرعت اجرای برنامهها و عملکرد آنها را به طرز شگفتانگیزی تغییر خواهد داد.
هدف از دوره پردازش موازی در پایتون تربیت برنامهنویسانی است که بهصورت حرفهای برنامه مینویسند و از همه توان سختافزاری کامپیوتر و وسایل هوشمند برای اجرای برنامهها استفاده میکنند. این دوره به زبان پایتون ارائه میشود؛ اما مفاهیم آن بهگونهای بیان خواهد شد که هرکسی که از زبانهای دیگر برای برنامهنویسی استفاده میکند هم بتواند ترفندهای آن را به کار بگیرد.
نکته مهم این است که همیشه پردازش موازی در پایتون یا هر زبان برنامهنویسی دیگری نمیتواند باعث بهبود سرعت برنامهها شود و حتی ممکن است آنها را کندتر از حالت عادی به نتیجه نهایی برساند. یکی از اهداف مهم و کاربردی در این دوره کسب مهارت شناسایی مسائلی است که موازیسازی برای آنها مفید نیست تا وقت برنامهنویسان برای نوشتن برنامههای بیفایده تلف نشود.
دوره آموزش پردازش موازی در پایتون برای توسعهدهندگانی طراحی شده است که قصد دارند با ارتقای مهارتها و یادگیری برنامهنویسی همزمان و موازی، حرفهایتر بشوند و برنامههای جذابتر و کاربردیتری بنویسند. درواقع این دوره آنها را یک قدم به جلو میبرد.
علاوه بر این دانشجویانی که اکنون در حال یادگیری مفاهیم اولیه برنامهنویسی و محاسبات موازی هستند و دوست دارند بدانند که چگونه میتوانند مفاهیم آموزشدادهشده در کلاس را با تمرین به مهارت تبدیل کنند، میتوانند در این دوره ثبتنام کنند.
این دوره تنها برای افراد مبتدی مفید نیست، توسعهدهندگان باتجربهای که به زبان پایتون مسلط هستند و حتی بهنوعی با برنامهنویسی موازی سروکار داشتهاند هم میتوانند با شرکت در این دوره از زاویهای متفاوت به موضوع نگاه کنند و مفاهیم جدید و امروزی را یاد بگیرند.
با شرکت در دوره پردازش موازی با پایتون یاد میگیرید که چگونه نرمافزارهایی کاربرپسند با کارایی بالا بسازید که بتوانند در زمانی کوتاه نیازهای یک یا چند کاربر را برطرف کنند و به همه درخواستهای ورودی کاربر جواب صحیحی بدهند.
علاوه بر این نحوه برنامهنویسی multithreading و multiprocessing را نیز یاد میگیرید تا بتوانید مشکلات و مسائل خاص و پیچیده را با مدلسازی و برنامهنویسی شیءگرا بهراحتی آب خوردن حل کنید.
در این دوره یاد میگیرید که چگونه برنامههایی به زبان پایتون بنویسید که از حداکثر قابلیت موازیسازی استفاده کردهاند و با همزمانی بخشهای مختلف در زمانی کوتاه اجرا میشوند. همچنین با مزایا، معایب و محدودیتهای برنامهنویسی موازی نیز آشنا میشوید.
در این دوره مهارتهای برنامهنویسی پایتون شما بسیار رشد میکند و میتوانید برای مسائل پیشرفتهتر، چندمنظوره و چند پردازشی برنامه بنویسید. همچنین درباره قابلیتهای زبان پایتون در برنامهنویسی موازی نیز مطالبی مفید و کاربردی یاد خواهید گرفت.
محمدرضا کریمینژاد متولد ١٣٨٠ از ۱۵ سالگی شروع به برنامهنویسی کرده و از ۱۷ سالگی بهعنوان پشتیبان و کمکطراح دورههای برنامهنویسی در شرکت Quera مشغول به کار شده و مدال طلای مسابقات ابنسینا را به دست آورده است. او مسئولیت پشتیبانی و راهنمایی هزاران دانشجو و دانشآموز را به عهده داشته و در مدارس سمپاد برنامهنویسی تدریس کرده است. محمدرضا کریمینژاد اکنون در شرکت كافه بازار بهعنوان مهندس نرم افزار (داده) مشغول به کار است.
در این دوره تلاش شده که کلیه مفاهیم موازیسازی و پردازش موازی در پایتون از ابتدا گفته شود؛ اما لازم است که برای فهم بهتر مفاهیم گفتهشده تا حدی با زبان پایتون و نحوه استفاده از توابع، لیستها و فرهنگ لغت آشنا باشید.
در صورت قبولی در دوره، گواهی نامه رسمی پایان دوره توسط مکتبخونه به اسم شما صادر شده و در اختیار شما قرار می گیرد.
خدمات منتورینگ به معنای برخورداری دانشجو از راهنما یا پشتیبان علمی در طول گذراندن دوره میباشد. این خدمات شامل پاسخگویی به سوالات آموزشی(در قالب تیکتینگ)، تصحیح آزمون یا پروژه های دوره و ارائه باز خورد موثر به دانشجو میباشد.
این دوره طوری طراحی شده است که محتوای آموزشی دوره حول چند پروژه واقعی و کاربردی هستند تا یادگیری دانشجو در طول دوره به کاربردهای عملی تبدیل شود و به این ترتیب بالاترین سطح یادگیری را فراهم نمایند.
با قرار گرفتن تمرین ها و آزمون های مختلف در طول دوره، محیطی تعاملی فراهم شده است تا بهره گیری از محتوا و یادگیری بهتر و عمیق تر شود.
شما می توانید از طریق تالار گفتگو با دیگر دانشجویان دوره در ارتباط باشید، شبکه روابط حرفه ای خود را تقویت کنید یا سوالات مرتبط با دوره خود را از دیگر دانشجویان بپرسید.
در صورت قبولی در دوره، شما میتوانید با وارد کردن اطلاعات آن در بخش دورههای آموزشی رزومهساز «جاب ویژن»، تایید مهارت خود را در قالب اضافه شدن «مدال مهارت» به روزمه آنلاین خود دریافت نمایید. این مدال علاوه بر ایجاد تمایز در نمایش رزومه شما، باعث بالاتر قرار گرفتن آن در لیست انبوه رزومههای ارسالی به کارفرما شده و بدین ترتیب شانس شما را برای استخدام در سازمانهای موفق و پر متقاضی افزایش میدهد.
برای آشنایی بیشتر با پردازش موازی در پایتون در این بخش تعدادی از مهمترین مفاهیم این دوره را توضیح میدهیم تا بتوانید دیدی کلی در خصوص دوره و کاربرد آن پیدا کنید.
در فضای سختافزار چند پردازشی به معنای قراردادن چند پردازنده در کنار یکدیگر است که بهصورت موازی برنامههای در حال اجرا بر روی سیستم را مدیریت میکنند. برنامهنویسان با استفاده از پردازش موازی در پایتون میتوانند این سیستم را به کار بگیرند تا برنامههای خود را با سرعت بهتری اجرا کنند. علاوه بر اینچنین روش برنامهنویسی باعث شکلگیری مفاهیم جدید مانند multithreading، برنامهنویسی شیءگرا، همزمان و ... شده است که لازم است با آنها نیز آشنا باشید.
Multiprocessing درواقع همان پردازنده چندهستهای یا استفاده از پردازندههای موازی در سختافزار است که به اجرای برنامههایی که بهصورت موازی نوشته شدهاند کمک میکند. این فرایند برای تقسیم وظایف بین هستههای مختلف پردازنده و نحوه بهاشتراکگذاری منابع بین آنها تعریف شده است.
Multithreading از مفاهیم برنامهنویسی شیءگرا و موازی است که به برنامهنویس کمک میکند برنامه خود را در قالب رشتههای مختلف تعریف کرده و آنها را با یکدیگر مرتبط کند.
برای راحتی برنامهنویسان موازی و عدم نیاز به تعریف همه جزئیات از صفر 6 کتابخانه بسیار مهم در پایتون ساخته شده است که در این دوره کار با همه آنها را یاد گرفته و توابع موجود در هریک را میشناسید. این کتابخانهها شامل Ray، Dask، Dispy، Pandaral-lel، Ipyparallel و Joblib میشود.
برای اینکه برنامههایی که بهصورت موازی نوشتهاید اجرا شوند، نیاز است که از نحوه اجرای موازی یا Parallelism نیز اطلاع داشته باشید. درواقع باید تا حدودی بدانید که چگونه منابع مشترک مانند حافظه را بین برنامههای مختلف به اشتراک بگذارید تا برنامهها با سرعت بالا و درست همانطور که شما دوست دارید اجرا شوند. در این مفهوم علاوه بر موازیسازی سختافزاری خود برنامه نیز taskها را به بخشهای کوچکتر تقسیم میکند تا هستههای مختلف پردازنده راحتتر از پس اجرای آنها بربیایند.
مفهوم همزمانی یا Concurrency به توانایی یک برنامه برای اجرای همزمان چند task مربوط میشود. این مفهوم زمانی به کار میآید که کامپیوتر شما ازنظر سختافزاری برای اجرای برنامهها محدودیت دارد اما با تقسیم آن بین taskهای مختلف میتوانید موازیسازی را تا حدی در آن پیاده کنید.