Blog Archives

February, 2009

Open Sourcer Explores Intel MulticoreTools on Windows, Barely Lives to Tell Tale

An inveterate open-sourcer, I'm making an uneasy peace with Microsoft Windows for the purpose of exploring the tools Intel has made available for parallelization of applications running on multicore platforms. I have used and verbally abused Windows in every release since Windows 2.1. Thus I am no stranger, but Windows has not been a C/C++ development environment for me since the 1990's, though I test and run my Java stuff on Windows.

So, d'oh, of course I'm looking for the simplest way to do this ... [article updated at end]

When Seeing Is Believing

So you aren't ready to buy into this multicore and parallelization stuff until you're able to see its benefits with your own eyes? If that's the case, then take a couple of minutes to watch this pair of YouTube videos that Gaston Hillar has prepared as part of his book C# 2008 and 2005 Threaded Programming: Beginner's Guide.

Security Reminder, or Who's That Looking Over Your Shoulder?

It doesn't matter which coffee shop -- Henry's, Z's, or the Bourgeois Pig -- I end up at, it's always the same ever since free WiFi came on the scene. There are more laptops than coffee mugs, and never enough places to sit. But I'm as bad as the rest. What with free wireless Internet access and a cell phone, well, I haven't been in the office for year or so now, and even the concept of a home-office is becoming more remote.

Larrabee: Gamer or Game Changer?

Wouldn't you know it. Just as we're starting to wrap our minds around the idea of parallel programming and multicore processors, Intel ups the ante with Larrabee, a many-core architecture that has the potential to change the game. This doesn't mean that the concepts of multithreading and parallel programming can be ignored. Quite the contrary. If anything, thinking parallel and having a firm grasp on multithreading will be more critical than ever -- especially if you intend on tackling Larrabee.

Going Parallel: Part 1: Doing two things at once - impossible!

Maybe it's just me, but I have to confess I'm no good at doing more than one thing at once. For example, I'm at the breakfast table reading the paper and eating, suddenly my wife comments "did you hear that? ...". Usually I haven't. My typical reply is "no - I was reading the paper".

How Many Processors Do You Need For a Snipe Hunt?

Snipe hunts, fool's gold, solutions to AI-complete problems, I've been victimized by them all. Although I have gotten over the snipe hunts and fool's gold, I haven't been able to quite shake the AI-complete part yet. Why can't I just throw more processors at the problem? Why can't the fastest beat the hardest? Oops, let me regress for a moment. I said I would have to stir up what I meant by AI-complete, so first let me do so.

Cloud Computing, Coming Down the Stretch?

Just because the term "cloud computing" has been ridden hard and put away wet doesn't mean there isn't any "there" there. Hype aside, cloud computing appears to be for real. The promise that cloud computing offers developers with great ideas but little cash execute those ideas is reason enough to hop on the bandwagon.

It's All About Search ...

It's been "double the pleasure double the fun" on the back end for some time now. 4-way, 8-way, 16-way server processor configurations are pretty run-of-the-mill these days. All that server stuff has been multithreaded, multiprogrammed and multiprocessed, and at this point it's pretty much a done deal right? By server stuff I mean the database app, the web server, the e-mail server, the E-bay server, the World-of-Warcraft server, etc. Sure the programming is a little dicey. The debugging and testing is a little unpredictable and treacherous at times but we manage to pull it off. The server stuff runs just fast enough so that the user doesn't give up hope and continues to keep coming back. Mission accomplished right?

Multicore Workshop: Who Said the Free Lunch Is Over?

Every now and then one of those don't-miss workshops pops up. Alas, I usually don't make it to them because the boss and I have a different definition of what "don't miss" means. But we see eye-to-eye on the upcoming Workshop on Directions in Multicore Programming Education to be held on March 8, 2009, in Washington DC. When I told him about it, the boss said "Sounds great. What time does your bus leave?" Hmmm, California to DC on a Greyhound bus for an 8-hour workshop? Darn, sounds like another great event I'll miss. But that doesn't mean you have to miss it, particularly if you're in the neighborhood.

An Upside to a Down Economy?

There's not much good that we can say when it comes to the economy. Still, there are those among us who see the bottle half full, rather than half empty.

Herb Sutter Isn't Missing; He's On His Way to Sweden

Now I know why Dr. Dobb's columnist and concurrency expert Herb Sutter hasn't turned in his column -- he's been preparing for his upcoming Effective Concurrency seminar on March 16-18, 2009 in Stockholm, Sweden.

Calendar

June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008

Real World Parallelism Webinar Series
  • November 17, 2009
    Visual Effects for Animation - presented by DreamWorks Animation
    Speaker: Ron Henderson (Bio)

    Ron Henderson manages the FX Tools group at DreamWorks Animation, where he is responsible for developing physical simulation and procedural modeling tools. These systems have been used for key visual effects in recent films such as Kung Fu Panda and Monsters vs. Aliens (March 2009).

    Prior to joining DreamWorks in 2002 he was a senior scientist at Caltech with a joint appointment to the Applied Math and Aeronautics departments, where he worked on efficient techniques for the direct numerical simulation of fluid turbulence.

    Abstract:
    In this webinar, Ron Henderson will show examples of visual effects, from hair and feathers to smoke and fire, from a variety of DreamWorks Animation feature films. He will discuss in general terms the kinds of techniques used to achieve particular visual effects. Finally, Henderson will show a detailed breakdown of the dam-breaking scene from Madagascar: Escape 2 Africa, demonstrating how different elements of key frame animation, simulation, and rendering are combined in a real production shot.

  • December 1, 2009
    A Quick and Easy Way to Parallelize a Legacy Codebase with Intel® Threading Building Blocks (TBBs)
    Speaker: Bernard Laberge, Avid, Senior Principal Engineer (Bio)

    Bernard Laberge is a senior principal engineer in the video editors division at Avid. During his seven years with the company he has been actively involved in the replacement of the legacy video processing engines used by Avid editors with a common hardware-abstracted, component-based video processing engine currently running on the CPU with SIMD optimized code, GPU, and dedicated hardware.

    Abstract:
    Learn how to overcome the limitations of a thread-based scheduler, including dealing with the absence of recursive parallelism support and the inefficient handling of unbalanced processing load. Bernard Laberge addresses how Avid resolved the expensive refactoring of their thread-based scheduler into a task-based solution by choosing Intel® Threading Building Blocks (TBBs). He explores how Avid was able to easily integrate the Intel TBBs into their video editor applications and more than 5 million lines of code.

  • December 15, 2009
    How to Use Intel® Parallel Studio to Streamline Code Development in a Multicore Environment
    Speaker: Matt Dunbar, Director for Performance Technology, SIMULIA (Bio)

    Matt Dunbar is the director for performance technology at SIMULIA. Since joining the company in 1993, he has worked on parallelization of the Abaqus suite of products, initially for shared memory architectures and more recently for distributed memory architectures. Dunbar has also been intimately involved in selecting both the hardware and software tools used in the development of the Abaqus product line.

    Abstract:
    Resolve elusive, costly multithreading errors quickly and efficiently with Intel® Parallel Studio. While many coding problems that lead to bugs in software applications are typically straightforward logic errors, errors in managing memory and in multithreading code can sometimes take weeks to months to diagnose and fix. Matt Dunbar explores how and why taking advantage of multicore processors through multithreaded code is critical for compute-intensive applications. While spotlighting his work on SIMULIA's Abaqus finite element solver, Dunbar addresses the need for multicore execution and shares his experiences using Intel Parallel Studio to streamline code development in a multicore environment.