Blog Archives

Parallel Tasking

Detecting Scalability Problems With Intel Parallel Universe Portal

You already know that achieving a linear speedup as the number of cores increases in real life parallelized applications is indeed very difficult. However, sometimes, the multicore scalability of certain algorithms for existing multicore systems could be worse than expected. The overhead and the bugs introduced by concurrency could bring really unexpected scalability problems when the number of cores increases. Intel can help you with a free service in the cloud.

QuickThread: A New C++ Multicore Library

NUMA (Non-Uniform Memory Access) architectures are becoming popular in HPC (High-Performance Computing) scenarios. Therefore, it is very important to work with efficient and optimized memory allocators. QuickThread is a new commercial C++ multicore programming library loaded with many optimizations for NUMA architectures, bringing a new option to create high-performance parallelized code.

Go: A New Concurrent Systems Programming Language from Google

Google launched Go, a new systems programming language born with concurrency, simplicity and performance in mind. Do you have time to learn another programming language this year?

Visualizing Parallelism and Concurrency in Visual Studio 2010 Beta 2

Visual Studio 2010 Beta 2 includes many interesting improvements related to its multicore programming features. The parallelism and concurrency profiling tools allow developers to visualize the behavior of a multithreaded application on multicore microprocessors and collect resource contention data.

Moblin v2.0 is Multicore Ready

Moblin v2.0 for Intel Atom Processor based netbooks is already available. Developers with Linux experience will find it easy to target this new attractive platform. However, many developers have many questions related to the multicore support offered this new operating system.

Downsizing Multicore Programming Skills to Take Advantage of Intel Atom

There is no doubt that Intel Atom is an attractive microprocessor. Netbooks, embedded systems, consumer electronic devices, and MIDs (Mobile Internet Devices) are using its different flavors. But can multicore programming skills be useful with these single-core CPUs?

Process Monitor v2.7: A New Release to Watch Processes and Threads in Windows

Process Monitor is a very complete advanced monitoring tool that shows and logs real-time activity for the file system, the Registry, the running processes and their threads in Windows. Yesterday, the Windows Sysinternals team made the new version v2.7 of Process Monitor available for download.

All CPU Meter: A Simple Windows Gadget to Monitor Cores

All CPU Meter is a very simple sidebar gadget available for Windows Vista and Windows 7. It allows developers and users to check the microprocessor's usage and it shows an independent graph for each available logical core (hardware thread).

TMonitor: Understanding What Happens With Each Hardware Thread

TMonitor, a new tool developed by the CPUID team, offers the possibility to understand what's going on with each hardware thread (logical core) on some modern multicore microprocessors.

Web Workers: A Draft Recommendation to Allow Parallelism in Scripts

Most modern Web pages run scripts. So far, there are many limitations to allow these scripts to take advantage of multicore microprocessors. However, Web Workers is a draft specification that defines an API to allow Web application authors to spawn background workers running scripts in parallel.

New Parallel Debugging Windows in Visual Studio 2010 Beta 1

Visual Studio 2010, still in Beta 1, offers two new debugging windows: Parallel Stacks and Parallel Tasks. Using them, it is easier to understand the new Parallel Extensions offered by .NET 4.

Tasks Are Not Threads in .NET 4 Beta 1

.Net Framework 4.0 with its Parallel Extensions, still in Beta 1, will add the possibility to work with tasks. It is very important to understand that tasks aren't threads. Tasks run using threads. However, it doesn't mean they replace threads.

Fan: A Portable Language is Bringing Actors to JavaScript

Fan, another new programming language developed in the multicore era, has recently launched its 1.0.45 release. It is a very active open source project with a very interesting approach to many modern concurrent programming challenges.

Alternatives for Parallelizing Legacy Serial Code

Applications developed using modern programming languages can become legacy code faster than expected. Multicore microprocessors have been found guilty of transforming outstanding serial code into legacy code in just a few years. However, there are many alternatives to translate multicore power into application performance making small changes to the legacy serial code.

New Garbage Collectors Designed With Parallelism in Mind

On the one hand, Garbage Collectors simplify developers' lives, but on the other hand, they can become the greatest enemies of a parallelized algorithm's performance. Finally, Java 7 and .Net 4 are going to offer new Garbage Collectors really targeted for multicore microprocessors with large memories.

Of Quarks and Practical Parallel Programming

In this conversation with Timothy G. Mattson, Senior Research Scientist Intel, Computational Software Lab, we find close agreement on the best approach to applying parallelism to business and general application programming. But first we discuss quantum physics.


Microsoft Visual Studio 2010 and .Net Framework 4.0 Beta 1 Finally Arrived

After a long silence since the last CTP (Community Technology Preview), Microsoft released the Visual Studio 2010 Beta 1 that comes with the new .Net Framework 4.0. This new release will bring new promising features that empower parallel programming using the supported languages.

Measuring Parallelism: How Much Power Are You Wasting?

Management professionals love metrics. However, they don't like the idea to optimize applications that are currently running. Thus, what about showing them some metrics about the power that they are wasting using a free tool?

Intel's Hyper-Threading Strikes Back

Intel's Hyper-Threading technology was introduced with the 3.06 GHz Pentium 4 microprocessor. A few years later, the new Intel Core i7 processors offer Hyper-Threading again.

Java 7 Will Evolve to Fine-grained Parallelism

Java's development team understands the multicore revolution and is working hard in offering a new concurrency framework taking into account the new possibilities offered by the new microprocessors. Hence, JDK 7 (Java Development Kit 7) will offer the fork-join framework in order to help Java developers to tackle the multicore revolution using this popular programming language.

Novell's Mono Brings SIMD Support to C#

Parallel programming is not just about multi-threading and multi-core. There's also a lot of power in the SIMD (Single Instruction Multiple Data) extended instruction set available in most modern microprocessors from Intel and AMD.

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.