Hi,
Thanks for testing things out!
On 2018-01-26 10:44:24 +0300, Konstantin Knizhnik wrote:
> Also I noticed that parallel execution didsables JIT.
Oh, oops, I broke that recently by moving where the decisition about
whether to jit or not is. There actually is JITing, but only in the
leader.
> Are there any principle problems with combining JIT and parallel execution?
No, there's not, I just need to send down the flag to JIT down to the
workers. Will look at it tomorrow. If you want to measure / play around
till then you can manually hack the PGJIT_* checks in execExprCompile.c
with that done, on my laptop, tpch-Q01, scale 10:
SET max_parallel_workers_per_gather=0; SET jit_expressions = 1;
15145.508 ms
SET max_parallel_workers_per_gather=0; SET jit_expressions = 0;
23808.809 ms
SET max_parallel_workers_per_gather=4; SET jit_expressions = 1;
4775.170 ms
SET max_parallel_workers_per_gather=4; SET jit_expressions = 0;
7173.483 ms
(that's with inlining and deforming enabled too)
Greetings,
Andres Freund