I realize that by asking this question I have already labeled myself as “unprepared” for high-performance workstations, but whatever, you have to start somewhere!
I would like to know how different linux distributions handle multiple cores and multi-threading, so as to help determine which might be best for an HPC workstation.
By default I know that Linux takes advantage of several cores, but does anybody have reference links to how it handles multi-cores (in English, i.e. I don’t want to read the source code 😉 ) as well as performance comparison charts (re: core utilization over time, thread distribution, compile times, etc). I understand that applications must also be optimized for multi-core support, but the first step is getting the most out of the operating system.
Or am I wrong, and is Linux inherently the same in this regards, no matter the distribution, and instead performance will be all application based?
How do different Linux distributions handle multiple cores and multi-threading?
The scheduling of processes is really up to the kernel. See a, b, c and d. Yes, there’s sourcecode in some of those links. But it’s not really avoidable when dealing with something this low-level.
There will be minor differences between distributions. Ubuntu might use XYZ scheduler and Fedora might use ABC scheduler and that results in a X% improvement. But the bigger problem is application support. You can have a single-core CPU or a 12-core CPU, but if the application is single-threaded, you’re going to end up with the same performance. In this situation, I would use whatever I felt more comfortable using in the long run.
Linux distributions have been multi-core and multi-thread in the kernel via SMP for years now.
It is not the distribution that is important in this case, but the kernel. And since all major distributions are today based on the same kernel, just take your pick.
This website should help decide among Linux distributions : Comparison of Linux distributions.
Though most distros use the stock kernel there are a couple that have differences that affect specific computing requirements. Redhat (http://www.redhat.com/mrg/realtime/) and SUSE (http://www.novell.com/products/realtime/) both have realtime kernels which affect how threads are scheduled.