A few weeks ago there was some discussion on the list regarding multi-threading 
generate_tile.py to improve tiling performance. I speculated that Python's 
Global Interpreter Lock may hinder the harnessing of multiple cores that may be 
available. I finally got around to some basic testing using an internal world 
map data (as Shapefiles), rendered with levels 0..8. The machine is running 
Windows Vista 64bit (not for long now), on a machine with a Intel Xeon X5482 (4 
cores at 3.2GHz). Here's my results:

1 process, 1 thread: 21m 05s
1 process, 4 threads: 13m 44s    [1]
4 processes: 10m 11s     [1]

Note [1]: To divide the world into 4 work units, I simply quartered into 
NW/NE/SW/SE quadrants. Naturally, due to land distributions on the planet, some 
of the threads/processes finishes sooner than others. The time shown is for the 
last quadrant to complete. With some simple load balancing, even better 
performance could be achieved.

My conclusion is that if you want to get as much tiling performance our of a 
system, use separate instances of Python and divide your work load in a smart 
way.

Now... here's the bit that's of more concern to me...

Booting the same machine into Ubuntu (Jaunty) and running exactly the same job 
for 1 process, 1 thread.... 1h 24m !!!
Anyone have a theory on what happened here?

Regards,
Warren



_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users

Reply via email to