GCC 8.3.0 vs. 9.0.1

From: Steven Winfield <Steven(dot)Winfield(at)cantabcapital(dot)com>
To: "pgsql-performance(at)lists(dot)postgresql(dot)org" <pgsql-performance(at)lists(dot)postgresql(dot)org>
Subject: GCC 8.3.0 vs. 9.0.1
Date: 2019-05-07 16:14:43
Message-ID: E9FA92C2921F31408041863B74EE4C2001BD66841B@CCPMAILDAG03.cantab.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi,

(Apologies if this isn't the right place to post this)

A few days ago a blog post appeared on phoronix.com[1] comparing GCC 8.3.0 against 9.0.1 on Intel cascadelake processors.
A notable difference was seen in the PostgreSQL benchmark (v10.3, pgbench, read/write, more detail below), both when compiling with -march=native and -march=skylake:

GCC version | -march= | TPS
8.3.0 | skylake | 5667
9.0.1 | skylake | 11684 (2.06x speed up)
8.3.0 | native | 8075
9.0.1 | native | 11274 (1.40x speed up)

I'm interested to know the devs' take on this is - does GCC 9 contain some new feature(s) that are particularly well suited to compiling and optimising Postgres? Or was GCC 8 particularly bad?

The test script seems to be this one[2], and goes something like this:

- Postgres 10.3 is configure using --without-readline and --without-zlib (after patching it so that it can run as root). The remaining compiler options seem to be (implicitly?) "-fno-strict-aliasing -fwrapv -O3 -lpgcommon -lpq -lpthread -lrt -lcrypt -ldl -lm", plus the -march setting under test.

- initdb is run with --encoding=SQL_ASCII --locale=C

- the db is started with "pg_ctl start -o '-c autovacuum=false'"

- createdb pgbench

- pgbench -i -s <system memory in MB * 0.003> pgbench

- pgbench -j <number of cores> -c <number of cores * 4> -T 60 pgbench

Cheers,
Steven.

[1] https://www.phoronix.com/scan.php?page=news_item&px=Intel-Cascade-Lake-GCC9
[2] https://openbenchmarking.org/innhold/b53a0ca6dcfdc9b8597a7b144fae2110fa6af1fb

This email is confidential. If you are not the intended recipient, please advise us immediately and delete this message.
The registered name of Cantab- part of GAM Systematic is Cantab Capital Partners LLP.
See - http://www.gam.com/en/Legal/Email+disclosures+EU for further information on confidentiality, the risks of non-secure electronic communication, and certain disclosures which we are required to make in accordance with applicable legislation and regulations.
If you cannot access this link, please notify us by reply message and we will send the contents to you.

GAM Holding AG and its subsidiaries (Cantab – GAM Systematic) will collect and use information about you in the course of your interactions with us.
Full details about the data types we collect and what we use this for and your related rights is set out in our online privacy policy at https://www.gam.com/en/legal/privacy-policy.
Please familiarise yourself with this policy and check it from time to time for updates as it supplements this notice.

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Tom Lane 2019-05-07 17:05:59 Re: GCC 8.3.0 vs. 9.0.1
Previous Message Jeff Janes 2019-05-06 17:17:36 Re: PostgreSQL optimizer use seq scan instead of pkey index only scan (in queries with postgres_fdw)