Макроконвейер — распределенная многопроцессорная система, обладающая программной и аппаратной поддержкой организации вычислений по макроконвейерному принципу.[1] Этот принцип был предложен в 1978 году советским математиком В. М. Глушковым. Его суть состоит в том, что при распределении вычислительных заданий между процессорами каждому процессору на очередном шаге вычислений дается такое задание, которое может загрузить его работой на определенное время, без взаимодействия с другими процессорами.[1]:320 Последовательное применение принципа макроконвейера позволяет получить линейное ускорение в зависимости от числа процессоров, используемых для решения задачи.
Предположим, что нам требуется решить задачу вычисления функции . Время вычисления зависит от числа операций, которое в свою очередь, зависит от некоторого числового параметра или набора параметров , характеризующих исходные данные . Пусть время выражается зависимостью . Параметр можно выбрать так, что функция будет расти с ростом . Например, если — решение системы линейных алгебраических уравнений с матрицей коэффициентов и вектором свободных членов , которое вычисляется одним из прямых методов, то в качестве можно взять порядок системы. Если же система решается итерационным методом, то в качестве можно взять пару — порядок системы и число итераций.
Допустим, что распределить вычисление функции равномерно между процессорами возможно так, что каждый из процессоров будет работать время . В реальной системе стоит также учитывать накладные расходы связанные с обменом информации между процессорами. Представим время потраченое на накладные расходы как , оно включает в себя собственно время необходимое для передачи данных, время на синхронизацию. Время решения задачи на системе из процессоров обозначим как , тогда ускорение при решении задачи с параметром можно выразить формулой:
Формула имеет смысл только если , где — максимальное число процессоров, допускающее разумное разделение вычислительной работы при заданном размере задачи. Если , то при изменении от 1 до производительность растет не медленней, чем линейно с коэффициентом эффективности . Если же время, затрачиваемое на обмен, растет медленнее, чем время вычислений, то с ростом коэффициент эффективности приближается к 1. Приведенная формула не учитывает многие дополнительные факторы, но она позволяет вести поиск эффективных алгоритмов для решения задач на многопроцессорных распределенных системах.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .