Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[213]

30.3. Теорема Брента и эффективность по затратам

Теорема Брента даёт способ эффективно моделировать схемы из функциональных элементов с помощью параллельных машин с произвольным доступом (PRAM). С её помощью многие результаты о сортирующих сетях (глава 28) и схемах из функциональных элементов (глава 29) переносятся на модель PRAM.

Рассмотрим схему из функциональных элементов (combinational circuit), которая состоит из функциональных элементов (combinational element), соединённых так, что не образуется циклов. В этом разделе предполагается, что функциональные элементы имеют любое количество входов, но ровно один выход (элемент с несколькими выходами можно заменить на несколько элементов с одним выходом). Число входов называется входной степенью (fan-in) элемента, а число входов, к которым подключён выход элемента - его выходной степенью (fan-out). Как правило, в этом разделе предполагается, что входные степени всех используемых элементов ограничены сверху. Выходные степени могут быть любыми.

Размером (size) схемы называется количество элементов в ней. Наибольшее число элементов на путях от входов схемы к выходу элемента называется глубиной (depth) этого элемента. Глубиной схемы называется наибольшая из глубин её элементов.

Теорема 30.2 (теорема Брента)

При моделировании работы схемы глубины d и размера п с ограниченными входными степенями элементов с помощью CREW-алгоритма, использующего р процессоров, достаточно времени 0(n/p + d).

Доказательство.

Отведём в памяти место для входных значений схемы и для выходных значений всех функциональных элементов. Работу каждого элемента можно смоделировать с помощью одного процессора за время 0(1): процессор читает входные значения и вычисляет требуемую функцию, записывая результат на нужное место; поскольку входные степени всех элементов ограничены сверху, функцию, соответствующую любому элементу, можно вычислить за время 0(1).

Теперь требуется указать, в какой последовательности следует моделировать работу функциональных элементов с помощью р процессоров, чтобы обеспечить время работы 0(n/p-\- d). Проблема состоит в том, что выходное значение элемента можно вычислить лишь когда известны все его входные значения. (Большие выходные степени элементов не создают проблем, поскольку одновременное чтение разрешено).

Сначала мы можем моделировать лишь элементы глубины 1 (их


Рис. 30.8 30.8. Теорема Брента. Схему размера 15 и глубины 5 можно смоделировать на CREW-машине с двумя процессорами за 9 15/2 + 5 шагов. Элементы моделируются сверху вниз (в порядке возрастания глубины). Элементы, которые моделируются одновременно, объединены в группы (показаны серым цветом); для каждой группы указано, на каком шаге моделируются её элементы.

входные значения известны с самого начала). После этого можно моделировать элементы глубины 2, затем глубины 3 и т. д., до глубины d. Заметим, что если элементы глубины 1,... , г уже смоделированы, то элементы глубины г + 1 можно моделировать одновременно, так как они не используют выходные значения друг друга.

Элементы моделируются в порядке возрастания глубины, а на одной глубине - по р штук за раз. На рис. 30.8 показано, как происходит моделирование в примере с р = 2.

Если число элементов глубины г равно гаг-, на их моделирование уйдёт не более (гаг-/р) + 1 шагов (единица прибавляется, если последняя группа неполная). Всего получается не более

Ef- + 1) = - + rf ii v р р

шагов. Теорема доказана.

Теорема Брента справедлива и для моделирования схем на EREW-машине (при дополнительном условии, что выходные степени всех элементов также ограничены сверху):

Следствие 30.3. Любая схема глубины d и размера га, у которой элементы имеют ограниченные сверху входные и выходные степени, может быть смоделирована с помощью EREW-алгоритма, использующего р процессоров, со временем работы 0(n/p-\- d).

Доказательство. Моделирование производится так же, как и при доказательстве теоремы Брента. Единственная разница состоит в том, что выходное значение следует скопировать в 0(1) ячеек (их количество равно максимальной выходной степени элемента), чтобы процессоры впоследствии могли одновременно прочесть это значение, не используя одновременное чтение из одной ячейки.

Если выходные степени не ограничены сверху, копирование не укладывается в 0(1) шагов, так что требуется одновременное чтение. Если входные степени не ограничены сверху, то в некоторых случаях (когда функциональные элементы достаточно просты) схему всё же можно смоделировать на CRCW-машине с аналогичной оценкой времени работы (упр. 30.3-1).

В замечаниях к главе 28 указано, что существует сортирующая AKS-сеть, которая сортирует га чисел за время О (lgra), используя О (га lgra) компараторов. Поскольку входные степени компара-


торов ограничены сверху, для га процессоров существует EREW-алгоритм сортировки со временем работы О ((га lg га)/га + lg га) = О (lgra) (следствие 30.3). Этот результат был использован при доказательстве теоремы 30.1. К сожалению, множитель при логарифме столь велик, что такой алгоритм сортировки представляет лишь теоретический интерес. Однако существуют более практичные EREW-алгоритмы сортировки, например, параллельный алгоритм сортировки слиянием, принадлежащий Коулу [46].

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

Теорема 30.4. Пусть алгоритм А использует р процессоров и имеет время работы t. Тогда для любого р < р существует алгоритм А для той же задачи, использующий р процессоров и имеющий время работы 0(pt/p).

Доказательство. Занумеруем шаги алгоритма А числами 1,2,Алгоритм А будет моделировать каждый шаг за

время 0(\р/р]) (это делается как в теореме Брента). Тогда общее время работы алгоритма А будет равно Ю(\р/р]) = 0(t\p/p]) = 0(pt/p), так как р < р.

Общие затраты алгоритма А равны pt, а общие затраты алгоритма А равны 0(pt/p)p = O(pt), поэтому если алгоритм А эффективен по затратам, то А также эффективен по затратам.

Идея доказательства проста: процессор моделирует работу нескольких процессоров в режиме «разделения времени». Напротив, «распараллеливание» - разделение работы одного процессора между несколькими - дело трудное и для каждой конкретной задачи требует специального рассмотрения.

Следующее соображение позволяет иногда решить вопрос о существовании эффективного по затратам алгоритма с данным числом процессоров. Пусть доказано, что при любом количестве процессоров время работы алгоритма не может быть меньше t, а затраты наилучшего однопроцессорного алгоритма равны w (следовательно, затраты любого алгоритма не меньше w). Если в этой ситуации удастся найти эффективный по затратам алгоритм, использующий р = Q(w/t) процессоров, то тем самым будут найдены эффективные алгоритмы для любого количества процессоров, при котором они существуют. Действительно, для меньшего числа процессоров такой алгоритм получается из теоремы Брента, а эффективный алгоритм для существенно большего числа процессоров р не может существовать, поскольку время работы такого алгоритма не меньше t, а затраты не меньше pt = oj(pt) = uj(w).



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]