OpenMP на 32bit Linux (RH7.1) 0
0,2
0,4
0,6
0,8
1
1,2
1,4
1,6
1,8
50
100
200
300
350
400
500
700
900 1200 1500 1700 200
Размер задачи Коэфф -т ускорени я
Рис. 2. Ускорение матричного умножения при использовании OpenMP
(Linux)
Результаты экспериментов также показали, что, по всей видимо-
сти, наличие модифицированного процессора Pentium III (Xeon) влияет
на производительность OpenMP при перемножении матриц. Коэффи-
циент распараллеливания на системах, построенных на базе этих про-
цессоров, несколько ниже, чем на аналогичных системах с немодифи-
цированными процессорами. Возможной причиной расхождения ре-
зультатов является наличие новых технологий, реализованных в
Pentium III Xeon, таких как микроархитектура NetBurst™, включающая
в себя механизм улучшенного динамического исполнения команд
(Advanced Dynamic Execution). [2]
Одним из важнейших факторов, влияющих на производительность
данного алгоритма, является частота обращений к памяти и кэшу. Если
относительно недорогую в вычислительном плане операцию умноже-
ния элементов заменить более трудоемкой операцией перемножения
синусов и/или косинусов этих же элементов, наличие кэш-памяти бу-
дет оказывать гораздо меньшее влияние на скорость выполнения. Как
видно из рис.3, ускорение параллельной версии программы в этом
случае приближается к теоретическому максимуму и в среднем со-
ставляет 1.93–1.96 на двухпроцессорной системе.