Posts tagged ‘Multi-threading’

A Simple Thread Barrier Implementation

Sometimes a group of concurrently running threads may need to rendezvous at a certain point in time before they can further proceed. This situation commonly arises in areas like event simulation, where the events are synchronized via a clock event (see illustration below): Continue reading ‘A Simple Thread Barrier Implementation’ »

Poor Man’s Parallel Task Dispatcher

Even though multi-core processors are almost ubiquitous nowadays, applications are slow to catch up. Of course, one could always re-write the applications in order to take the full advantages in a multi-core environment. But it is not an easy undertaking. Continue reading ‘Poor Man’s Parallel Task Dispatcher’ »

Interfacing IPP with Magick++

Intel’s Integrated Performance Primitives (IPP) is a low level C++ library. It provides routines that are highly optimized on Intel processors. I recently started using it because its vast speed advantage in signal and image processing applications. Continue reading ‘Interfacing IPP with Magick++’ »

TBB Mandelbrot Set

In an earlier post, I created a simple prime finding program using Intel’s TBB (Thread Building Block). The main benefit of using TBB is that threading and thread synchronization mechanism are abstracted away within the TBB library so we do not need to deal with threads explicitly. Also, TBB is optimized for performance and scales nicely as the number of processing unit increases. Continue reading ‘TBB Mandelbrot Set’ »

A Simple TBB Program: TBB Prime

I have been playing around with Intel’s Threading Building Block for a while and have started to really appreciate its simplicity and elegance: Instead of thinking in threads and thread synchronizations, one can just simply concentrate on the problem on the hand. Continue reading ‘A Simple TBB Program: TBB Prime’ »

Hyper-Threading and Dual Core Performance Comparison for Computational Intensive Applications – Update

In a post (Hyper-Threading and Dual Core Performance Comparison for Computational Intensive Applications) I wrote at the end of last year, I compared multi-threaded scientific application performance of a Pentium 4 processor with hyper-threading enabled and a Pentium D processor, and concluded that for multi-threaded scientific applications, hyper-threaded processor helped little in terms of application performance. Continue reading ‘Hyper-Threading and Dual Core Performance Comparison for Computational Intensive Applications – Update’ »

Hyper-Threading and Dual Core Performance Comparison for Computational Intensive Applications

Download MPThreadBench.zip

There is no doubt that Hyper-Threading can, under certain circumstances, boost application performance. Continue reading ‘Hyper-Threading and Dual Core Performance Comparison for Computational Intensive Applications’ »

Thread Safety Made Easier Under Visual Studio 2005

Most of us know that controls in Windows forms are bound to a specific thread and are not thread safe, and thus UI controls created or referenced on non-UI thread must be marshaled back to the UI thread by using one of the Invoke methods. Continue reading ‘Thread Safety Made Easier Under Visual Studio 2005’ »