Параллельные и распределенные вычисления
| English | Русский |
|---|---|
| sequential computing/siːˈkwenʃl kəmˈpjuːtɪŋ/ | последовательные вычисления |
| Parallel computing/ˈpærəlel kəmˈpjuːtɪŋ/ | Параллельные вычисления |
| processors/ˈprəʊsesəz/ | процессоры |
| Distributed computing/ˈdɪstrɪbjuːtɪd kəmˈpjuːtɪŋ/ | Распределенные вычисления |
| speedup/ˈspiːdʌp/ | ускорение |
Пошагово
- Традиционно компьютер выполняет шаги по очереди.
- Это последовательные вычисления: каждый шаг должен завершиться до начала следующего.
- Это просто, но может быть медленно для крупных задач.
- Чтобы ускорить процесс, мы можем выполнять несколько шагов одновременно.
При последовательных вычислениях:
Один шаг за другим, по порядку.
Параллельные и распределенные системы
- Параллельные вычисления используют несколько процессоров в одной машине для выполнения частей задачи одновременно.
- Распределенные вычисления распределяют задачу между многими отдельными компьютерами, часто находящимися в разных местах, соединенными сетью.
- Параллельные = много процессоров, одна машина. Распределенные = много машин.
- Обе стратегии направлены на более быстрое выполнение крупной задачи.
Последовательные, параллельные или распределенные?
Последовательные вычисления выполняются шаг за шагом; параллельные используют несколько процессоров в одной машине одновременно; распределенные разбивают задачу между множеством отдельных компьютеров.
Соотнесите каждый термин с его значением.
Параллельные — это одна машина; распределенные — это много машин.
Ускорение и его предел
- Эффект параллельных вычислений измеряется показателем ускорения:
- $\text{speedup} = \dfrac{\text{time using one processor}}{\text{time using several processors}}$.
- Но любая часть, которая обязательно должна выполняться последовательно, не может быть ускорена добавлением процессоров.
- Поэтому последовательная часть устанавливает потолок — жесткий лимит общего ускорения.
Задача занимает 100 секунд на одном процессоре и 40 секунд на нескольких. Каково ускорение?
ускорение = 100 / 40 = 2.5×.
Если 20 секунд из задачи длительностью 100 секунд должны выполняться последовательно, каково максимально возможное ускорение?
Даже при бесконечном количестве процессоров 20 секунд останутся: 100 / 20 = 5×.
Почему добавление дополнительных процессоров никогда не может устранить предел ускорения?
Последовательная часть устанавливает минимум общего времени выполнения.
Распределенные вычисления подходят для огромных задач, которые невозможно выполнить на одной машине, например, индексация всего веб-пространства.
Работа естественным образом разделяется между тысячами компьютеров.
Когда распределенные решения эффективны
- Распределенные решения раскрываются на огромных задачах — колоссальных наборах данных или поисковых движках, индексирующих весь интернет.
- Объем работы слишком велик для одной машины и естественно разделяется между тысячами устройств.
Ускорение с ограничением. Задача длительностью 100 секунд имеет 80 с параллельной и 20 с последовательной части. На 4 процессорах параллельная часть занимает $80 / 4 = 20$ с, плюс 20 с последовательной = 40 с. Ускорение $= 100 / 40 = 2.5\times$. Даже при наличии миллиона процессоров 20 с последовательной части остаются, поэтому ускорение никогда не превысит $100 / 20 = 5$.
Последовательные вычисления выполняют один шаг за другим. Параллельные вычисления используют несколько процессоров в одной машине одновременно; распределенные вычисления распределяют работу между многими машинами. Прирост параллельных вычислений измеряется как ускорение (время одного процессора ÷ время нескольких процессоров), но последовательная часть ограничивает этот показатель (здесь — 5×).