IT и интернет

Ускорение программы по закону Амдала

Оценивает предел ускорения фиксированной задачи при распараллеливании части программы.

</>быстрый расчёт
онлайн
Введите данные
Данные не отправляются на сервер
Результат
Идеальное ускорение2,5
Время после распараллеливания40 с
Эффективность использования исполнителей62,5 %
Формула

Как считается результат

Идеальное ускорение = 1/(1-parallel/100+parallel/100/workers); Время после распараллеливания = duration*(1-parallel/100+parallel/100/workers) (с); Эффективность использования исполнителей = 100/(workers*(1-parallel/100+parallel/100/workers)) (%)
Пример с тестовыми данными

Параллелизуемая доля исходного времени: 80 %; Число одинаковых исполнителей: 4; Исходное время на одном исполнителе: 100 с

Идеальное ускорение: 2,5; Время после распараллеливания: 40 с; Эффективность использования исполнителей: 62,5 %
О расчёте

Как пользоваться
калькулятором

Оценивает предел ускорения фиксированной задачи при распараллеливании части программы.

Закон Амдала разделяет исходное время на последовательную долю 1−p и параллельную p. При N одинаковых исполнителях ускорение S=1/((1−p)+p/N).

  1. 01
    Подготовьте данные

    Используйте исходные величины именно для рассматриваемого случая: параллелизуемая доля исходного времени в %; число одинаковых исполнителей; исходное время на одном исполнителе в с.

  2. 02
    Проверьте единицы и условия

    Размер задачи фиксирован, параллельная часть распределяется идеально. Синхронизация, передача данных, запуск потоков и конкуренция за память не включены, поэтому это теоретическая оценка.

  3. 03
    Прочитайте результат

    Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей.

Подробное объяснение

Как читать результат

Расшифровка показателей, пример вычисления и ограничения метода — без лишних терминов.

01

Что означают результаты

Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей.

02

Когда модель применима

Размер задачи фиксирован, параллельная часть распределяется идеально. Синхронизация, передача данных, запуск потоков и конкуренция за память не включены, поэтому это теоретическая оценка.

Разбор по шагам

Пример расчёта

Пример 1
Исходные данные
Параллелизуемая доля исходного времени: 80 %; Число одинаковых исполнителей: 4; Исходное время на одном исполнителе: 100 с
Вычисление
Закон Амдала разделяет исходное время на последовательную долю 1−p и параллельную p. При N одинаковых исполнителях ускорение S=1/((1−p)+p/N). Идеальное ускорение: 1 ÷ (1-(80) ÷ 100+(80) ÷ 100 ÷ (4)) = 2,5. Время после распараллеливания: (100) × (1-(80) ÷ 100+(80) ÷ 100 ÷ (4)) = 40 с. Эффективность использования исполнителей: 100 ÷ ((4) × (1-(80) ÷ 100+(80) ÷ 100 ÷ (4))) = 62,5 %.
Результат
Идеальное ускорение: 2,5; Время после распараллеливания: 40 с; Эффективность использования исполнителей: 62,5 %

Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей.

Пример 2
Исходные данные
Параллелизуемая доля исходного времени: 80 %; Число одинаковых исполнителей: 1; Исходное время на одном исполнителе: 100 с
Вычисление
Идеальное ускорение: 1 ÷ (1-(80) ÷ 100+(80) ÷ 100 ÷ (1)) = 1. Время после распараллеливания: (100) × (1-(80) ÷ 100+(80) ÷ 100 ÷ (1)) = 100 с. Эффективность использования исполнителей: 100 ÷ ((1) × (1-(80) ÷ 100+(80) ÷ 100 ÷ (1))) = 100 %.
Результат
Идеальное ускорение: 1; Время после распараллеливания: 100 с; Эффективность использования исполнителей: 100 %

Этот вариант использует другие исходные данные: Число одинаковых исполнителей — 1. Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей.

Формула и обозначения

Идеальное ускорение = 1/(1-parallel/100+parallel/100/workers); Время после распараллеливания = duration*(1-parallel/100+parallel/100/workers) (с); Эффективность использования исполнителей = 100/(workers*(1-parallel/100+parallel/100/workers)) (%)

parallel — параллелизуемая доля исходного времени, единица: %.

workers — число одинаковых исполнителей.

duration — исходное время на одном исполнителе, единица: с.

Закон Амдала разделяет исходное время на последовательную долю 1−p и параллельную p. При N одинаковых исполнителях ускорение S=1/((1−p)+p/N).

Практическое применение

Оценивает предел ускорения фиксированной задачи при распараллеливании части программы. Закон Амдала разделяет исходное время на последовательную долю 1−p и параллельную p. При N одинаковых исполнителях ускорение S=1/((1−p)+p/N).

Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей.

Частые ошибки

Используйте исходные величины именно для рассматриваемого случая: параллелизуемая доля исходного времени в %; число одинаковых исполнителей; исходное время на одном исполнителе в с.

Размер задачи фиксирован, параллельная часть распределяется идеально. Синхронизация, передача данных, запуск потоков и конкуренция за память не включены, поэтому это теоретическая оценка.

Источники и допущения

Основание расчёта

Метод, правило или ставка сверены с указанным источником. Последняя проверка этой реализации: 2026-09-30.

University of Maryland: закон Амдала ↗
Коротко о главном

Вопросы
и ответы

Что показывает «идеальное ускорение»?+

Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей.

Как проверить расчёт на конкретном примере?+

Параллелизуемая доля исходного времени: 80 %; Число одинаковых исполнителей: 4; Исходное время на одном исполнителе: 100 с. Идеальное ускорение: 2,5; Время после распараллеливания: 40 с; Эффективность использования исполнителей: 62,5 %. Закон Амдала разделяет исходное время на последовательную долю 1−p и параллельную p. При N одинаковых исполнителях ускорение S=1/((1−p)+p/N).

Какие ограничения есть у метода?+

Размер задачи фиксирован, параллельная часть распределяется идеально. Синхронизация, передача данных, запуск потоков и конкуренция за память не включены, поэтому это теоретическая оценка.

Можно ли изменить исходные данные и сравнить варианты?+

Да. Доля относится к времени исходного однопоточного запуска, не к числу строк кода. При ненулевой последовательной части ускорение не растёт безгранично с числом исполнителей. Сравнивайте варианты в одинаковых единицах и при неизменных допущениях: Размер задачи фиксирован, параллельная часть распределяется идеально. Синхронизация, передача данных, запуск потоков и конкуренция за память не включены, поэтому это теоретическая оценка.