Channels ▼
RSS

Design

Moblin 2.0 Is Multicore Ready



Moblin v2.0 for Intel Atom Processor based netbooks is already available. Developers with Linux experience will find it easy to target this new attractive platform. However, many developers have many questions related to the multicore support offered this new operating system. [Editor's Note: For more information on Moblin, see Dr. Dobb's Moblin Zone.]

Most modern Atom processors offer Hyper-Threading. I've already talked about some experiences in Downsizing Multicore Programming Skills to Take Advantage of Intel Atom. When you check the microprocessors' specifications, the manufacturer explains that the operating system and the applications have to be optimized to take advantage of Hyper-Threading. What about Moblin v2.0? Does it support multicore? Is it able to scale when more cores are available? There is already a netbook manufacturer using two Intel Atom processors, creating a multiprocessor netbook. Is Moblin v2.0 able to support this configuration?

The answer to all these questions is simple: Moblin v2.0 uses a Linux kernel. Therefore, checking the Linux kernel version, I'll be able to answer all these questions. Opening a Terminal window and typing:

uname -sr

You can get the complete kernel name and its release number.

The result will display:

Linux 2.6.30.3-4.1.moblin2-netbook

as shown in the following:

Moblin v2.0 displaying the Linux kernel name and release.

This means that we have an operating system using a Linux 2.6.30.3-4.1 kernel for Moblin v2.0. You can check all the features supported in the same release for the generic kernel in http://www.kernel.org/pub/linux/kernel/v2.6/. Nonetheless, my focus is on the multicore and Hyper-Threading support. This kernel version has full support for multicore and Hyper-Threading, therefore, you have a multiprocessor capable kernel. Moblin v2.0 scheduler can work with 2 or more logical cores. If you install Moblin v2.0 in a netbook with more than one Intel Atom processor, it will be able to take full advantage of all the available logical cores.

You can also run the following command to get the kernel:

uname -v

You can get the detailed version information.

The result will display:

#1 SMP PREEMPT Mon Jul 27 12:26:15 UTC 2009

as shown in the following picture:

Moblin v2.0 displaying the kernel's detailed version information.

It is very clear that the kernel offers SMP support. Does it recognize the underlying hardware, with Hyper-Threading enabled? It's also easy to check it.

Opening a Terminal window and typing:

lscpu

You can get the detailed information about the logical (hardware threads) and physical cores detected by Moblin v2.0.

The result will display:

You can see it in the following picture:

Moblin v2.0 displaying the information about the Intel Atom processor with its 2 logical cores (hardware threads).

This means that the CPU is running at 800 MHz instead of 1,600 MHz (1.6 GHz) because it's idle. If you run the command many times, it will show different speeds, according to the logical cores' load. In the following picture, the same command shows the CPU running at 1,600 MHz.

Moblin v2.0 displaying the information about the Intel Atom processor with its two logical cores (hardware threads) running at 1,600 MHz.

Using your parallel programming skills, you can take advantage of the two hardware threads available and achieve a better performance when targeting Moblin v2.0 running on Intel Atom processors. Don't even think about creating serial code when you have two hardware threads available. Remember, the battery life is also going to thank your efforts to take advantage of Hyper-Threading on these platforms.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video