шайтан-код 2 14.12.11 16:00 // оригинал 30-40 кратный рост производительности, полученный после перехода на ACML, - это реально до фига. Если на пальцах - это как пересесть на современный компьютер с машины 10-летней давности (в флопсах примерно так и будет - PIII (1999) - примерно пара гигафлопс, нынешние i7 - в районе 50, разница даже поменьше). И это "грязный" выигрыш, с учетом затрат на передачу данных и т.п. Когда расчет вместо минуты идет пару секунд, это здорово раздвигает горизонты и дает возможность взяться за задачи, о которых раньше и не думали. А заодно и резко продлевает жизнь старого расчетного модуля, от которого думали уходить на полностью переписанный, с распределенной архитектурой - но раз простая замена одной функции дала такой скачок, задача полного переписывания перешла из категории практической/срочной в академическую/перспективную.
Но дальше случился удар в спину от интеловского компилятора. Дело в том, что математическая часть ACML написана на Фортране, и под Win32 есть две сборки - в PGI Fortran и Intel Fortran. Поначалу мы рефлекторно взяли интеловский вариант, но в той версии, которой собиралась ACML 4.4.0, как выяснилось, был баг, приводящий к зависанию при загрузке библиотеки на некоторых сочетаниях железа и ОС. Разумеется, у двух заказчиков обнаружилось именно такое сочетание, и мы убили неделю в поисках причины (у нас-то это везде шло).
Приятно, когда ошибка не у тебя, а в компиляторе, но пришлось выбирать - брать версию 4.3.0, собранную предыдущим интелом, или 4.4.0, собранную PGI. До этого до честных бенчмарков руки не доходили, все и так были в восторге от полученного скачка. Стали мерять, и тут лично моя сложившаяся картина мира несколько поколебалась.