Here we go…

This blog is my attempt to document my exploration of some parallel programming techniques. You may also help to keep me on track with helpful comments and suggestions, after which this blog may help others follow this path.

I see three main areas of parallel programming I want to investigate, differentiated by their distance from the CPU chip and the amount of parallelism they offer:

  1. Exploiting parallelism in multicore CPUs (limited to eight cores at this time). I will use Intel’s open source Threading Building Blocks (TBB) for this part.
  2. Exploiting parallelism in off-CPU graphic processing units (GPUs) with hundreds of processing engines. Nvidia’s CUDA Toolkit will be my starting point for this part.
  3. Exploiting parallelism in “cloud computers” where thousands of computers cooperate through the Internet. Google’s MapReduce framework is the standard bearer for this but is proprietary, so the open source Hadoop or QtConcurrent may be the best alternatives. (I know the least about this area, so my plans are very fluid at this point.)

Anyway, that’s my direction right now. More posts as I proceed…

About dave_vandenbout
President of XESS Corp, a manufacturer of FPGA development boards.

4 Responses to Here we go…

  1. llpanorama says:

    Thanks for the info on TPL and Jibu. There are a growing number of libraries/frameworks for programming multicore architectures. Some of the reasons I chose TBB are:

    1. It’s open source.
    2. It’s free.
    3. There’s a commercial version that may be of interest to companies.
    4. It’s backed by Intel.
    5. It’s on version 2.0, so there’s been enough interest to keep it going.

    Of course, other frameworks can make many of these same claims, but you have to choose something, start working with it, and then see what happens.

    I don’t have a gauge for how much interest there is in multicore programming in the programmer community. Perhaps the programmers are not willing to put in the effort because the majority of the computers running their applications are still single core, so the effort to recast their algorithms for parallel operations would be wasted. Or maybe they are already reaping most of the advantages of multicore because the OS is distributing multiple applications over the cores so each application gets a bigger slice of a single core.

  2. Francois Afiche says:

    An interesting subject..
    As I see it a lot of movement is under way with regard to programming multi-core machines. Intel has TBB, Microsoft will soon have TPL (Task Parallel Library) and Java 7 will also have some kind of Fork/Join framework integrated.
    Another library I have just come across is this one: http:://www.axon7.com
    It is called Jibu and apparently it is available on C++. Java, .NET and Delphi – looks interesting even though I though Delphi was dead…

    What puzzles me is how little interest there seems to be in the programming community about programming for Multi-core. I wonder why? Intel and AMD has clearly stated that multi-core is the way of the future..
    Does anyone have any idea how many programmers have bought TBB or downloaded it – that might give an indication of the level of interest out there..

    Best regards
    Francois

  3. llpanorama says:

    Thanks for the links and the contact information! I expect most of my questions for the first few months will be answered in the existing tutorials and forum posts. Hopefully I will get to the point where I can break TBB in new and interesting ways.

  4. Sounds like an exciting blog. I look forward to following your progress!

    If you have TBB questions, consider posting them on the TBB forum, or visiting us on the #tbb IRC channel on FreeNode.net. There are also TBB mailing lists (go to http://sourceforge.net/mail/?group_id=200923).

    BTW, I’m the TBB open source community manager. Feel free to contact me directly any time you’d like.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: