Масштабируемость параллельной программы

Масштаби́руемость паралле́льной програ́ммы, свойство параллельной программы, характеризующее зависимость всей совокупности динамических характеристик этой программы от множества параметров её запуска. Под динамическими характеристиками понимаются как критерии качества параллельной программы, так и другие числовые значения, характеризующие её выполнение на целевом компьютере.

Основные способы получения динамических характеристик:

  • профилирование – сбор статистической информации о времени выполнения различных частей программы и частоте их вызова;
  • трассировка – сбор информации о порядке выполнения в исследуемой программе определённых заранее событий;
  • моделирование работы – создание модели исследуемого приложения и вычисление на её основе характеристик работы программы;
  • эмуляция вычислений – выполнение реальных вычислений меньшего масштаба, с экстраполяцией на интересующую конфигурацию системы.

Из динамических характеристик программ на практике чаще всего рассматривают максимальную реальную производительность , а из параметров запуска – число параллельных процессов p и вычислительную сложность решаемой задачи .

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

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

Кроме сильной и слабой, известны также некоторые другие виды масштабируемости, но именно эти два вида наиболее часто встречаются на практике.

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

Одной из известных метрик масштабируемости является функция изоэффективности (англ. isoefficiency function), показывающая необходимый уровень роста вычислительной сложности задачи для поддержания заданного уровня эффективности распараллеливания (Grama. 1993).

Литература

  • Grama A. Y. Isoefficiency: measuring the scalability of parallel algorithms and architectures / A. Y. Grama, A. Gupta, V. Kumar // IEEE parallel & distributed technology. – 1993. – Vol. 1, № 3. – P. 12–21.
  • Воеводин В. В. Параллельные вычисления : учебное пособие для вузов / В. В. Воеводин, Вл. В. Воеводин. – Санкт-Петербург : БХВ-Петербург, 2002.
  • Encyclopedia of Parallel Computing / ed. by D. Padua. – New York : Springer, 2011.
  • Теплов А. М. Анализ масштабируемости параллельных приложений на основе технологий суперкомпьютерного кодизайна : диссертация ... кандидата физико-математических наук. – Москва, 2015.
  • Algorithms and Architectures for Parallel Processing / ed. by J. Carretero [et al.]. – Cham : Springer, 2016.
  • Antonov A. S. Scalability as a key property of mapping computational tasks to supercomputer architecture // Supercomputing Frontiers and Innovations. – 2021. – Vol. 8, № 4. – P. 69–73.
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru