Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






Награды сайта
Награды сайта

"Е14". Сумма массива: модель с распределенной памятью без копирования массива, схема A2S0

Получив плохой результат для алгоритма A2S2, я не мог не провести следующий эксперимент. Мне захотелось, не меняя в алгоритме ничего другого, удалить копирование массива в память PPU. Благо сделать это оказалось совсем просто: достаточно присоединить к каждой программе для PPU ту 1/4 массива, которую она должна обрабатывать.

Таким образом, с программой A2S2 было проделано следующее.

  1. Из начала блока 1 для CPU были удалены все команды с адресами 0-33. Оставшаяся часть программы, а также блок 0 для всех 4 PPU были оставлены без изменения.
  2. Блок 3 был аккуратно разбит на 4 равные части по 15 чисел, которые были оформлены в качестве блоков 3-6, загружаемых в разные PPU с адреса 1A.

Таким образом, при загрузке в память PPU1 попали блоки 0 и 3, в PPU2 - 0 и 4, а в PPU4 - блоки 0 и 6. (Блок 1, как и раньше, остался в CPU.) В итоге к каждой программе оказалась заранее присоединенной та 1/4 массива, которую она обрабатывает, и необходимость в копировании отпала.

Новой схеме вычислений было присвоено обозначение A2S0. Текст программы здесь не приводится, но его можно найти в дистрибутиве "Е14".

Результаты. Сопоставим результаты алгоритмов для значений параметров N=60 и P=4 (CPU не суммирует, алгоритм P4). A2S2, как мы видели, выполняется за время 335 команд. А "урезанному" алгоритму A2S0 достаточно времени всего 92 команд, т.е. он оказывается быстрее примерно в 3,6 раза! Иначе говоря, четырехкратный выигрыш от параллельной обработки четвертей массива практически полностью(!) "съедался" предварительным копированием данных.

Итоговое ускорение для алгоритма A2S0 оказалось S = 245/92, т.е. примерно 2,7 раза. Это заметно лучше любого из алгоритмов, "честно" копирующих данные в ОЗУ PPU.

Конечно, все понимают, что обмен между процессорами замедляет решение задачи. Но "масштаб бедствия" все же впечатляет...


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com