Certain benchmarks not respecting `-t`
caizixian opened this issue · comments
-
For biojava and jme, there's seem to be only one worker thread spawned (I checked with jstack) regardless the
-t
set. -
For h2o and graphchi, the number of threads is always the number of hardware threads (htop shows good core utilization even with
-t 1
). -
As for kafka, because it has client threads, server threads, and a bunch of auxiliary threads, it's harder to tell, but I did
ls /proc/$(pidof java)/task/* | wc -l
, and for-t 1
and-t 32
, they both stabilize at round the same number of threads, and the steady state performance is the same, so I'm fairly sure the-t
flag is not doing what it is supposed to do. -
biojava
-
jme
-
h2o
-
graphchi
-
kafka
I've spent some time looking at biojava. I think it's behaving as expected.
However the config file incorrectly says that it's externally multi-threaded. It does not take a thread count as an argument. Instead it controls parallelism internally using a thread pool. However, this workload shows very little parallelism.
See #256.
it controls parallelism internally using a thread pool.
I don't think that's right. I couldn't find the code indicating that a thread pool is used. As far as I can tell, all work is done by the main thread.
In contrast, two alternative drivers of biojava I suggested in #256 do use thread pool.