[OSM-dev] renderd multithreading question

Jon Burgess jburgess777 at googlemail.com
Sun Nov 15 17:55:44 GMT 2009


On Fri, 2009-11-13 at 23:06 +0000, Jon Burgess wrote:
> On Fri, 2009-11-13 at 23:42 +0100, Frederik Ramm wrote:
> > Hi,
> > 
> >      I'm running the C version of renderd on an 8-core machine with 
> > num_threads configured to 8. (PostGIS is on another machine so renderd 
> > has the CPU to itself.) I had assumed that it would somehow magically 
> > manage its queue and have up to 8 threads render tiles when there is 
> > demand, and make sure to render high priority requests first etc.
> 
> It will do that.
> 
> > However I find that if I request a large number of tiles through 
> > render_list, only one CPU is used to produce them sequentially.
> 
> That is the fault of render_list. It only submits one request at a time
> and waits for it to complete before moving on.
> 
> The render_old code was recently upgraded to submit multiple requests in
> parallel. The same changes could be done for render_list.
> 
> > Would I simply have to run 8 parallel render_list processes to achieve 
> > the desired result? And if, during such a scenario, another 4 mod_tile 
> > processes connect to renderd and have high priority requests, would they 
> > still be given priority over the ongoing bulk rendering?
> 
> Yes, the mod_tile RenderPrio requests should get rendered in preference
> to the render_list requests. It might make sense to update render_list
> to submit cmdRenderBulk requests.

I updated the render_list code in SVN to use multiple request threads.
Each request is generated using cmdRenderBulk which should mean the
normal mod_tile requests will get priority.

	Jon






More information about the dev mailing list