BlueMap

BlueMap

85.1k Downloads

Poor multi-thread performance

phoenixlzx opened this issue ยท 4 comments

commented

Hello,

I'm getting poor performance with 32 render threads. It's actually using all of these CPU cores allocated but the render speed is just a little bit faster than using 1 thread (3.5 tiles/s compared to 3.9 tiles/s).

My environments:
Arch Linux 64bit on a Dual E5-2660v2 CPU (20 cores, 40 threads) server, using SSD
Oracle JDK 14.0.2 64bit
BlueMap-cli 0.10.3-mc1.16
1.16.1 world save
default configuration generated using BlueMap-cli 0.10.3-mc1.16

I also noticed that it spawned many child processes no matter how many threads defined in the config, but it only allocated CPU threads will be heavily utilized.

Thanks in advance.

commented

Tested it, and i can reproduce it .. i guess it's time for some serious performance-testing .. sigh ^^'

commented

So @phoenixlzx,
After a lot of testing, i made some changes to the caches that should improve their concurrency performance by a lot.
On my system i now get much better performance when using multiple threads (tested with up to 12 because my cpu has (only) 12 threads ^^).
Can you please test this build (download is the 'Artifacts' button) for me and tell me if that speeds up the rendering for you.
Thanks :)

commented

The performance-decrease on a single thread is most likely due to different tiles being rendered, overall it should be still the same speed. So those tests are now at what i expected and that fix will be included in the next release :)
Thanks for the help!

commented

Hi @TBlueF it's indeed improved but only for multithreading. My testings below:

1 thread - ~2 tiles/s (worse than 0.11.3)
4 thread - ~6 tiles/s (better)
32 thread - 24 up to 44 tiles/s (10x faster than 0.11.3)