Question

I would like to invest in a build server to decrease the time of g++ compilation. Since the sources are parallelizable, our idea is a many-core system. (32-48-64 cores)

My question is that what type of cpu operations are used during the compilation process? (new AMD cpu's have only 1 floating point unit for 2 cores)

Usually CPUs are benchmarked with a lot of software, but I cannot find any website where CPUs are tested for compiling. Which types of software works similarily to a g++ compiler? (x264 coding, compressing, encrypting?)

So the basic question is what are the most important parameters of a processor when it would be used exclusively for compiling code?

Thanks.

Was it helpful?

Solution

Compilers use mostly memory load/store operations and integer operations. They do not use floating point or SIMD at all (except potentially for load/store).

Compiling software usually forms an own class of benchmark, and a hard one. Processor manufacturers do not like these benchmarks as it is usually a hard one to optimize for.

The dominating factor is the memory bandwidth, not the clock frequency. Of course it all plays together. But you want wide access to memory, you want big caches on all levels. You do not want 10% more clock speed and half the cache size for example.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top