Рассмотрим два компьютера с разными аппаратными и программными конфигурациями. При запуске одного и того же последовательного кода Навье-Стокса на каждой платформе требуется x и y время для выполнения одной итерации для компьютеров 1 и 2 соответственно. В этом случае - это разница во времени итерации между компьютером 1 и компьютером 2.
Что может повлиять на величину ? Один очевидный кандидат - это процессор, мой главный вопрос: есть ли другие факторы, которые могут влиять на в том же порядке, что и аппаратная разница между процессорами?Δ
performance
iterative-method
navier-stokes
Изопикнальное колебание
источник
источник
Ответы:
Этот список еще далеко не полный, но, надеюсь, его размер даст подсказку о масштабе возможных факторов. Я предполагаю, что вы компилируете код из исходного кода на выбранной вами платформе.
Программного обеспечения
аппаратные средства
ЦПУ
объем памяти
жесткий диск
Все это игнорирует маленькие хитрости и особенности, которые предлагают разные производители, чтобы дать своим чипам преимущество на рынке. Но самое большое в том, что многие редкие библиотеки линейной алгебры связаны с памятью. Выполнение умножения разреженной матрицы требует большого количества данных, перемещающихся без большого количества реальных провалов.
источник
-march=native
или опцию icc / ifort,-xHOST
которая будет применять оптимизации, специфичные для базовой архитектуры.Во-вторых, ваш вопрос специально исключает различия в программном обеспечении. По моему опыту, выигрыши в производительности за тщательную настройку могут быть значительными факторами, поэтому, рассматривая проблемы с оборудованием, не забывайте о проблемах с программным обеспечением. В конце концов, аппаратное обеспечение может выполнять только те инструкции, которые вы ему даете, и если вы дадите ему меньше, оно закончится раньше.
Не вдаваться в подробности, но для любой конкретной проблемы существует бесконечное количество программ, которые ее решат. Среди них некоторые занимают меньше времени, чем все остальные, и это нижняя граница. Не думайте, что какая-либо программа находится на или даже вблизи этой нижней границы, если она не была тщательно настроена.
Эта ссылка подробно объясняет неортодоксальный метод, который я использую.
источник