لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
برنامه نویسی موازی و همزمان پایتون قسمت 1
Python Parallel and Concurrent Programming Part 1
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
تکنیک های برنامه نویسی موازی را با استفاده از Python بیاموزید و روش های زیادی را برای نوشتن کدی که باعث می شود همزمان بیش از یک کار انجام شود کشف کنید. ابتدا چگونگی توسعه و پیاده سازی معماری نرم افزاری کارآمد را که برای بهره گیری از موازی کاری موضوعی و فرایند تنظیم شده است ، کشف کنید. در مرحله بعدی ، نحوه استفاده از ماژول های پایتون برای برنامه نویسی ناهمزمان را بیاموزید. سپس ، با استفاده از PyCUDA ، NumbaPro و PyOpenCL ، برنامه نویسی GPU را کاوش کنید. این دوره پوشش گسترده ای از فرایندهای همگام سازی ، ساده سازی ارتباطات ، کاهش عملیات و بهینه سازی کد را فراهم می کند تا بتوانید راه حلهای پردازش موازی مناسب را برای برنامه های خود انتخاب و پیاده سازی کنید.
توجه: این دوره توسط انتشارات Packt ایجاد شده است. ما خوشحالیم که میزبان این آموزش در کتابخانه خود هستیم.
موضوعات شامل:
سازمان حافظه li>
مدل های برنامه نویسی موازی li>
طراحی یک برنامه موازی و ارزیابی عملکرد li>
کار با رشته ها در پایتون li>
همگام سازی موضوعات و استفاده از چند رشته li>
تخم ریزی فرآیند li>
اجرای فرایندی در پس زمینه li>
فرآیندهای همگام سازی li>
استفاده از ماژول پایتون mpi4py
استفاده از ارتباط جمعی li>
کاهش عملیات li>
مدیریت وقایع ، وظایف و برنامه های معمول با Asyncio
توزیع وظایف li>
سرفصل ها و درس ها
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
Giancarlo Zaccone یک توسعه دهنده و مهندس نرم افزار است که در محاسبات و تحقیقات علمی تخصص دارد.
جیانکارلو بیش از یک دهه تجربه در زمینه تحقیق علمی و صنعتی دارد. وی به عنوان محقق شورای تحقیقات ملی ، درگیر در پروژه های موازی محاسبات و تجسم علمی بود. جیانکارلو دارای مدرک کارشناسی ارشد فیزیک از دانشگاه ناپل فدریکو دوم است. وی همچنین یک دوره کارشناسی ارشد سطح دوم کارشناسی ارشد را برای محاسبات علمی از دانشگاه ساپینزا رم به پایان رسانده است.
نمایش نظرات