[#] Ускоряем векторизацию и обращения к памяти в DL_MESO: примеры оптимизации с Vectorization Advisor на большом проекте
habrabot(difrex,1) — All
2015-10-01 19:30:02


Мы уже писали [про Vectorization Advisor][1] и примеры его применения [на простых сэмплах][2]. Сегодня поделимся информацией том, как инженеры Intel совместно с исследователями из STFC Daresbury Laboratory в Великобритании оптимизировали пакет DL\_MESO. ![][3] [DL\_MESO][4] – научный пакет для симуляции конденсированных сред на мезоскопическом уровне (да простят меня химики и физики, если не совсем корректно перевёл). Пакет разработан в лаборатории Дарсбери и широко применяется как в исследовательском сообществе, так и в индустрии (компаниями Unilever, Syngenta, Infineum). С помощью этого ПО ищутся оптимальные формулы для шампуней, удобрений и топливных присадок. Этот процесс называют “Computer Aided Formulation” (CAF) – я перевёл как «САПР в области разработки химических формул». Симуляция CAF – очень ресурсоёмкие вычисления, поэтому разработчики были сразу заинтересованы в максимально производительном дизайне. И DL\_MESO был выбран одним из совместных проектов в “Intel Parallel Computing Center” (IPCC) между Intel и Hartree. Разработчики DL\_MESO хотели воспользоваться аппаратными возможностями векторного параллелизма, ведь грядущие технологии вроде AVX-512 потенциально могут сделать код в 8 раз быстрее на числах с двойной точностью (по сравнению с не векторизованным кодом). В этом посте мы расскажем, как учёные из Дарсбери использовали Vectorization Advisor для анализа кода Lattice Boltzmann Equation в DL\_MESO, какие конкретно проблемы они нашли, и как исправили свой код, чтобы разогнать его в 2.5 раза. [Читать дальше →][5]

[1]: http://habrahabr.ru/company/intel/blog/255731/
[2]: http://habrahabr.ru/company/intel/blog/257309/
[3]: https://habrastorage.org/files/e72/343/cf4/e72343cf40df43378e0b666b41d56d39.png
[4]: http://www.scd.stfc.ac.uk/40694.aspx
[5]: http://habrahabr.ru/post/266685/#habracut