[Webkit-unassigned] [Bug 43903] Speeding up SVG filters with multicore (SMP) support

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Apr 9 02:39:09 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=43903





--- Comment #44 from Gabor Loki <loki at webkit.org>  2011-04-09 02:39:08 PST ---
It looks like everything is discussed without me. ;) That's great!

First of all the ParallelJobs framework should look like the Threading one. So splitting it into different headers is a good idea.

About OpenMP, libdispatch and other parallel processing API. Every platform has its own favorite parallel processing method/API. I have only introduced one extra (OpenMP) beside the generic WebKit's threading infrastructure. The libdispatch is also a very good feature, but I am not familiar with it. So, It would be nice if someone helps in this area.

About the framework. The WebKit's ParallelJobs framework should be simple and powerful for each parallel processing method/API. It is simple if the developers think it is ;) . It is powerful if it is as close to the platform dependent parallel processing API as possible. My solution is close to satisfy those two requirement. Well, I do not think I invented a brand new method for parallel processing. The basics are the same as you can see in any API.
 - Allocate / request some threads (depending on the input)
 - Fill the threads' local data
 - Execute the threads and wait for finish

This is a very basic method using parallel processing and every API provides a way to execute tasks based on the above topics. As I see libdispatch also supports this way (http://libdispatch.macosforge.org/trac/wiki/tutorial#Puttingworkinthepipeline:Queues)

About the technical details. Using template makes a big mess. Especially when I try to add libdispatch support. As Zoltan said libdispatch is not supported in a template. The GCC 4.2 fails with internal compiler error on Mac. So, I have to redesign the whole framework.
- First of all, I would like to create separate headers for each parallel processing method/API and a common one which will contain the public API of WebKit's ParallelJobs framework (thanks to Nikolas).
- The other important thing should be the base class (so-called ParallelEnviroment). It will be something like in my first patch, will contain a constructor for initialization, functions to be able to fill the local data and an execute function.
- The third part should be the template class. The purpose of this class is to make the framework be as simple as possible.

Any more thoughts?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list