Archive for August, 2010

August 31, 2010

Parallelism and Education: Navigating Through a Sea of Cores (IDF Panel 9/13/10)

If you are attending the Intel Developer Forum in September and you are interested in education, I’ll be on the panel. “Parallelism and Education: Navigating Through a Sea of Cores” with a great group of other industry and academic folks. Paul Steinberg from Intel has posted an introductory post on his blog introducing some of the topics that we’ll be covering in the session.

I’ll be one of the ones representing the Industry side of the equation. While there seems to be some general agreement on the panel about some certain ground truths, there has been some very lively discussion on how best to educate current and future computer scientists in the new paradigms of parallel programming. This session could be a humdinger.

My personal position is that all software is parallel now. Nearly every system that software runs on, from the lowest end embedded systems, to huge data centers are sporting multi-core processors. However, multi-core computing isn’t the only environment software developers work today. Specialized processing units, like discrete GPUs and CPU/GPU hybrids are now very common across a large range of hardware. Distributed computing is widely used at the high-end. Even web programming is moving parallel with worker threads in javascript and my own team’s Pixel Bender in Flash.

If academia treats parallel programming and data structures like a specialized field of study, walled off into a couple courses and ignored by the general curricula, it will be doing a disservice to its students. A thorough grounding in parallel algorithms, data structures, computer hardware and theory integrated throughout the computer science curriculum is required.

While parallel programming is now a fact of life for software, hardware architectures and programming models are still evolving. Understanding the parallel programming concepts, algorithms and patterns and how they map to current hardware is far more important than the syntax or usage of any development library. Hardware will continue to evolve and new patterns will emerge. Without the grounding of theory mixed with the understanding of the hardware, tomorrow’s professionals will struggle to adapt. While I advocate the usage of libraries like OpenMP, TBB, Ct and Cilk for introductory classes, at some point, I think students need to be exposed to low-level threading, GPGPU programming (at the OpenCL or CUDA level), and SIMD so that they can understand what those libraries are doing for them and evaluate new libraries as they become available.

With a solid educational background, today’s students will be well equipped for tomorrow’s parallel future.

To find the panel, check the IDF Session Catalog. It is currently planned for Monday 9/13 at 11am (following the keynote).

Free passes are available to educators -Enter the code ACAWEB1 when you register.

See you there!

9:11 PM Permalink
August 28, 2010

Link Friday: All about the Oil Paint Tuts.

Two new Tutorials crossed my browser this week for the Pixel Bender plug-in for CS5. Both about the Oil Paint filter. Now folks, the Oil Paint filter is pretty awesome, but you know that you can run lots of other filters in the Pixel Bender plug-in too, right? 🙂

El tutorial primero es en español por mis amigos que hablan español: [CORRECTION: it is Portuguese, not Spanish, D’oh!]


The second tutorial is in the Queen’s english, courtesy of Gavin Hoey:

Oil Painting Effect in Photoshop CS5 & Pixel Bender from Gavin Hoey on Vimeo.

12:38 AM Permalink
August 21, 2010

Link Friday for 8.20.10

Sambaverse by Ben Gomez Farrell

One post that got people excited this week was the announcement of the Sambaverse alpha from Ben Gomez Farrell. This is Ben’s description of what he is trying to accomplish: “I needed a tool that was smart enough to load an MP3, take a good stab at automatically detecting beats, break, loud sections, and different sections of the song – like verses and choruses.” And Pixel Bender? “I used Pixel Bender to get a huge speed increase when loading the sound initially. That was a lot of fun once I figured out how to get it working.”

Color keying with Flash Builder 4 by Luis Estevez

Color keying with Flash Builder 4 by Luis Estevez

Luis Estevez created a sample of using Pixel Bender to do color keying in the player. Here is his post in Spanish and English.

Flex 4 Fun by Chet Haase

Flex 4 Fun by Chet Haase

Chet Haase has written a book called “Flex 4 Fun” that includes at least a chapter on Pixel Bender.

"Pixel Bender: A Gradient… and Some Math" from David Van Brink

"Pixel Bender: A Gradient… and Some Math" from David Van Brink

Here is an older link, but one I just came across this week, from David Van Brink’s Omino Pixel Blog: “Pixel Bender: A Gradient… and Some Math.” I really like how he digs into the math to explain how it works. A great blog, and a nice filter too!

It is pretty amazing that every week I have new links to post from Pixel Bender developers. I’m going to try and work in some of the old links that I’ve got too as I go too. More links next week!

6:48 AM Permalink
August 16, 2010

Pixel Bender Toolkit 2.1 now available!

An update of the Pixel Bender Toolkit is now available via the Adobe Updater and from the Pixel Bender Developer Connection area on If you have installed After Effects CS5, Flash Professional CS5 or one of the suites that includes these applications, you will see the update listed in the available updates. If you installed the Pixel Bender Toolkit via downloading it on from, you will need to download the update and install it by following the installation instructions.

The majority of effort in the release was on bug fixes found late in the CS5 development cycle. There have been some good bugs reported in the Pixel Bender forums, some are fixed in this release and some will be fixed in a later release.

There has been one major change in the behavior of the Flash preview in this release. In the 2.0 version of the Pixel Bender Toolkit, if you have a kernel with two inputs, the filter was treated as a Flash blend shader. This resulted in some unexpected results, especially when compared to CPU or GPU previews. Now, when you have a two input kernel, we instead create a ShaderJob and use the two input images as inputs. Hopefully, this will make things a bit more consistent. In a future version of the Toolkit, we plan to make this behavior selectable, but the blend case seemed to be very uncommon.

Thanks for using these tools and providing good feedback! If you find any problems or have feature requests, please post them to the Pixel Bender forums!

11:52 PM Permalink
August 14, 2010

Linky Friday, lucky Friday the 13th edition

Hello again! I’ve been out of the office most of the week, so this will be a linkeriffic post:

David Lanearts 4D julia set

David Lanearts 4D julia set

David Lenaerts has been putting together some mind-blowing math-intensive Pixel Bender filters for a while now. This week he posted some more info (and source!) on how he achieved metaballs and 4D Julia sets using Pixel Bender: Marching Cubes using Pixel Bender: Metaballs / LoFi 4D Julia Set

SSAO using Pixel Bender

SSAO using Pixel Bender

Ben Hopkins (kode80) has posted the source code from his SSAO experiments with Pixel Bender to google code.

Photoshop User TV Episode 238

Photoshop User TV Episode 238

Photoshop User TV covers the Pixel Bender Plug-in for Photoshop (‘natch) in this week’s episode.

Thanks again to the community for your contributions!

12:17 AM Permalink
August 6, 2010

Linky Friday Part Deux

some new Pixel Bender – related links that have popped up on my radar this week:

Pixel Bender Kernel Viewer by Alexander Zats

Pixel Bender Kernel Viewer by Alexander Zats

Axelander Zats has created a nice web-based viewer for PBJ files.

Spotlight Filter by Ryan Phelan

Spotlight Filter by Ryan Phelan

This is the Spotlight filter from Ryan Phelan. This one isn’t new, I’ve been meaning to post to it for a while. The filter itself is nice, but I also like the UI that Ryan created for editing the spotlight parameters.

Don’t forget to tweet me your links: @pixelbender!

9:30 PM Permalink