Re: [CinePaint] OpenMP in CinePaint?

Bob Friesenhahn <[email protected]> Wed, 19 Nov 2008 08:44:36 -0600 (CST)
Newsgroups gmane.comp.video.cinepaint.user
Message-ID <[email protected]>
On Wed, 19 Nov 2008, Frank Peters wrote:

> I can't comment about making Cinepaint work with OpenMP, but since
> the subject of parallel programming has been introduced, Nvidia's
> CUDA should also be mentioned.  CUDA uses the GPU rather than the
> CPU.  If rewriting Cinepaint to accomplish all its graphic primitives
> in parallel is the idea, then maybe CUDA could even give even better
> performance.

This approach seems to be very non-portable.  Now that GCC supports 
OpenMP, it is a portable solution (moving forward) since GCC is among 
the last to offer support for it.  The joy of OpenMP is that it does 
not require rewriting everything.

> But would all image processing benefit from parallel threads?
> Recently I had to apply a 63x63 convolution matrix to an image.
> It seems that in such a case, because the value of a single pixel
> depends on other pixels that may be quite distant, parallel processing
> could not be used.

63x63 is quite large, but from what I have observed, convolution is 
one of the "killer apps" for OpenMP.  With larger matrices, it can 
achieve true linear speedup.

See the tables in http://www.graphicsmagick.org/OpenMP.html to see how 
various GraphicsMagick algorithms have scaled up using OpenMP.  Note 
that GraphicsMagick is "large legacy code" similar to CinePaint.

> The Cinepaint list is probably not the best place to discuss
> these issues.

It is as they may pertain to Cinepaint.

Bob
======================================
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/