Multi-Threaded Programming Without the Pain

Gigahertz are out and cores are in. Programmers must begin to develop applications that take full advantage of the increasing number of cores present in modern computers. However, multi-threaded development has been notoriously hard to do. Researcher Stefanus Du Toit discusses and demonstrates RapidMind, a software system he co-authored, that takes the pain out of multi-threaded programming in C++. For his demo he created a program on the PlayStation 3 representing thousands of chickens, each independently tracked by a single processing core. The talk itself is interesting but the demo is golden.

Video: DivX | XviD | MPG | OGG | WMV
Download Torrent: DivX | XviD | MPG | OGG | WMV
News source: Waterloo Computer Science Club (via Slashdot)

Report a problem with article
Previous Story

Trojan Roaming Skype Network

Next Story

Recuva 1.01.043 Beta

15 Comments

Commenting is disabled on this article.

IMHO multi-threading should be used with caution. As a user, more than one core enables me to more efficiently multitask. Part of that advantage goes away when an application decides to use all my cores. It is acceptable in some cases, such as for background tasks and full screen games. Windows Media Player 11 claims to be using 28 threads.

But the example is quite pointless. The difficulty in multithread is not to run separated/parallel process but run one process that take advantage (if any) of multithread or be able to run in a solo core.

Multi-threaded applications in LabVIEW is extremely easy to do. Of corse that is more of an engineering, get it up and running app than a create a commercial application app.

Can anyone help..?

I downloaded the Xvid version of the video and neither WMP or Media Player Classic can play it.

I ran the video via GSpot and it tells me...

DirectShow partially succeeded to play file. The actual text of the error or warning is:

0x00040242: VFW_S_PARTIAL_RENDER - Some of the streams in this movie are in an unsupported format.

The following combination of filters were used:

{D:sdt-xvid.avi} (Audio Source)
{AVI Splitter} (Audio Splitter)
{MPEG Layer-3 Decoder} (Audio Decoder)
{Default DirectSound Device} (Audio Renderer)

I have installed the FULL pack of http://www.neowin.net/forum/index.php?act=announce&f=12&id=11 codec pack and Gspot lists 3 compitable video and 3 compatible audio codecs..

Is anyone else having a problem...?

EDIT - It now works :)

I removed the FULL http://www.neowin.net/forum/index.php?act=announce&f=12&id=11 codec pack and then installed the MEGA http://www.neowin.net/forum/index.php?act=announce&f=12&id=11 packand did a 'lots of stuff' install and all is well

First things first: Again we have a news post with these cool multi-format choises for the video, and again they don't work. Fix that please.

Second things second: I could not finish watching the video because all I could focus on was how I wanted to jump into the screen and physically center the camera so I could see the whole presentation and hold that fidgety guy still. Honestly, he needs to cut down on the energy drinks.

Thirdly: Awesome demo with the chickens. I love chickens.

goatsniffer said,
First things first: Again we have a news post with these cool multi-format choises for the video, and again they don't work. Fix that please.

Second things second: I could not finish watching the video because all I could focus on was how I wanted to jump into the screen and physically center the camera so I could see the whole presentation and hold that fidgety guy still. Honestly, he needs to cut down on the energy drinks.

Thirdly: Awesome demo with the chickens. I love chickens.


The video does work. The problem is on your end. I suggest you go look up the word: "Codec"

Hmm. I am not impressed. There nothing here which I cannot be achieved with OpenMP or Co-ordination Concurrency Runtime or several other libraries.
Certain algorithms lend themselves very well to parallelization for example quicksort, grayscaling images, graph search, LU matrix reduction etc.

At work I process terabytes of data using parallel programming techniques; my main problem is not the CPU performance -- its the disk.
If someone figures out a way to create big capacity disk drives which can keep up with the CPU that will be 'golden'.

This is pretty cool, but I wish that these breakthroughs were presented better. I mean he's better than me. But you would of thought he'd have a pointer or something, he moves so much.