В текущее время объем данных непрерывно растет, при этом необходимо решать более сложные вычислительные задачи. Что нам делать с решением проблем, которые не могут быть решены в разумные сроки?
Параллельные вычисления - это тип вычислений, в котором различные вычисления могут выполняться одновременно.
Основной принцип: проблему можно разделить на подзадачи, каждая из которых может быть решена одновременно.
Многие из нас не видят разницу между параллельным (parallel) и действующий одновременно (concurrent) программированием. Давайте сделаем шаг назад и поймем концепцию и рассуждения о параллельных вычислениях.
Параллельное (parallel) вычисление:
-
Оптимальное использование параллельного оборудования для быстрого выполнения вычислений;
-
Разделение на подзадачи;
-
В основном забота о: скорость;
-
В основном используется для: Алгоритмических задач, числовых вычислений, обработки больших данных.
Конкурентное (concurrent) программирование:
-
Может или не может предлагать несколько запусков запуска одновременно;
-
В основном забота о: удобстве, лучшей отзывчивости, ремонтопригодности.
Существуют различные уровни параллелизма, например: разрядный уровень, уровень команд и уровень задач. Для целей этой статьи мы сосредоточимся на параллелизме уровня задач.
Параллельное программирование намного сложнее, чем последовательное программирование. Это даже делает жизнь разработчиков сложнее. Тем не менее, скорость, с которой могут быть достигнуты результаты, является большим плюсом на стороне параллельного программирования.
Операционная система и JVM являются основными средами, которые делают возможными параллелизм. Как известно, два разных процесса не разделяют память, которая служит в качестве блокатора для параллельной работы задачи. Но каждый процесс содержит несколько независимых параллельных единиц, называемых потоками. Потоки имеют одинаковое адресное пространство.
=>далее: Эффект задержки (Latency as an effect)
Если этот проект окажется полезным тебе - нажми на кнопочку ★
в правом верхнем углу.