Высокопроизводительные вычисления на кластерах. Беликов Д.А - 25 стр.

UptoLike

25
зования циклов, что с большим или меньшим успехом делают
почти все компиляторы;
оптимизацией вычислений с плавающей точкой путем мак-
симального использования команд, реализованных на аппа-
ратном уровне;
межпроцедурной оптимизацией, т.е. глобальной оптимизаци-
ей всей программы в отличие от обычной оптимизации, кото-
рая затрагивает только код конкретных функций;
оптимизацией на базе профилей, т.е. возможностью прогнать
программу в тестовом режиме, собрать данные о времени
прохождения тех или иных фрагментов кода внутри часто
вызываемых функций, а затем использовать эти данные для
оптимизации;
поддержкой системы команд SSE в процессорах Pentium III;
автоматической векторизацией, т.е. использованием команд
SSE и SSE2, вставляемых автоматически компилятором;
поддержкой OpenMP для программирования на SMP-
системах;
предвыборкой данных – использованием команд предвари-
тельной загрузки из памяти в кэш данных, которые понадо-
бятся через некоторое время;
«диспетчеризацией» кода для различных процессоров, т.е.
возможностью генерации кода для различных процессоров в
одном исполняемом файле, что позволяет использовать пре-
имущества новейших процессоров для достижения на них
наибольшей производительности.
Согласно результатам выполнения тестов SPEC CPU2000, опуб-
ликованным на сервере http://www.ixbt.com, компиляторы Intel
версии 6.0 практически везде оказались лучше по сравнению с ком-
пиляторами gcc версий 2.95.3, 2.96 и 3.1 и PGI версии 4.0.2. Эти
тесты проводились в 2002 г. на компьютере с процессором Pentium
4/1.7 ГГц и ОС RedHat Linux 7.3.
Согласно результатам тестов, проведенных компанией
Polyhedron, компилятор Intel Fortran версии 7.0 почти везде ока-
зался лучше по сравнению с другими компиляторами Fortran 77
для Linux (Absoft, GNU, Lahey, NAG, NAS, PGI). Только в некото-
рых тестах компилятор Intel незначительно проигрывает компиля-