Фабио Нелли | Параллельное программирование на Python. Код на Python для ПК и кластеров с использованием CUDA, PyTorch и Dask (2026) [PDF]
Автор: Фабио Нелли
Перевод: В.И. Бахура
Издательство: ДМК Пресс
Серия: Легкий старт
ISBN: 978-5-93700-451-2
Жанр: Компьютерная литература
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Цветные и черно-белые
Описание:Книга последовательно знакомит с методами параллельного программирования на Python – от базовых концепций до современных инструментов для распределенных и ускоренных вычислений. Практические примеры демонстрируют применение параллельных подходов в аналитике данных, машинном обучении и научном моделировании. Рассмотрены современные тенденции развития параллельных вычислений и их влияние на экосистему Python. Вы узнаете, какие ограничения и компромиссы сопровождают различные модели параллелизма и научитесь выбирать архитектурные решения в зависимости от характера нагрузки.
Издание будет полезно как практикующим инженерам, так и студентам технических специальностей, изучающим параллельное и распределённое программирование. Желательны базовые навыки программирования на Python и понимание принципов работы операционных систем.
Оглавление:
Об авторе...................................................................................................9
Технический рецензент.............................................................................. 10
Благодарности........................................................................................... 11
Предисловие.............................................................................................. 12
Глава 1. Введение в параллельное программирование.................................. 14
Параллельное программирование.................................................................15
Технологическая эволюция компьютеров и параллелизм................................15
Процессоры, ядра, потоки и процессы..........................................................17
Многозадачное и параллельное программирование........................................20
Потоки и процессы в Python для моделей многозадачности
и параллелизма...........................................................................................22
Распределение и использование памяти........................................................30
Оценка эффективности параллельного программирования..............................34
Заключение.................................................................................................38
Глава 2. Параллельное программирование с потоками................................... 40
Потоки........................................................................................................40
Метод join().................................................................................................42
Механизмы синхронизации...........................................................................50
Заключение.................................................................................................77
Глава 3. Многопроцессорные вычисления и библиотека mpi4py...................... 79
Процессы и модуль multiprocessing................................................................80
Каналы взаимодействия между процессами....................................................89
Отображение функции через пул процессов...................................................96
Параллельное отображение с chunksize..........................................................99
Класс ProcessPoolExecutor..............................................................................100
Библиотека mpi4py.......................................................................................103
Параллелизм процессов................................................................................104
Основные области применения mpi4py ..........................................................107
Реализация двухточечных коммуникаций.......................................................108
Коллективные коммуникации........................................................................109
Оптимизация коммуникаций при помощи топологий........................................116
Заключение.................................................................................................119
Глава 4. Асинхронное программирование с AsyncIO....................................... 120
Асинхронное и синхронное программирование...............................................120
Библиотека AsyncIO......................................................................................123
Оглавление 7
Асинхронные итерации с async for и без async for ...........................................135
Очередь в асинхронной модели......................................................................138
Альтернативы библиотеке AsyncIO .................................................................140
Заключение...................................................................................................140
Глава 5. Реализация параллелизма с помощью
распределенных систем................................................................................. 141
Распределенные системы и программирование.................................................142
Celery............................................................................................................144
Библиотека Dramatiq как альтернатива Celery...................................................162
Библиотека SCOOP..........................................................................................169
Заключение....................................................................................................175
Глава 6. Программирование GPU с CUDA для максимальной
производительности....................................................................................... 176
Архитектура GPU.............................................................................................176
Программирование GPU на Python.....................................................................178
Numba............................................................................................................179
PyOpenCL........................................................................................................195
Заключение.....................................................................................................211
Глава 7. Эпоха параллельных вычислений....................................................... 212
Высокопроизводительные вычисления (HPC)...................................................212
Параллельные вычисления.............................................................................213
Проекты и примеры параллельных вычислений..............................................215
Развлечения – игры и фильмы.......................................................................231
Заключение....................................................................................................238
Глава 8. Масштабирование приложений для обработки данных
с помощью Dask............................................................................................. 240
Аналитика данных, библиотека Pandas и параллельные вычисления....................240
Библиотека Dask..............................................................................................242
Начало работы на одном компьютере.................................................................244
Коллекции Dask................................................................................................247
Методы для коллекций....................................................................................252
Вычисления и графы задач.............................................................................253
Низкоуровневое взаимодействие с Dask Delayed..........................................255
Начало работы на кластере машин..............................................................256
Приступая к программированию кластера...................................................260
Заключение..............................................................................................266
Глава 9. Раскрытие потенциала ИИ с параллельными вычислениями............ 268
Искусственный интеллект (ИИ)...................................................................269
ИИ, машинное обучение и глубокое обучение..............................................270
Контролируемое и неконтролируемое обучение..........................................272
Искусственный интеллект и параллельные вычисления...............................273
Параллельное и распределенное машинное обучение.................................274
Машинное обучение с помощью Scikit-learn................................................275
Масштабирование Scikit-learn с Dask-ML......................................................278
Параллельное и распределенное глубокое обучение....................................280
PyTorch и TensorFlow...................................................................................281
Пример глубокого обучения с PyTorch...........................................................282
Пример глубокого обучения с использованием PyTorch и GPU..........................292
Масштабирование PyTorch с помощью Dask....................................................294
Заключение.................................................................................................304
Глава 10. Приложения параллельных вычислений......................................... 306
Массивно-параллельный искусственный интеллект ........................................307
Пограничные вычисления..............................................................................308
Распределенная вычислительная инфраструктура с киберфизическими
системами.....................................................................................................310
Искусственный интеллект в кибербезопасности................................................312
Вступление в эпоху Web 5.0............................................................................313
Экзафлопсные вычисления.............................................................................315
Квантовые вычисления...................................................................................315
Новые профессиональные возможности...........................................................316
Необходимые улучшения в параллельных вычислениях для Python....................317
Будущее PyTorch и TensorFlow..........................................................................318
Заключение....................................................................................................320
Предметный указатель.................................................................................... 322
Скриншоты:
Время раздачи: с 10 до 20 (минимум до появления первых 3-5 скачавших)