برنامه نویسی موازی و همزمان پایتون قسمت 1

Python Parallel and Concurrent Programming Part 1

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: تکنیک های برنامه نویسی موازی را با استفاده از Python بیاموزید و روش های زیادی را برای نوشتن کدی که باعث می شود همزمان بیش از یک کار انجام شود کشف کنید. ابتدا چگونگی توسعه و پیاده سازی معماری نرم افزاری کارآمد را که برای بهره گیری از موازی کاری موضوعی و فرایند تنظیم شده است ، کشف کنید. در مرحله بعدی ، نحوه استفاده از ماژول های پایتون برای برنامه نویسی ناهمزمان را بیاموزید. سپس ، با استفاده از PyCUDA ، NumbaPro و PyOpenCL ، برنامه نویسی GPU را کاوش کنید. این دوره پوشش گسترده ای از فرایندهای همگام سازی ، ساده سازی ارتباطات ، کاهش عملیات و بهینه سازی کد را فراهم می کند تا بتوانید راه حلهای پردازش موازی مناسب را برای برنامه های خود انتخاب و پیاده سازی کنید.

توجه: این دوره توسط انتشارات Packt ایجاد شده است. ما خوشحالیم که میزبان این آموزش در کتابخانه خود هستیم.
موضوعات شامل:
  • سازمان حافظه
  • مدل های برنامه نویسی موازی
  • طراحی یک برنامه موازی و ارزیابی عملکرد
  • کار با رشته ها در پایتون
  • همگام سازی موضوعات و استفاده از چند رشته
  • تخم ریزی فرآیند
  • اجرای فرایندی در پس زمینه
  • فرآیندهای همگام سازی
  • استفاده از ماژول پایتون mpi4py
  • استفاده از ارتباط جمعی
  • کاهش عملیات
  • مدیریت وقایع ، وظایف و برنامه های معمول با Asyncio
  • توزیع وظایف

سرفصل ها و درس ها

1. شروع به کار با Computing Computing و Python 1. Getting Started with Parallel Computing and Python

  • معماری حافظه محاسباتی موازی The parallel computing memory architecture

  • سازمان حافظه Memory organization

  • سازمان حافظه ادامه داشت Memory organization continued

  • مدل های برنامه نویسی موازی Parallel programming models

  • طراحی یک برنامه موازی Designing a parallel program

  • ارزیابی عملکرد یک برنامه موازی Evaluating the performance of a parallel program

  • معرفی پایتون Introducing Python

  • کار با فرآیندهای پایتون Working with processes in Python

  • کار با موضوعات در پایتون Working with threads in Python

2. موازی سازی مبتنی بر موضوع 2. Thread-Based Parallelism

  • تعریف موضوع Defining a thread

  • تعیین موضوع کنونی Determining the current thread

  • استفاده از نخ در یک زیر کلاس Using a thread in a subclass

  • همگام سازی موضوع با قفل Thread synchronization with lock

  • همگام سازی موضوع با RLock Thread synchronization with RLock

  • همگام سازی موضوع با semaphores Thread synchronization with semaphores

  • همگام سازی موضوع با یک شرط Thread synchronization with a condition

  • همگام سازی موضوع با یک رویداد Thread synchronization with an event

  • با استفاده از جمله Using the with statement

  • ارتباط موضوع با استفاده از یک صف Thread communication using a queue

  • ارزیابی عملکرد برنامه های چند رشته ای Evaluating the performance of multithread applications

3. موازی سازی مبتنی بر فرآیند 3. Process-Based Parallelism

  • فرآیند تخم ریزی Spawning a process

  • نامگذاری یک فرآیند Naming a process

  • اجرای یک فرآیند در پس زمینه Running a process in the background

  • کشتن یک روند Killing a process

  • استفاده از یک فرآیند در یک زیر کلاس Using a process in a subclass

  • تبادل اشیاء بین فرآیندها Exchanging objects between processes

  • فرآیندهای همگام سازی Synchronizing processes

  • مدیریت یک وضعیت بین فرآیندها Managing a state between processes

  • استفاده از استخر فرایند Using a process pool

  • با استفاده از ماژول mpi4py Python Using the mpi4py Python module

  • ارتباط نقطه به نقطه Point-to-point communication

  • جلوگیری از مشکلات بن بست Avoiding deadlock problems

  • استفاده از پخش برای ارتباط جمعی Using broadcast for collective communication

  • استفاده از پراکندگی برای ارتباط جمعی Using scatter for collective communication

  • استفاده از جمع آوری برای ارتباط جمعی Using gather for collective communication

  • استفاده از alltoall برای ارتباط جمعی Using alltoall for collective communication

  • عملیات کاهش The reduction operation

  • بهینه سازی ارتباطات Optimizing the communication

4- برنامه نویسی ناهمزمان 4. Asynchronous Programming

  • با استفاده از ماژول های همزمان. پایتون Using the concurrent.futures Python modules

  • مدیریت حلقه رویداد با Asyncio Event loop management with Asyncio

  • انجام امور روزمره با Asyncio Handling co-routines with Asyncio

  • دستکاری یک کار با Asyncio Manipulating a task with Asyncio

  • برخورد با Asyncio و آینده Dealing with Asyncio and futures

5- پایتون توزیع شده است 5. Distributed Python

  • استفاده از کرفس برای توزیع کارها Using Celery to distribute tasks

  • ایجاد یک کار با کرفس Creating a task with Celery

  • محاسبات علمی با SCOOP Scientific computing with SCOOP

  • دستیابی به توابع نقشه با SCOOP Handling map functions with SCOOP

  • فراخوانی روش از راه دور با Pyro4 Remote method invocation with Pyro4

  • زنجیر زدن اشیاء با pyro4 Chaining objects with pyro4

  • ایجاد یک برنامه مشتری-سرور با Pyro4 Developing a client-server application with Pyro4

  • برقراری ارتباط فرآیندهای پی در پی با PyCSP Communicating sequential processes with PyCSP

  • یک تماس از راه دور با RPyC A remote procedure call with RPyC

6. برنامه نویسی GPU با پایتون 6. GPU Programming with Python

  • با استفاده از ماژول PyCUDA Using the PyCUDA module

  • ساختن یک برنامه PyCUDA Building a PyCUDA application

  • درک مدل حافظه PyCUDA با دستکاری ماتریس Understanding the PyCUDA memory model with matrix manipulation

  • تماسهای هسته با آرایه GPU Kernel invocations with GPU array

  • ارزیابی عبارات عناصر با PyCUDA Evaluating element-wise expressions with PyCUDA

  • عملیات نقشه Mapuce با PyCUDA The mapreduce operation with PyCUDA

  • برنامه نویسی Gpu با NumbaPro Gpu programming with NumbaPro

  • استفاده از كتابخانه هاي شتابدهنده GPU با NumbaPro Using GPU-accelerated libraries with NumbaPro

  • با استفاده از ماژول PyOpenCL Using the PyOpenCL module

  • ساختن یک برنامه PyOpenCL Building a PyOpenCL application

  • ارزیابی عبارات عناصر با PyOpenCL Evaluating element-wise expressions with PyOpenCL

  • تست برنامه gpu خود را با PyOpenCL انجام دهید Testing your gpu application with PyOpenCL

نمایش نظرات

نظری ارسال نشده است.

برنامه نویسی موازی و همزمان پایتون قسمت 1
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
3h 57m
64
Linkedin (لینکدین) lynda-small
16 تیر 1396 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
82,352
- از 5
ندارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Giancarlo Zaccone Giancarlo Zaccone

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

Linkedin (لینکدین)

لینکدین: شبکه اجتماعی حرفه‌ای برای ارتباط و کارآفرینی

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

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