4 ms·
Is this the same thing as with Visual Studio compiling 12 independent projects using 12 threads each? Does the kernel compile with unlimited jobs keep the numbe
by AaronFriel 13y ago
Is this the same thing as with Visual Studio compiling 12 independent projects using 12 threads each? Does the kernel compile with unlimited jobs keep the number of concurrently running jobs below the processor limit, or are additional jobs in any way blocked on cheap primitives, such as waiting for previous jobs with a mutex?
The issue here alone is that he was trying to compile 12 projects simultaneously each with every logical processor he has. There might be some slack in the system, but is each project 92% wait time?
- herge 13y ago> Does the kernel compile with unlimited jobs keep the number of concurrently running jobs below the processor limit, or are additional jobs in any way blocked on cheap primitives, such as waiting for previous jobs with a mutex? How do you think threads were implemented by the OS back when we all had one processor with one core?
- AaronFriel 13y agoI don't understand your question. I'm asking if the Linux kernel compile with unlimited jobs oversubscribes compute resources in the same way that compiling 12 independent projects does.
- brianpgordon 13y agoHe's asking whether the number of jobs is artificially limited to the number of processors, not what happens when the number of jobs is greater than the number of processors.
- pwg 13y agoI believe the only limiter on a 'make -j' is how quickly make can scan directories, stat() the files, and fork() additional compiler instances.
- Danieru 13y agoThe linux kernel uses a make based build system. When you kickoff a unlimited parallel build with `make -j` you get one gcc process per .c file. As you can imagine this over subscribes the CPU by little bit.