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


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




[212]

п-1

т[г\ = д (А[г] > АЦ]) j=o

Возможность быстро вычислять логическое И от многих аргументов используется и в других ситуациях. Например, в ранее рассмотренных EREW-алгоритмах можно обойтись без использования управляющей сети при проверке условия окончания цикла, зависящего от состояния всех процессоров, если это условие есть конъюнкция условий, проверяемых в каждом из процессоров за время 0(1).

EREW-машина не обладает такими возможностями: любой EREW-алгоритм нахождения максимального элемента в массиве требует времени Q(lgn). Причина тут в том, что после каждого шага алгоритма число потенциально максимальных элементов уменьшается не более чем вдвое, поскольку для того, чтобы исключить элемент из числа «подозреваемых», нужно, чтобы он оказался меньше какого-то другого. Следовательно, каждое сравнение отбрасывает максимум один элемент, а число сравнений за один шаг не может быть больше половины числа оставшихся под подозрением элементов.

Интересно, что нижняя оценка Q(lgn) сохраняется, даже если разрешить одновременное чтение, то есть любой CREW-алгоритм также требует времени Q(lgn). Кук, Дворк и Райшук [50] показали, что время работы CREW-алгоритма не может быть меньше fi(lgn) даже при наличии неограниченного числа процессоров и неограниченной памяти. Те же оценки верны и для задачи вычисления логического И от га аргументов.

30.2.3. Моделирование CRCW-машины с помощью EREW-машины

Мы видели, что CRCW-алгоритмы иногда работают быстрее соответствующих EREW-алгоритмов (но не наоборот: любой EREW-алгоритм может выполняться CRCW-машиной без изменений). Итак, CRCW-машина обладает большими возможностями, но насколько они больше? Оказывается, что если число процессоров ограничено, то можно оценить сверху преимущество CRCW-машины перед EREW-машиной:

Теорема 30.1. Для любого CRCW-алгоритма (в модели одновременной записи общего значения), использующего р процессоров, существует EREW-алгоритм для той же задачи, время работы которого больше времени работы исходного алгоритма не более чем в O(lgp) раз.

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

для г = О,1,... , га - 1 вычисляется


Рис. 30.7 30.7. Моделирование одновременной записи на EREW-машине. (а) Шаг алгоритма в CRCW-модели с одновременной записью общего значения, когда процессоры осуществляют одновременную запись (процессоры Ро, Р2 и Ps). (Ь) Моделирование этого шага на EREW-машине. Вначале пара (ячейка, значение) записывается в массив А. Затем массив сортируется по первой компоненте, и записывается лишь первое из последовательности одинаковых значений.

использует факт, рассматриваемый в разделе 30.3: существует EREW-алгоритм сортировки р элементов, который использует р процессоров и работает за время O(lgp).

Достаточно указать EREW-алгоритм, который моделирует каждый шаг CRCW-алгоритма за время O(lgp). Поскольку число процессоров в обоих случаях одно и то же, нужно лишь смоделировать одновременный доступ к памяти. Мы рассмотрим вопрос об одновременной записи, оставив одновременное чтение читателю (упр. 30.2-7).

Для моделирования одновременной записи используется дополнительный массив А размера р. Рис. 30.7 демонстрирует основную идею. Если процессор Рг- (при г = 0,1,... , п - 1) направляет для записи в ячейку с номером /г- значение жг-, то в соответствующем EREW-алгоритме пара (/;, жг) записывается в ячейку А [г]. При этом записи оказываются исключающими. Затем массив А сортируется по первой координате за время O(lgp). После этого все данные, поступившие для записи в данную ячейку, оказываются рядом.

надписи на картинке:

общая память CRCW-машины

содержимое CRCW-памяти [вместо simulated CRCW global memory]

сортировка

Затем каждый процессор Рг- (при г = 1, 2,... , п - 1) сравнивает первые координаты своего и предшествующего элементов, то есть А [г] = (lj,Xj) и А [г - 1] = (1к,хк)- Если lj ф 1к или г = 0, то процессор Pi записывает значение Xj в ячейку lj, а в противном случае не делает ничего. Другими словами, записывается первое из подряд идущих значений, поступивших на запись в данную ячейку. Результат всего процесса моделирует одновременную запись, а общее время составляет O(lgp).

Можно смоделировать и другие варианты одновременной записи (упр. 30.2-9).

Какая же модель предпочтительней - EREW или CRCW? И если CRCW, то какой из вариантов одновременной записи использовать? Сторонники модели CRCW ссылаются на то, что программы для CRCW проще и быстрее. Противники говорят, что оборудование для обеспечения одновременного доступа к памяти замедляет этот доступ, поэтому на практике выигрыш во времени является


мнимым. На самом-то деле невозможно найти максимум в массиве за время 0(1), говорят они.

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

Впрочем, сам вопрос о «единственно правильной и подлинно научной» модели параллельных вычислений не имеет смысла. Разные аспекты реальных компьютеров отражаются разными моделями. Какой из аспектов более важен, станет ясно в будущем.

Упражнения

30.2-1. Пусть лес состоит всего лишь из одного дерева с га узлами. Покажите, что тогда существует CREW-алгоритм поиска корней со временем работы 0(1) независимо от глубины дерева. Покажите, что любой EREW-алгоритм даже при этом дополнительном предположении требует времени Q(lgn).

30.2-2. Укажите EREW-алгоритм для поиска корней со временем работы О (lgra), где га - общее количество узлов в деревьях.

30.2-3. Найдите CRCW-алгоритм, который, используя га процессоров, за время 0(1) вычисляет логическое ИЛИ от га аргументов.

30.2-4. Опишите эффективный CRCW-алгоритм, который умножает две булевы матрицы размера гахга, используя га3 процессоров.

30.2-5. Опишите EREW-алгоритм для умножения двух вещественных матриц размера га X га за время О (lgra), использующий га3 процессоров. Можете ли вы найти алгоритм для CRCW-машины с записью общего значения, работающий быстрее? А для какой-либо другой модели CRCW-машины?

30.2-6*. Докажите, что для любого е > 0 существует CRCW-алгоритм для поиска максимального элемента в массиве размера га со временем работы 0(1), использующий 0(га1+е) процессоров.

30.2-7*. Опишите алгоритм для CRCW-машины с приоритетами, позволяющий слить два отсортированных массива за время 0(1). Объясните, как с помощью этого алгоритма отсортировать массив за время О (lgra). Является ли полученный алгоритм сортировки эффективным по затратам?

30.2-8. Объясните, как смоделировать одновременное чтение CRCW-машины с р процессорами на EREW-машине за время O(lgp) (пропущенная часть доказательства теоремы 30-1).

30.2-9. Объясните, как с помощью EREW-машины смоделировать CRCW-машину с записью комбинации значений. Для р процессоров время работы должно увеличиться не более чем в O(lgp) раз. (Указание: используйте параллельное вычисление префиксов).



[стр.Начало] [стр.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]