%A Rybakov, Alexey Anatolyevich %D 2022 %T Векторизация программного кода, содержащего маловероятные регионы, в задачах вычислительной геометрии %K %X Повышение производительности приложений является важной практической задачей для проведения суперкомпьютерных расчетов. Наряду с распараллеливанием вычислений между узлами кластера (например, средствами MPI), а также с многопоточным программированием (например, в помощью OpenMP) используется векторизация программного кода, обеспечивающая параллелизм на уровне отдельных инструкций. Набор векторных инструкций AVX-512 микропроцессорной архитектуры Intel, обладает рядом уникальных возможностей, с помощью которых можно векторизовать программный код из очень широкого спектра задач. Использование специальных масочных регистров позволяет эффективно векторизовать код, содержащий условные операторы, а использование профильной информации о вероятности выполнения операций в исходной коде позволяет выполнять преобразования кода, приводящие к еще более эффективному применению автоматической векторизации. В работе рассматривается преобразование расщепления плоского цикла по условию, когда известно, что данное условие выполняется с высокой вероятностью. Рассматриваются практические задачи, в которых присутствует данный контекст. Для этих задач выделены условия для расщепления циклов для достижения эффективной векторизации. Описанные преобразования были выполнены, а эффективность результирующего кода проверена запусками на микропроцессорах семейств Intel Xeon Cascade Lake и Intel Xeon Phi Knights Landing, представлены результаты выполнения запусков. %U http://sitito.cs.msu.ru/index.php/SITITO/article/view/826 %J Современные информационные технологии и ИТ-образование %0 Journal Article %R 10.25559/SITITO.18.202201.28-38 %P 28-38%V 18 %N 1 %@ 2411-1473 %8 2022-03-31