На процессорах архитектуры х86 разница производительности существует из-за разных реализаций микроархитектуры процессора и различных тех.процессов. Это, при прочих равных, единственное и основное, что влияет на скорость выполнения программы, в общем виде.
В частности, процессоры могут отличаться:
- тактовой частотой;
- объемом кэш-памяти;
- уровнями кэш-памяти;
- реализацией части обеспечивающий out-of-order execution;
- количеством исполнительных модулей ядра (умножители, сумматоры, делители, сдвиги и т.д. и т.п.);
- реализацией протокола поддержания когерентности кэш-памяти с оперативной памятью;
- реализацией части ответственной за разбор команд х86 на микрооперации;
- различными свойствами элементной базы.
Все это влияет на скорость выполнения программы.
При прочих равных, разница в тактовой частоте пропорциональна скорости выполнения программы.
При прочих равных, разница в объеме кэш-памяти на одном уровне может спровоцировать обращение к кэш-памяти вышестоящего уровня или к оперативной памяти - что добавляет временную задержку к работе.
При прочих равных, отсутствие уровня кэш-памяти (например, нет L3 cache) влечет обращение к памяти вверх по иерархии - что добавляет временную задержку к работе (обращение в ОЗУ дольше, чем в L3 cache).
При прочих равных, out-of-order execution - скрытая от программиста часть процессора, реализуемая в различных вариантах, влияет непосредственно на поток выполнения микроопераций, что дает разницу во времени исполнения программы.
При прочих равных, количества исполнительных модулей в ядре может не хватать для более быстрых вычислений.
Также, вы можете использовать процессоры, работающие с разными поколениями оперативной памяти, с разным бустом частоты и т.д.
И это только процессор.
Также, компилятор мог выполнить оптимизации для одного процессора, которые не могут быть выполнены для другого процессора.
Также, вы могли написать плохо оптимизированную программу.
Корректное сравнение производительности возможно только при соблюдение одинаковых параметр вычислительной системы.
В соответствие со сказанным возникает очень много вопросов как к коду измеряемой программы, так и к вычислительных системах.