Re: JIT compiling with LLVM v9.0 - Mailing list pgsql-hackers

From Andres Freund
Subject Re: JIT compiling with LLVM v9.0
Date
Msg-id 20180126082340.cy42v56rwuboe5wv@alap3.anarazel.de
Whole thread Raw
In response to Re: JIT compiling with LLVM v9.0  (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>)
Responses Re: JIT compiling with LLVM v9.0
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Rewriting the test of pg_upgrade as a TAP test - take two
Next
From: Amit Langote
Date:
Subject: Re: [HACKERS] path toward faster partition pruning