Archives

Posts from Kevin Farnham RSS



I have more than 25 years of software engineering experience, with the focus since 1993 being on development of multithreaded high-volume data processing and mathematical modeling and simulation systems, on Unix and Windows platforms, programming in C, Fortran, and C++. In addition to developing software, I work for O'Reilly Media as an online community manager, editor, and blogger/writer.

Poll Result: More Developers Are Learning about TBB

By Kevin Farnham (108 posts) on March 31, 2008 at 4:22 pm
Comments (4)

The March Threading Building Blocks poll suggests that the developer community is learning about TBB, but not that many developers are actively applying TBB in actual projects. The poll asked: At what project level are you currently applying TBB? 81 people participated in the poll, making the following selections: 75.3% (61 votes) - Just getting started (learning about [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks on Wikipedia

By Kevin Farnham (108 posts) on March 28, 2008 at 9:24 pm
Comments (0)

I just finished adding new information to the Threading Building Blocks entry on Wikipedia (http://en.wikipedia.org/wiki/Threading_Building_Blocks). I added information on what's happened since TBB became an open source project, and I also added two new sections: Open Source Operating Systems that Offer TBB Packages Open Source Projects that Apply TBB I consider Wikipedia one of the greatest new [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks and Linux Distributions, Part 2

By Kevin Farnham (108 posts) on March 26, 2008 at 9:29 am
Comments (0)

In my last post I talked about the availability of Threading Building Blocks packages in Debian Linux, Ubuntu Linux, and the Fedora Project. In this post, I'll investigate TBB's availability in other Linux distributions and also in FreeBSD. Commercial TBB supported Linux distros The Commercial TBB site includes a System Requirements section that identifies several Linux [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks and Linux Distributions, Part 1

By Kevin Farnham (108 posts) on March 24, 2008 at 10:52 am
Comments (1)

Most of the people I've conversed with who are developing applications using Threading Building Blocks are working on Linux platforms. On the #tbb IRC channel, I've talked with people who are working with TBB on Gentoo, Debian, and Ubuntu Linux, and I'm sure several other distributions are represented as well. Threading Building Blocks can be [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Superlinearity and Algorithmic Complexity; or, My Interesting Conversation with Herb Sutter

By Kevin Farnham (108 posts) on March 19, 2008 at 8:55 am
Comments (5)

In my recent "Superlinearity Is Impossible; We Just Don't Always Think Correctly" I argued that algorithmic processing superlinearity is impossible. It might appear that a parallel application was achieving superlinearity, but that appearance was due to factors other than the algorithm itself engendering a more efficient computation. For example, memory access might be more [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

The Multicore Race Continues: Who, How, and Why

By Kevin Farnham (108 posts) on March 18, 2008 at 8:42 am
Comments (0)

An article in this past Saturday's Wall Street Journal (WSJ) titled "Racing to Gain Edge On Multicore Chips" talks about an effort being jointly funded by Intel and Microsoft for research on programming techniques suited for multi/many core computers. The article talks about the predicted many-core future: Intel and rival Advanced Micro Devices Inc. [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Superlinearity Is Impossible; We Just Don't Always Think Correctly

By Kevin Farnham (108 posts) on March 17, 2008 at 9:05 am
Comments (7)

I just received the April 2008 edition of Dr. Dobb's Journal (in my physical mailbox), and in this issue Herb Sutter continues his discussion of super linearity (where parallelizing a function produces a greater performance improvement than the number of applied processing cores). Here's Herb's article: "Super Linearity and the Bigger Machine". I've thought a [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Early March 2008 Development Releases

By Kevin Farnham (108 posts) on March 14, 2008 at 7:32 pm
Comments (0)

The Threading Building Blocks development team has moved to a weekly development release schedule recently: there have already been two early March releases following the February 26 release that I blogged about in my last post. In this post, I aim to catch up with the development team! 2008 March 4 TBB Development release The CHANGES [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks 20080226 Development Release

By Kevin Farnham (108 posts) on March 13, 2008 at 11:51 am
Comments (4)

The tbb20_20080226oss development release of Threading Building Blocks includes the following changes (as listed in the CHANGES file included with the release): Introduced tbb_allocator to select between standard allocator and tbb::scalable_allocator when available. Removed spin-waiting in pipeline and concurrent_queue. Improved performance of concurrent_hash_map by using tbb_allocator. Improved support for Intel® Thread Checker. Various improvements to code, tests, examples and Makefiles. I [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Hacking Threading Building Blocks into Cygwin, Part 3

By Kevin Farnham (108 posts) on March 10, 2008 at 3:29 pm
Comments (1)

My last post about hacking Threading Building Blocks into Cygwin ended with an "Unknown OS" error in file src/tbb/tbb_misc.h. This was a good sign because it meant I had things configured correctly enough for my Cygwin GCC compiler to actually start building TBB. To reiterate, what I'm trying to do is indeed a "hack"; I'm [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Hacking Threading Building Blocks into Cygwin, Part 2

By Kevin Farnham (108 posts) on March 5, 2008 at 1:59 pm
Comments (2)

My first blog post about Threading Building Blocks and Cygwin didn't include "Hacking" in the title -- but that's definitely what I'm doing at this point, so this and subsequent posts will be titled that way. If/when I reach the point where I know how to build and use TBB within the Cygwin environment, [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks and Cygwin, Part 1

By Kevin Farnham (108 posts) on March 5, 2008 at 9:46 am
Comments (2)

I've seen a lot of interest within the Threading Building Blocks community in using TBB on "Unix-on-Windows" platforms, such as Cygwin, MinGW (Minimalist GNU for Windows), and UWIN. I'll be getting back to my "Building Threading Building Blocks on UWIN" investigation soon; but this morning I'm taking a look at TBB and the Cygwin [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Downloadable Extras

By Kevin Farnham (108 posts) on March 2, 2008 at 8:18 pm
Comments (0)

A new Threading Building Blocks download category has been added to the TBB Download tab: Extras. The Extras category will have downloads "that may be useful in addition to the Intel Threading Building Blocks software downloads." The first Extras download is the msvs_plugin, which "provides a simple mechanism to set up and use TBB with [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

YetiSim Paper to Be Presented at SpringSim'08

By Kevin Farnham (108 posts) on March 1, 2008 at 11:51 am
Comments (2)

Adrien Guillon, founder of the YetiSim open source project, and Deborah Loach (co-designer of YetiSim) will be presenting a poster session titled "YetiSim: A C++ Simulation Framework Executing State Diagrams Instead of Coroutines" at the Spring Simulation Multiconference 2008 (SpringSim'08), April 14-17, in Ottawa, Canada. The YetiSim project applies Threading Building Blocks to parallelize [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Poll Result: TBB Algorithms Are the Most Widely Used Component

By Kevin Farnham (108 posts) on February 29, 2008 at 8:28 am
Comments (2)

The February Threading Building Blocks poll indicates that the TBB algorithms (parallel_for, parallel_reduce, pipeline, etc.) are the components that are most widely used by developers at this time. 48 developers participated in the poll. The specific poll question was: Which class of TBB component have you applied the most thus far? The response options and results [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Commercial Aligned Version 20_017

By Kevin Farnham (108 posts) on February 26, 2008 at 6:27 pm
Comments (0)

A new commercial-aligned version of open source Threading Building Blocks was posted on the TBB Download tab yesterday. The new version is tbb20_017oss. I compared the tbb20_017oss source with the source code for the previous commercial aligned release (tbb20_014oss) and found not too many significant differences, if you're talking about the number of lines [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Template for Visual Studio Now Available

By Kevin Farnham (108 posts) on February 25, 2008 at 7:28 pm
Comments (1)

Installing and configuring Threading Building Blocks for use in developing Windows applications using Visual Studio is getting easier, thanks to Dave Vanden Bout, owner of the /// Parallelism Panorama /// blog. In his latest entry, "Making TBB a bit easier...", Dave talks about and offers for download a TBB project template for Visual C++ [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Studying for TBB Mid-Terms

By Kevin Farnham (108 posts) on February 22, 2008 at 1:09 pm
Comments (2)

More evidence of the penetration of Threading Building Blocks into Computer Science and Engineering departments at colleges and universities: last night, a University of Michigan Computer Science undergraduate student came onto the #tbb IRC channel (on FreeNode.net), telling us: I just finished an exam on concurrency and TBB, got to exploring and saw mention [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Can Parallelism Achieve Superlinear Performance Gains?

By Kevin Farnham (108 posts) on February 15, 2008 at 1:54 pm
Comments (8)

I just received the March edition of Dr. Dobb's Journal (yes, I still get the printed version). Inside, there is an article by Herb Sutter titled "Going Superlinear". The article posits what at first glance appears to be a rather curious, and perhaps far-fetched, concept: the notion that N processors can produce a performance [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Early 2008 Development Releases

By Kevin Farnham (108 posts) on February 13, 2008 at 2:07 pm
Comments (2)

A new Threading Building Blocks development release is posted on the TBB Download site every week or two. The last release that I covered in a blog post was December's tbb20_20071218oss release. There have been three new development releases thus far in 2008. In this post I'll try to catch up with the development [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Nice Tutorial: Getting Started with TBB on Windows

By Kevin Farnham (108 posts) on February 9, 2008 at 10:33 pm
Comments (1)

While scanning for blog posts about Threading Building Blocks tonight, I came across a nice little tutorial about "Getting started with TBB" (on Windows). The post describes the procedure the author used to get the tbb20_014oss commercial aligned release installed and working in the Windows environment. The author used three free Microsoft software components to [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

The Problem with Algorithms and Money (and Life?)

By Kevin Farnham (108 posts) on February 9, 2008 at 1:25 pm
Comments (3)

Day 2 of the Money:Tech Conference included an interview / conversation with Richard Bookstaber, author of the book "A Demon of our own Design". The book was included in the bag of goodies that was given out to conference attendees. One thing I learned at Money:Tech is that the financial markets have become increasingly dominated [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Pattern Recognition, Money, Algorithms, and Web 2.0

By Kevin Farnham (108 posts) on February 7, 2008 at 3:14 pm
Comments (0)

Day one of the Money:Tech Conference covered many different aspects of modern investing and technology. While it's clear that computation algorithms and automation have become a significant component of institutional investing, many in the audience, along with some speakers, identified themselves as either being on the "money side" or on the "tech side." Tim O'Reilly [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Swarm Algorithms, Better Pictures, and Multicore Computers

By Kevin Farnham (108 posts) on February 4, 2008 at 1:54 pm
Comments (0)

I received an interesting email this morning, the Dr. Dobb's Report, a newsletter I subscribe to. The lead article is titled "Swarm Algorithms and (Better) Digital Photos." Whenever I see something like this, I am immediately reminded of the potential benefits of multicore processors on home computers. Surely, if there's a way to improve [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Poll Result: Expectations for 2008's Most Important Advance

By Kevin Farnham (108 posts) on February 2, 2008 at 9:16 am
Comments (8)

The January Threading Building Blocks poll asked developers to select the area where we'll see the most important software development technology advance in 2008. The 43 responses produced no clear consensus. Here is the actual poll statement and the results: The most important software development technology advance in 2008 will involve: 32% (14 votes) - Scalable [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Integrating Python and Threading Building Blocks, Part 3

By Kevin Farnham (108 posts) on January 28, 2008 at 9:30 am
Comments (4)

Continuing my effort to create an application that has a Python GUI and a back-end C++ computation engine that is threaded using Threading Building Blocks, I followed the instructions in the "Boost.Python Build and Test HOWTO" about how to relocate my Boost.Python "quickstart" application, so I can modify it as I'd like. The relocation [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Integrating Python and Threading Building Blocks, Part 2

By Kevin Farnham (108 posts) on January 25, 2008 at 9:08 am
Comments (2)

In my last post, I installed the Boost C++ libraries onto my Windows machine, and verified that the installation was successful. Now it's time to get Boost.Python operational, so I can get closer to my objective of creating a Threading Building Blocks application that is run using a Python user interface. The Boost installer created [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Integrating Python and Threading Building Blocks, Part 1

By Kevin Farnham (108 posts) on January 21, 2008 at 8:16 pm
Comments (5)

Several months ago, I began working on integrating Threading Building Blocks with scripting languages, such as Perl and Python. In the past week I've reexamined this problem from a new point of view: focusing on a single scripting language, rather than trying to come up with a single solution that will work for multiple [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks tbb20_20071218oss Development Release

By Kevin Farnham (108 posts) on January 20, 2008 at 3:48 pm
Comments (1)

There have been two Threading Building Blocks development releases since I created my TBB open source release versions matrix. In this post, I'm going to take a look at the first of these releases, the tbb20_20071218oss release. tbb20_20071218oss changes All TBB releases now come with a CHANGES file that is located in the top level directory [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Interesting Multicore Crisis Graph and Analysis

By Kevin Farnham (108 posts) on January 17, 2008 at 9:10 pm
Comments (6)

I came across a very interesting blog post as I was perusing the Net last night. Bob Warfield, who writes the SmoothSpan Blog, which focuses primarily on SaaS and Web 2.0, posted a very interesting blog titled "Apple, MacWorld, User Experience, and the Multicore Crisis". Bob seems to agree with several points that I've repeatedly [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Open Source Threading Building Blocks Resources Update

By Kevin Farnham (108 posts) on January 16, 2008 at 10:00 am
Comments (0)

You may have noticed some recent changes and additions to the Threading Building Blocks site in the past month or so. But in case you haven't seen everything new, I'll point out some of the changes in this post. TBB open source documentation The TBB Documentation tab has a new look, and new documents. Originally, the [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Upcoming Money:Tech Conference To Highlight Algorithmic Trading

By Kevin Farnham (108 posts) on January 14, 2008 at 11:26 am
Comments (7)

The upcoming Money:Tech Conference (February 6-7, New York City) didn't attract my attention initially. The conference home page subtitles the conference "Where Web 2.0 Meets Wall Street" -- which implies something other than the type of problem we try to solve using Threading Building Blocks. My view about the conference changed during my recent investigations [...]

Continued ›

Category: Events, Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Packaged into Ubuntu Hardy Heron

By Kevin Farnham (108 posts) on January 11, 2008 at 10:19 am
Comments (0)

In my last post I mentioned that Sadiq Jaffer had created Ubuntu Bug #181137, requesting syncing of the Debian TBB packages into Ubuntu Hardy Heron, which is scheduled to be released in late April. Despite the fact that the Hardy Heron Debian import freeze occured on December 13, the Ubuntu team has chosen to sync [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Applying Threading Building Blocks on Debian Etch

By Kevin Farnham (108 posts) on January 9, 2008 at 10:16 am
Comments (6)

My last post ended with me having used Debian's apt package manager to install the libtbb2 and tbb-examples packages on my Debian 4.0 (Etch) machine. When I attempted to make the examples, error messages were displayed, including missing *.h include file messages. Had it not been so late at night, I would have continued my [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Installing Threading Building Blocks on Debian Etch

By Kevin Farnham (108 posts) on January 7, 2008 at 8:45 am
Comments (3)

In my last post, "Threading Building Blocks Debian Linux Packages", I successfully added Debian TBB package maintainer Roberto Sanchez's personal Debian Etch package site to my /etc/apt/sources.list on my Debian 4.0 (Etch) system. One more step was necessary in order for me to be able to actually access Roberto's packages: apt-get update This is necessary to [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Debian Linux Packages

By Kevin Farnham (108 posts) on January 4, 2008 at 11:40 am
Comments (2)

Threading Building Blocks has been packaged for installation on Debian Linux systems using Debian's apt (Advanced Packaging Tool) package manager. I found out about this on the #tbb IRC channel from the Debian TBB package maintainer, Roberto Sanchez. TBB packages are available for the sid (unstable) Debian release at http://packages.debian.org/source/sid/tbb. The packages are based on the [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Poll: Multithreaded Apps Will Dominate Soon

By Kevin Farnham (108 posts) on January 2, 2008 at 4:09 pm
Comments (3)

The results of the most recent Threading Building Blocks poll suggest that most developers believe that multithreaded applications will begin to dominate the marketplace any time between now and the next five years. The poll, which ran from December 5, 2007 through January 2, 2008, asked: When will multithreaded apps begin to dominate the [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks on Itanium under Linux and GCC

By Kevin Farnham (108 posts) on December 31, 2007 at 2:28 pm
Comments (1)

A quick note for developers who try to build Threading Building Blocks on an Itanium processor system running Linux and GCC; if you get an error stating something like this: make[2]: ias: Command not found there is probably a solution available. The ias command is attempting to invoke the Itanium Assembler program, to build the assembler portion of [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Build Makefiles

By Kevin Farnham (108 posts) on December 28, 2007 at 11:16 am
Comments (1)

In my last post, I outlined the Threading Building Blocks build structure. In this post, I'll look at the makefiles for a particular platform. Once you understand how these makefiles are organized, you'll have a roadmap for porting TBB to new platforms. I'll use Linux with GCC as the example platform for this post. The makefiles [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

The Threading Building Blocks Build Structure

By Kevin Farnham (108 posts) on December 21, 2007 at 10:25 am
Comments (5)

My work on building Threading Building Blocks on UWIN led me to a fairly detailed study of the TBB build structure. Having studied this, and not finding documentation of it elsewhere, I thought I'd share what I've learned thus far, before I return to my UWIN work. The TBB build directory When you download and unpack a [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Building Threading Building Blocks on UWIN, Part 4

By Kevin Farnham (108 posts) on December 19, 2007 at 9:52 am
Comments (1)

Part 3 of my investigation of how to build Threading Building Blocks on the UWIN platform ended with a an error message telling me that include file cstddef could not be found. The reason for this was immediately apparent when I opened up the include/tbb/tbb_stddef.h file that calls for cstddef. There I saw: #include <cstddef> /* [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Building Threading Building Blocks on UWIN, Part 3

By Kevin Farnham (108 posts) on December 15, 2007 at 6:01 pm
Comments (2)

In Part 2 of this series on building Threading Building Blocks on the UWIN platform, I had reached the point where much had been resolved; but my UWIN build was returning "unknown" as the value of the TBB runtime variable. The next step was to trace how runtime gets set and figure out what I [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Building Threading Building Blocks on UWIN, Part 2

By Kevin Farnham (108 posts) on December 12, 2007 at 9:19 am
Comments (6)

I'm continuing to work on building Threading Building Blocks from the source within a UWIN environment on my quad-core Windows system. What I've realized since my Part 1 post, is that what I'm doing is somewhat akin to a "port" of TBB. It's maybe not completely a port, but I am working with a set [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Building Threading Building Blocks on UWIN, Part 1

By Kevin Farnham (108 posts) on December 8, 2007 at 1:54 pm
Comments (5)

For years I have installed the open source UWIN package, developed by AT&T Research and others, on all my Windows systems. I like having Unix tools available for use whenever I consider it more convenient to use them than Windows tools. Some recent installs onto my quad-core Windows system broke my UWIN 4.1 installation. Attempts to [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Open Source Release Versions Matrix

By Kevin Farnham (108 posts) on December 7, 2007 at 1:49 pm
Comments (1)

If you visit the Threading Building Blocks Downloads tab, you'll notice some changes. For the first time, there are now releases designated as "Stable Release," in addition to the "Commercial Aligned Release" and "Development Release." The "Stable" category has been there from the start, but there were previously no releases that carried that designation. TBB release [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Poll: How Soon Will Multithreaded Apps Dominate?

By Kevin Farnham (108 posts) on December 5, 2007 at 8:58 am
Comments (4)

I've posted a new poll on the Threading Building Blocks home page. In a September poll, more than half of the respondants said they expect 16-core PCs to be available for under $1000 in 2012. If this actually happens, there's going to be a lot of idle hardware in homes and offices -- unless a [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Poll Result: Few Today Can Develop Multithreaded Code

By Kevin Farnham (108 posts) on December 4, 2007 at 10:05 pm
Comments (2)

In the most recent Threading Building Blocks poll, a strong majority of respondants stated that the percent of today's developers who know how to develop multithreaded code is 10% or less. The specific question asked was: What percent of developers today know how to develop multithreaded code? The results for each response option were: 110 votes (70%) - 10% [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Memory Tutorial for Programmers

By Kevin Farnham (108 posts) on December 2, 2007 at 7:45 pm
Comments (1)

On the Threading Building Blocks IRC channel (#tbb on FreeNode) this morning, a question was asked about memory, specifically cache. The question came up: are there any good references on how to program to effectively utilize cache? A while later, the article series "What every programmer should know about memory" by Ulrich Drepper was suggested by [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Convex Hull Code Walk, Part 2

By Kevin Farnham (108 posts) on November 30, 2007 at 6:45 pm
Comments (1)

In my first code walk post about the Threading Building Blocks Convex Hull example problem, I walked through the code that sets up the problem, including initialization of a sample data set. In my next post, I displayed the created input data set in image form. In this post, I'll continue walking through the code [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Microsoft's ParallelFX Community Technology Preview

By Kevin Farnham (108 posts) on November 30, 2007 at 6:43 pm
Comments (5)

Yesterday Microsoft announced the "Parallel Extensions to the .NET FX CTP" (Community Technology Preview). Called ParallelFX for short, the new technology runs on .NET FX 3.5, relying on features available in C# 3.0 and Visual Basic 9.0. I've downloaded .NET FX 3.5 and ParallelFX and started looking into what ParallelFX offers, in comparison with Threading Building [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Code Samples and Project Catalog

By Kevin Farnham (108 posts) on November 25, 2007 at 3:10 am
Comments (2)

In my conversations with the Threading Building Blocks community, people have said that more code samples would be helpful. To organize the available TBB code samples, a new TBB Code Samples page has been posted. The page categorizes the currently available TBB code samples, including the examples that come with the source download and some [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

parallel_do: A New Threading Building Blocks Component

By Kevin Farnham (108 posts) on November 21, 2007 at 1:15 pm
Comments (1)

The latest Threading Building Blocks development release (tbb20_20071030oss) includes an important new feature: the parallel_do component. You can read some of the discussion that led to the development of parallel_do in the "Making parallel_while Better?" thread in the TBB Forum. This discussion is continued in the "parallel_do: the replacement to parallel_while" thread. Why parallel_do? Among the points [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Building Threading Building Blocks on Ubuntu

By Kevin Farnham (108 posts) on November 17, 2007 at 4:32 pm
Comments (7)

This morning a new Threading Building Blocks user came online on the #tbb IRC channel, with some questions about how to build TBB on Ubuntu. The developer had downloaded the latest Threading Building Blocks development release (tbb20_20071030oss), unpacked the tbb20_20071030oss_src.tar.gz file, entered the created directory, and typed make. Ubuntu's arch omission Here's the result the developer received [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

SC07 Reveals the Future

By Kevin Farnham (108 posts) on November 16, 2007 at 1:26 pm
Comments (0)

The SC07 Conference in Reno, Nevada comes to a close today. No, I'm not there, but I found out that some people on the Threading Building Blocks team are attending, so I took a look a look. The conference program is a 229-page PDF document that contains abstracts of tutorials, papers, poster presentations, panels, etc. [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

TBB Download Pages Repaired

By Kevin Farnham (108 posts) on November 14, 2007 at 9:03 am
Comments (0)

You may have noticed a change that was in place on the Threading Building Blocks download pages for a few days recently, where when you clicked a "Download" link (see, for example, the 20071030 Development Release page), a Javascript function was activated, asking for your email address (optional). You can't see this popup now, because [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

TBB Convex Hull Example Input Data Set

By Kevin Farnham (108 posts) on November 12, 2007 at 8:32 pm
Comments (0)

I ended my last post with a promise to provide some graphics that would illustrate the type of data that is created as the input for the Threading Building Blocks Convex Hull example problem. I modified the program to print the data points created by the call to initialize_buf() in main() in the convex_hull_sample.cpp file, then [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Convex Hull Code Walk, Part 1

By Kevin Farnham (108 posts) on November 9, 2007 at 11:03 am
Comments (2)

In my last post I talked about the convex hull problem and some of the algorithms researchers have invented to solve it. In this post, I begin looking at the solution that comes with the Threading Building Blocks example problems. The TBB convex_hull_sample.cpp program (found in the examples/parallel_reduce subdirectory) applies the QuickHull algorithm to solve convex [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Applying Threading Building Blocks to Solve Convex Hull Problems

By Kevin Farnham (108 posts) on November 7, 2007 at 11:46 am
Comments (1)

I was browsing the examples that are part of the Threading Building Blocks source code download, seeking an example that illustrates how to apply the concurrent_vector component, and my grep executions brought me to the examples/parallel_reduce/convex_hull directory. This directory contains the source code for two programs that apply the QuickHull algorithm to solve convex hull [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

44% of Poll Respondents Would Contribute TBB Open Source Code

By Kevin Farnham (108 posts) on November 5, 2007 at 8:44 pm
Comments (0)

The latest Threading Building Blocks poll, which ended on November 5, shows that a significant number of developers are interested in contributing to the TBB code base. 44% of the votes cast in the poll indicated the developer would like to occasionally or actively participate in TBB development. The poll question was: "To what degree do [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

TBB Pipeline Class Application in text_filter.cpp

By Kevin Farnham (108 posts) on October 31, 2007 at 9:46 am
Comments (0)

In this post, I'll look at the code that applies the Threading Building Blocks pipeline class to a simple problem. I talked about the task that the text_filter.cpp example (available with the TBB source code download) solves in my last post. There, we found that a task that sounds simple often can have unexpected complexity [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Pipeline Processing: Analysis of the text_filter.cpp Problem

By Kevin Farnham (108 posts) on October 29, 2007 at 8:26 pm
Comments (1)

As promised in my "The Future of Data Center Pipeline Processing" post, I'm continuing my investigation of the Threading Building Blocks pipeline component, using the text_filter.cpp example that is provided with the TBB source download as my test case. Statement of the problem The task that is performed by the text_filter.cpp example is simple enough: read a text [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

OOPSLA Panel Highlights Need for Concurrent Programming

By Kevin Farnham (108 posts) on October 29, 2007 at 12:17 am
Comments (1)

"A panel of programming language experts sees parallel programming as the next hurdle," according to an eWeek report about the Object-Oriented Programming, Systems, and Languages (OOPSLA) 2007 conference. C# creator Anders Hejlsberg said: "Going forward, the big challenge we have today is we have to really think deeply about programming for concurrency. The models we have [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

The Future of Data Center Pipeline Processing

By Kevin Farnham (108 posts) on October 26, 2007 at 10:50 am
Comments (2)

I've worked for a long time in data centers where very large amounts of incoming data are processed through a chain of software applications, many of them applying complex algorithms and mathematical models, then finally reducing the data to produce a set of graphical and tabular end products the investigator can review to assess quality [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Makes Inroads in Education

By Kevin Farnham (108 posts) on October 23, 2007 at 9:05 pm
Comments (2)

As soon as I started the Threading Building Blocks #tbb channel (on the FreeNode IRC network), I saw that TBB is a technology that is immediately attractive to graduate and undergraduate students. It's true that the participants in an IRC chat room are not statistically representative of the full software developer population; but, in a [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

YetiSim's Application of Threading Building Blocks

By Kevin Farnham (108 posts) on October 22, 2007 at 2:25 pm
Comments (2)

In earlier posts I reviewed three of the four winning submissions to the "Coding with TBB" contest that was launched at OSCON and which completed on August 31. In this post I look at the fourth winning entry, AJ Guillon's YetiSim. YetiSim is: a discrete event simulation library for C++ built with Intel's Threading Building Blocks. YetiSim [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Source on SourceForge.net

By Kevin Farnham (108 posts) on October 18, 2007 at 11:07 am
Comments (2)

While ThreadingBuildingBlocks.org is the central site for "all things TBB," I've noticed that quite a few people have attempted to download Threading Building Blocks from the SourceForge.net/projects/tbb site. Before today, when such downloads were attempted, it would appear that a standard SourceForge download was about to begin -- but then it would hang, with no [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Web 2.0 and Multicore: No Connection?

By Kevin Farnham (108 posts) on October 16, 2007 at 1:22 pm
Comments (0)

I was browsing the the schedule for this week's Web 2.0 Summit (which I'm not attending), and I was struck by the fact that in my quick perusal I saw no mention of multicore processors and the implications of that revolution on the future of the Web. Multicore may be in there somewhere, but it [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Threading Building Blocks Product Roadmap

By Kevin Farnham (108 posts) on October 12, 2007 at 7:59 am
Comments (2)

The near-term product roadmap for the Threading Building Blocks project has been posted. This is an opportunity to for developers to learn about the current direction of TBB development efforts, and also to ask questions or comment on the current plan. Ongoing TBB development The planned and ongoing TBB development can be divided into five main categories: I/O [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Intel Threading Challenge Contest Series

By Kevin Farnham (108 posts) on October 10, 2007 at 11:30 am
Comments (7)

A new Intel contest that's perfectly suited for Threading Building Blocks developers is now under way. The Intel Threading Challenge invites you to "thread your way to prizes." Josh Bancroft announced the contest yesterday in his "Developer Contest: Win a Mac Book Pro in the Intel Threading Challenge" blog post. I'll fill in some of [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

TBB Commercial Aligned Version 20_014

By Kevin Farnham (108 posts) on October 5, 2007 at 8:34 am
Comments (1)

Threading Building Blocks Commercial Aligned Version 20_014 is now available on the TBB Commercial Aligned Release Downloads page. The primary changes in this version, compared with the previous commercial aligned release (20_010), are as follows: additional platform support removal of some unneeded warning messages new function: blocked_range3d Platform support The term "commercial aligned" means this is a version of Threading [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Intel / Dr. Dobbs Webinars on Multicore, Concurrency, Etc.

By Kevin Farnham (108 posts) on October 3, 2007 at 9:59 am
Comments (2)

If you read this blog, chances are you're interested in parallel programming, concurrency, multicore processors, clusters, etc. This Fall, Intel is presenting a series of webinars, in association with Dr. Dobbs Journal. I received notification in an email. The series sounds very interesting, so I thought I'd post the information here. The webinar series is [...]

Continued ›

Category: Multicore, Open Source, Threading Building Blocks

Poll: Many Core PCs Expected Very Soon

By Kevin Farnham (108 posts) on September 30, 2007 at 8:06 pm
Comments (1)

The results of the latest ThreadingBuildingBlocks.org poll clearly state that the people who chose to vote believe that low-end PCs will have many processing cores five years from now (in 2012). Here are the final results of the (unscientific) poll, which ran from September 13 through September 30: How many processing cores will a [...]

Continued ›

Category: Multicore, Open Source, Threadin