Blog Archives

Parallel Worlds

Speeding Up Code Without Doing Anything

Of all the techniques I use to speed up code, the one I like the most comes with just the press of a button, or more precisely at the swap of a compiler Every Intel compiler has this particular option, and I consider to be a great friend. I'm making a point of keeping you in suspense for a little while longer. Let me first tell you a couple of stories that prove the point.

Sequential Programming: Like Eating Peas with a Straw.

Before the era of multicore chips, performance gains in CPUs was achieved by a combination of ever increasing speed and architectural enhancements. This resulted in more and more power being consumed by the processor -- a situation that could not continue forever.

How to choose the right programming model

Earler this week I watched a webinar on Beyond “thinking” parallel:How to choose the right parallel programming model. The webinar was first of a series of webinars on Real World Parallelism that will be broadcast over the coming weeks. James Reinders took us through some pertinent questions about what we should expect of a parallel programming model, he then went on to give examples of how different current and emerging parallel technologies 'fit the bill'.

Parallelism - full speed ahead!

Over recent weeks Intel have been involved in some exiting developments that continue to strengthen contribution it is making to the world of parallel programming. Aquisition of Rapidmind and Cilk I'm sure will complement and enhance today's solutions that Intel offer. See Reinders on Rapidmind and Reinders on Cilk for more opinion on this.


Looking at my diary of events around multicore for the upcoming months, it seems clear to me that the world of Parallel Worlds is 'full speed ahead'.

Parallel Execution Advantage on Single Core Intel Atom

I've just had 2 weeks vacation in South America. To help me cope with the long flight I bought a Samsung N110 - which has a battery life of over 9 hours. Also I figured the smaller size would be easier to work with whilst sitting in economy class. Irony was I missed my daytime flight, ended up travelling in the evening and so I slept rather than using the Netbook on the plane.

After a couple of days of being in Brazil, I got itchy fingers, and decided to test the Samsung N110 to see how it performed on parallel programs.
I built and ran my favourite Pi program using the Intel® Compiler that comes with Intel Parallel Studio, and got a performance boost of 1.47.

Going Parallel: Part 5 -- Checking for Parallel Errors

In the previous blog, I created an application that calculated the value of Pi. In this blog I show how to detect and correct the errors that I inadvertently introduced in my last posting.

Going Parallel: Part 4 -- Enter Intel Parallel Studio

Previously I examined a Dhrystone app and identified hotspots. Since then Intel Parallel Studio has been released, so I thought I'd convert the project to use it. This time I concentrate on converting my project to Visual Studio, then use Parallel Studio begin implementing parallelism.

Going Parallel: Part 3: Let's Get Started!

When I first dipped my toes into parallel programming I hunted around for a legacy application to change from serial to parallel. Rather than work on one of my own apps, I looked for a serial application on the web that had lots of CPU activity. I ended up choosing the Dhrystone benchmark.

If It Works -- Use It!

I recently spoke at the ACCU ("Association of C and C++ Users") Conference in the UK, with the title of my talk being "Seven Tips To Help Get You Started on Multicore".

Going Parallel: Part 2: So who's really writing parallel applications?

In a crazy moment sometime ago I forked out a few UK Pounds registering a url how-parallel-is-your-software.com (not the real address). The plan was to use the site to let people register any applications they found that ran parallel. Perhaps even run a competition to see who could find the most parallel commercial application. Maybe this would be the route to me becoming the next dotcom millionaire! I never had the nerve to bring the idea to life. I suspect that the moment I published anything every lawyer in town would be knocking at my door.

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".

Welcome to Parallel Worlds

Welcome to Parallel Worlds, a blog hosted by Stephen Blair-chappell. Stephen is a Technical Consulting Engineer at Intel, and has worked in the Intel Compiler Lab for the last 10 years. Prior to joining Intel, Stephen worked as a lecturer at the University of Central England, specializing in Software Engineering and Embedded Systems. Outside of work, Stephen enjoys playing the pipe organ, and is an accomplished musical instrument restore

Calendar

November 2009
October 2009
September 2009
August 2009
July 2009
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.