1

Я хотел бы инвестировать в сервер сборки, чтобы уменьшить время компиляции g ++. Поскольку источники параллельны, наша идея - многоядерная система. (32-48-64 ядра)Операции CPU во время компиляции g ++

Вопрос в том, какие типы операций процессора используются во время процесса компиляции? (новые процессоры AMD имеют только 1 модуль с плавающей запятой для двух ядер)

Обычно процессоры сравниваются с большим количеством программного обеспечения, но я не могу найти веб-сайт, на котором тестируются процессоры для компиляции. Какие типы программного обеспечения работают аналогично компилятору g ++? (x264 кодирование, сжатие, шифрование?)

Итак, основной вопрос - это наиболее важные параметры процессора, когда он будет использоваться исключительно для компиляции кода?

Спасибо.

+0

Компиляторы - это в основном целые задачи с большим количеством разветвлений и поиска символов/случайного доступа. Таким образом, это существенно отличается от кодирования/сжатия/шифрования и т. Д. Таким образом, вы, вероятно, захотите что-то с сильным целым числом, коротким контуром процессора и, возможно, быстрой памятью. Плавающая точка и SIMD не важны вообще. Тем не менее, я не совсем уверен, так как я только задумываюсь. – Mysticial

+0

Довольно многое, что говорит Мистик. Короткий трубопровод, по крайней мере средний объем кеша. Являются ли ваши источники действительно 64-кратными параллелизуемыми? –

+0

Благодарим вас за ответы. Это программное обеспечение состоит из многих модулей в четко определенной иерархии. Кодовая база составляет около 1,5 млн. Строк. Нет, мы скомпилируем его в 32 потоках. Таким образом, могут быть поданы и 64 потока, или независимые модули могут быть распараллелены по потокам 16-32 в vservers. – Senki1988

ответ

1

Составители используют преимущественно операции загрузки/хранения памяти и операции с целыми числами. Они не используют плавающие или SIMD вообще (кроме потенциально для загрузки/хранения).

Компиляционное программное обеспечение обычно формирует собственный класс тестов и сложный. Производителям процессоров не нравятся эти тесты, поскольку их обычно трудно оптимизировать.

Доминирующим фактором является пропускная способность памяти, а не тактовая частота. Конечно, все играет вместе. Но вам нужен широкий доступ к памяти, вам нужны большие кеши на всех уровнях. Например, вы не хотите на 10% больше тактовой частоты и половину размера кеша.