КаталогКниг.РФ

Семь моделей конкуренции и параллелизма за семь недель (Батчер Пол) ; ДМК-Пресс, 2019

Книга: Семь моделей конкуренции и параллелизма за семь недель (Батчер Пол) ; ДМК-Пресс, 2019

от 447 р. до 5528 р.


Описание

С появлением микропроцессоров, обладающих большим числом ядер, понимание конкуренции и параллелизма при разработке программного обеспечения стало еще более важным, чем прежде. В книге вы познакомитесь с преимуществами функционального программирования с точки зрения конкуренции, узнаете, как применять акторы для разработки распределенного программного обеспечения, и исследуете приемы параллельной обработки огромных объемов информации на нескольких процессорах. Эта книга поможет вам приобрести новые навыки в разработке программ, благодаря чему вы будете готовы решать сложные задачи в ближайшие несколько лет.

Смотри также Характеристики.

Содержание

Положительные отзывы к книге
"Семь моделей конкуренции за семь недель"
Предисловие
Благодарности
Вступление
О книге
Чем не является эта книга
Примеры кода
Примечание для пользователей IDE
Примечание для пользователей Windows
Ресурсы в Сети
Глава 1. Введение
Конкуренция или параллелизм?
Похожие, но разные
За рамками последовательного программирования
Параллельная архитектура
Параллелизм на уровне битов
Параллелизм на уровне инструкций
Параллелизм данных
Параллелизм на уровне задач
Конкуренция: за рамками множества ядер
Конкурентные программы для конкурентного мира
Распределенные программы для распределенного
мира
Надежные программы для непредсказуемого мира
Простые программы в сложном мире
Семь моделей
Глава 2. Потоки выполнения и блокировки
Самое простое из того, что может работать
День 1: взаимоисключение и модели памяти
Создание потока
Наша первая блокировка
Загадочная память
Видимость памяти
Несколько блокировок
Опасности сторонних методов
В завершение первого дня
День 2: помимо встроенных блокировок
Прерываемое блокирование
Тайм-ауты
Блокирование методом перебора
Условные переменные
Атомарные переменные
В завершение второго дня
День 3: на плечах гигантов
Еще раз о создании потоков
Копирование при записи
Законченная программа
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 3. Функциональное программирование
Если какие-то действия вредят вам, перестаньте
выполнять их
День 1: программирование без изменяемого
состояния
Опасности изменяемого состояния
Краткий экскурс в язык Clojure
Первая функциональная программа
Параллелизм без усилий
Функциональный подсчет слов
Лень - это благо
В завершение первого дня
День 2: функциональный параллелизм
По одной странице за раз
Разделение данных на пакеты для увеличения
производительности
Редуценты (reducers)
Внутреннее устройство редуцентов
Разделяй и властвуй
Поддержка функции fold
Подсчет слов с помощью fold
В завершение второго дня
День 3: функциональная конкуренция
Та же структура, разный порядок вычислений
Ссылочная прозрачность
Потоки данных
Механизм future
Механизм promise
Функциональная веб-служба
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 4. Путь Clojure - разделение идентичности
и состояния
Лучшее из двух миров
День 1: атомы и сохранные структуры данных
Атомы
Многопоточная веб-служба с изменяемым
состоянием
Сохраниые структуры данных
Идентичность или состояние
Повторения
Вал идатор ы
Функции-наблюдатели
Гибридная веб-служба
В завершение первого дня
День 2: агенты и программная транзакционная
память
Агенты
Журнал в памяти
Программная транзакционная память
Изменяемое разделяемое состояние
В завершение второго дня
День 3: погружение в глубину
Решение задачи о философах на основе STM
Решение задачи о философах без применения STM
Атомы или STM?
Собственная реализация конкуренции
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 5. Акторы
Не объекты, а скорее ориентированные на
объекты
День 1: сообщения и почтовые ящики
Наш первый актор
Почтовые ящики и очереди
Прием сообщений
Связывание процессов
Акторы с сохранением состояния
Сокрытие сообщений за фасадом API
Двунаправленное взаимодействие
Именование процессов
Отступление - функции первого порядка
Параллельная версия тар()
В завершение первого дня
День 2: обработка ошибок и отказоустойчивость
Актор кэширования
Определение момента отказа
Слежение за работой процессов
Тайм-ауты
Ядро ошибки
И пусть падает!
В завершение второго дня
День 3: распределенные приложения
ОТР
Узлы
Распределенный счетчик слов
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 6. Взаимодействие последовательных
процессов
Взаимодействия - это все
День 1:каналы и блоки до
Каналы
Блоки до
Операции с каналами
В завершение первого дня
День 2: множество каналов и ввод/вывод
Обслуживание множества каналов
Асинхронный опрос
Асинхронный ввод/вывод
В завершение второго дня
День 3: модель CSP на стороне клиента
Конкуренция - это образ жизни
Привет, ClojureScript
Обработка событий
Усмирение функций обратного вызова
Отправляемся в путь, чтобы увидеть Мастера
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 7. Параллелизм данных
В недрах вашего ноутбука спрятан
суперкомпьютер
День 1: программирование GPGPU
Обработка данных и параллелизм данных
Наша первая программа для OpenCL
Профилирование
Множество возвращаемых значений
Обработка ошибок
В завершение первого дня
День 2: многомерность и рабочие группы
Многомерные массивы рабочих элементов
Получение информации об устройстве
Модель платформы
Модель памяти
Параллельная свертка
Свертка с одной рабочей группой
В завершение второго дня
День 3: OpenCL и OpenGL-храните данные в GPU
Водная рябь
LWJGL
Отображение сетки в OpenGL
Доступ к буферу OpenGL из ядра OpenCL
Имитация ряби
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Другие языки
Напоследок
Глава 8. Лямбда-архитектура
Параллелизм позволяет обрабатывать гигантские
объемы
данных
День 1:MapReduce
Практические аспекты
Основы Hadoop
Подсчет слов с помощью Hadoop
Опробование на Amazon EMR
Обработка ХМ L
В завершение первого дня
День 2: пакетный уровень
Проблемы с традиционными системами данных
Вечные истины
Лучшие данные - исходные данные
Авторы правок в Википедии
Завершение картины
В завершение второго дня
День 3:уровень ускорения
Архитектура уровня ускорения
Подсчет правок с помощью Storm
В завершение третьего дня
В завершение
Сильные стороны
Слабые стороны
Альтернативы
Напоследок
Глава 9. В заключение
Куда мы идем?
Будущее за неизменяемостью
Будущее за распределенными вычислениями
Темы, оставшиеся за бортом
Fork/Join и захват задачи
Потоки данных
Реактивное программирование
Функциональное реактивное программирование
Grid-вычисления
Пространства кортежей
Выбор за вами
Библиография
Предметный указатель

Видео обзоры (2)

Иван Шеломенцев. Параллелизм тестов Основные моменты, которые стоит учитывать

Иван Шеломенцев. Параллелизм тестов Основные моменты, которые стоит учитыватьзапуск видео

 

Сергей Архипов - Модели конкуренции

Сергей Архипов - Модели конкуренциизапуск видео

 

О книге

Автор(ы)
СерияThe Pragmatic Programmers
РазделПрограммирование
ИздательДМК-Пресс
ISBN978-5-9706-0244-7
Год издания2019
Количество страниц360
Формат139x198мм
Вес0.42кг
Кол-во страниц360
Размеры60x88 1/16
Обложкамягкая обложка
Язык изданияrus

Сравнить цены

Цена от 447 р. до 5528 р. в 5 магазинах

МагазинЦенаНаличие
AliExpress

5/5

AliExpress – один из крупнейших мировых маркетплейсов,
предлагающий клиентам самые низкие цены

Лабиринт

5/5

1391 р. 2781 р.
ЛитРес

5/5

447 р. 559 р.
электронная книга | скачать фрагмент
Book24

5/5

2089 р.
Яндекс.Маркет

5/5

5528 р.
МАЙШОП

5/5

1286 р. 2040 р.
Читай-город

5/5

Мегамаркет

5/5

Реклама. Информация о рекламодателе по ссылке в столбце «Магазин»

Как купить или где мы находимся +

Яндекс.Маркет


Отзывы (3)

  • 4/5

    Книга в целом не плохая. Подробно рассмотрены модели на мьютексах, на акторах, CSP. Рассмотрены идеи параллелизма на GPU. Только вот CSP почему-то расмотрено не на Go (который основан на этой модели), а на Clojure. Вообще вся кинга – одна функциональному программированию вообще и Clojure в частности – и только поэтому 4 звезды.

    0    0

  • 4/5

    Из восьми глав, два с половиной о подходах на Java, остальные на функциональных языках (Clojure, Elixir, ClojureScript), плюс глава про использование GPU.
    Чтобы понимать большую часть книги, требуется знакомство хоть с одним функциональным языком программирования.
    В целом оставляет впечатление сырой книги, написанной в спешке.

    0    0

  • 5/5

    Обзорная книга для подготовленного читателя.



    Помогает неплохо расширить кругозор. В книге приводятся примеры реализаций некоторых параллельных задач на C++, Java, но в основном на Clojure, сравниваются подходы и языковые парадигмы.



    Большая часть книги посвящена функциональному подходу и языку Clojure!



    Не практикую функциональные языки ни в каком их проявлении, поэтому мне понравился обзор языковых особенностей в контексте их главных преимуществ.



    Понравился обзор и сравнение основных моделей. Четко по полочкам, плюсы и минусы.



    Объясняются современные тенденции на простых примерах.

    0    0

Добавить отзыв



10 ms.

Книги с похожим названием

Искать все [2]

 

Программирование - издательство "ДМК-Пресс"

Категория 357 р. - 536 р.

Программирование - издательство "ДМК-Пресс" »

1 ms.
ADS
закладки (0) сравнение (0)

 

preloader

29 ms