Howdy stranger! Need to login or register? C’mon...

Multi-threaded software explained

Gaming

Games capable of Multi-threading will benefit hugely from being able to use this extra power. Games in their very nature have need different items to be processed at one time, such as physics, rendering, computer AI and sound. Now, the need to process these can be negated slightly using specialised hardware, such as a Sound Card, Graphics Card or even the AGEIA PhysX (with Physics). But still, the processor has to have some input into these, and having multiple cores at your disposal will certainly be helpful, especially if the game is coded in such a way to make full use. Examples of games which fit into this category would be :

Unfortunately a complete list does not exist, although this would be incredibly useful, especially in terms of gaming, as new games are being released all the time, and it hard to keep track of which are optimised.

Video Encoding

Video encoding makes use of this technological advancement during live encoding. Multi-core processors don’t naturally make the work of digitally encoding video go faster, but their ability to allocate the job of processing each thread of a multi-threaded application to individual processors/cores does, so speeding up a typically lengthly process, which if working with video, could be extremely beneficial and productive. In theory, it also allows higher quality video and compression to be created in a similar time period. These are becoming particularly relevant and critical considering the recent expansion in user generated media and streaming such as YouTube and digital services offered by popular television broadcasters. Exampled of multi-threaded Video-Encoders :

With the growing interest in High Definition, multi-threading will come to the forefront as providers search for ways of distributing this effectively. Consumer encoding software is also catching up, with programs such as DivX and Xvid, both currently developing optimisations for SMP (Symmetric multiprocessing), although not always first party (ELDER). MP3s also benefit from similar encoding technology.

Server Level

Servers have experienced multi-core technology for a considerably longer period than desktop computing, as can be expected due to higher budgets and performance. Multi-core systems, which can include more than the current consumer level of hardware (16-core servers are available to larger companies who rely upon them as a critical systems), can be utilised well in this environment due to many users accessing the same content. Whether this be files or applications, more raw computing power will speed up access and use, and also allow more simultaneous users. Current systems are limited by the time which they can allocate to each user who has requested an operation, yet with multi-threading, users gain more processor time, because the threads that they would typically run on have been seperated and become more dedicated, leading to this performance increase. Current implementations include :

Graphic Design

Graphic Design benefits especially from multi-threading, with some of the big names in the field already producing software that can harness this ability. Photoshop for example, can use this ability to perform actions upon multiple “tiles” (smaller units, divided for speed) at once. This again, speeds production up for workers and employees, relying heavily upon this program and similar alternatives. Photoshop is also able to spread the workload of a particularly large operation over multiple cores, allowing bigger processes to be completed quicker. This works for 3D animation too, allowing larger more complex items to be rendered, without a reduction in quality or increase in time, with an almost proportionate increase in performance compared to processors/cores. Examples of widely used software:

Distributed Computing

My favourite use has to be distributed computing. Although not necessarily a use, but more of a complement. For example, you could run a “dedicated” box running Stanford University’s Folding at Home all the time, but the beauty of it is you can run Folding at Home on the spare cores while you use just one, particularly relevant considering the use of single-core software. Folding at Home’s Multi-core Version (SMP) is only in its Beta stage, but is proving far more productive compared to running multiple instances of the single-core version.

« PreviousNext page »

View or reply via discussion forum.

9 Replies

  1. broady81
    yippie ki-yay !

    Can I please invite all of you who have read the article to leave any constructive criticism you may have regarding my work This is my first article here on Icrontic, and I would love to know any areas of improvement that I can focus on for any future writing I do. Thanks for reading and I hope you enjoyed it nonetheless

  2. lemonlime
    Author/Reviewer

    Great read, Broady. I know there are many not-so-technical people out there who still think a 3GHz dual core is a 6GHz processor and don't consider the software design required to harness the power.

  3. Thrax
    Technical Analyst

    SHAMELESS SELF PROMOTION: This thread goes well with my explanation of a quad core chip - http://icrontic.com/articles/quad_core

  4. yagga
    Very custom-like huh?

    Correct your spelling of "Stnaford." This really distracts me.

  5. broady81
    yippie ki-yay !

    I have a small admission to make - I didn't write that sentence. Keeb's added it, I presume to provide a link to our folding efforts that I had forgotten to include. I'm hoping he knows about it, and it will be corrected any other comments ?

  6. Keebler
    Snapperhead

    I have a small admission to make too... I'm not the one who edited your article It's fixed.

  7. mondi
    dot.
    By definition, it is a piece of software that is aware of more than one core/processor, and can use these to be able to simultaneously complete multiple tasks.

    This is incorrect. By definition, a multi threaded application is an application that has more than 1 thread of execution.

    A multi-core processor has more available threads

    No, a multi-core processor has more available cores. Each core can only execute a single thread at any one point in time (exception granted for superscaler cpu's). While there are limits to the number of threads that can be executed at any one time, that limit is most often imposed by the operating system.

  8. CB
    Doktor Schnabel von Rom

    Do we know that guy?

  9. GHoosdum
    unofficial dog catcher

Hey, be nice. Icrontic is full of good people, we promise.