I don't understand a lot about it. But I would tell you that the basic need is to separate inkscape code in at least 2 threads: one for rendering and the other one for user interface (functional parallelism), so that the user interface dont get non-responsive when the user is dealing with a drawing too complex that requires a lot of cpu power.
Another thing that could be interesting is to use multithreading to speed up inkscape's algorithms. There are algorithms that we use that can be separated in various threads (data parallelism) so that multicore users will benefit from better performance (each CPU core chews a piece of the data at the same time). There is already one feature in Inkscape using data paralelism. It is the algorithm that renders the gaussian blur filtering primitive. We have used OpenMP to implement the threading of this algorithm. It detects the number of cores you have in your machine and then decides in how many threads it will split the for loops.
But it wasn't coded by me. I am just telling you what I heard here on the list and on IRC. I guess we should keep this conversation on the list so that other people could help you too.
Juca
On Mon, Jan 12, 2009 at 11:32 AM, Dmitry <dmitry.jurasov@...400...> wrote:
FS> On Mon, Dec 1, 2008 at 1:57 PM, Dmitry <dmitry.jurasov@...400...> wrote:
Hello inkscape-devel,
My name is Dmitry, I'm a student from Russia. I'm interested in developing your project and participating in next Summer of Code (2009). I want to know about ideas, which I can take part in. And I'm going to make this work to be my master thesis at University.
Monday, December 1, 2008, 7:17:16 PM, you wrote:
FS> Maybe somebody could try to use openmp in all of the SVGFilters code, but I FS> think that this would be too simple for your master thesis. FS> Indeed, it would be much better if somebody ported the filtering code to FS> cairo, and then used it in inkscape. This would be a bit harder since it FS> would be necessary to define a cairo API for filter effects.
FS> But if you wish to work on inkscape related stuff in your master thesis, FS> then I think that it should be something really hard. The first thing that I FS> can think about is the process of porting the SPObject and all of its FS> derived classes to C++
FS> Also, another thing that is possibly hard enough for your thesis is FS> implementing threading in Inkscape.
FS> Juca
Hello Felipe, I want to know more about thread implementing in Inkscape.
-- Best regards, Dmitry mailto:Dmitry.Jurasov@...400...