34

Does Ubuntu make use of multicore CPUs (as Windows 7 is said to do)?

In other words, is it multitasking optimized so that users will take benefit of 4+ core processors?

Kazark
  • 698
Paul
  • 924
  • 8
    The word "optimized" makes no or little sense in this case. Linux kernel supports multicore CPUs, therefore Ubuntu does as well. The "optimization" is given by the quality level of this "support". – gd1 Nov 25 '11 at 17:27
  • 2
    If you want the most performance, you might want to run the 64-bit version of Ubuntu which may sometime be faster in some tasks. – Anonymous Nov 25 '11 at 18:35
  • @Anonymous Wouldn't this be because it can utilise more of the RAM? 32 bit can only use so many GB of RAM (including all video cards, etc.) but needs special CPUs and operating systems. – Anonymous Penguin Apr 01 '13 at 23:50

4 Answers4

46

Yes, Ubuntu is optimized for multicore CPUs and has been for many years.

Some background:

"Version 2.0 (of the Linux kernel) was released 9 June 1996. There were 41 releases in the series. The major feature of 2.0 was SMP support (that is, symmetric multi processing in a single system) and support for more types of processors."

Bruno Pereira
  • 73,643
imbaer
  • 2,921
  • 4
    Basically Linux had SMP before the Abacus. It even has SSMP2 support but we will never know what that is until technology catches up with Linux. – Luis Alvarado Nov 25 '11 at 17:45
  • Of course better than windows! ;) – Paul Nov 25 '11 at 19:46
  • 2
    @Michael K, for the record, the Windows NT kernel has had good SMP support for a really long time. Whether the applications are smart enough to properly take advantage of multiple processors or cores is another matter entirely. – Mircea Chirea Jan 08 '12 at 16:28
26

Ubuntu is an operating system, a Linux distribution. A operating system consists of several software components such as a kernel, libraries, services/daemons, applications, etc.

Ubuntu uses the Linux kernel which makes use of symmetric multiprocessing (SMP) and multiple cores. It scales very well from low-end single-cpu single-core systems to high-end supercomputer clusters with thousands of multi-core CPUs.

Ubuntu ships with hundreds of libraries, some of which are multi-threaded and thread-safe, some of which are not. In some cases it makes sense for them to be multi-threaded, in others it is not applicable, generally possible or does not make much sense.

Ubuntu ships with hundreds of applications, some are coded to make use of multi-core CPUs, some are not. In some cases it does make sense to code the application as such, in other cases its not possible. Not all applications that could or should make use of multiple cores do so.

Example it makes sense for a game to use multi-core for graphics, audio, network, physics, etc. But it does not make sense for a calculator, screenshot tool, suduko, or menu editor to be multi-core aware.

Anonymous
  • 11,699
10

Ubuntu's kernel supports multiple CPU for a long time now, does not really mater if its multi-core or multiples CPUs in one system, they will be handled perfectly.

One thing you have to be aware of though, just because a system has support for several CPUs/cores and those are present in a system it does not mean your applications will automatically run faster. You get told the opposite a lot now a days, its a marketing thing.

For an application to take advantage of several CPUs/cores at the same time it needs to be built to share the process load over those CPUs/cores.

Ie: lets say you are running something as simple as wordpad in Windows and you are opening a huge text file with it, the loading time will be the same either you have 1 CPU or 1 zillion CPUs (for CPUs with same bus speed and similar architecture ofc).

The same goes with Linux Kernel and the Ubuntu distro, if an application is build for a single thread then there is nothing more CPUs will do.

One thing that the operative systems are doing now a days to optimize applications load over several CPUs/cores is the ability to run a process on a core that is not so loaded as the other are, thus balancing the load and making sure your multiple cores utilization is optimal. Tough in practice, the utilization of that technique only brings small speed improvements.

If you really want to see your cores shine you need to be doing heavy CPU utilization with programs that support symmetric multiprocessing, like video editing, etc.

Bruno Pereira
  • 73,643
1

Yes, it works perfectly for me and I have multiple processors and hyper-threading, which I forgot what that means but I'm pretty sure it means something about that each processor can execute multiple threads, which combined with the fact that each processor has 2 cores, would seem to be a problem. The only problem I have encountered so far is that programs on ubuntu tend to freeze it up. I made that happen less often by decreasing the swappiness since I have 6GB of RAM.

  • The comment you make about programs hanging might be better placed in a question about that. If you can't find an appropriate questions about hanging programs you can ask it yourself and then answer it--that's perfectly alright at askubuntu. I'm not suggesting that you remove the comments here--just that you share the knowledge you've learned somewhere where it might be more easily found. – John S Gruber Aug 10 '12 at 17:40