Skip to content

enabling pgo #21583

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
octaviansoldea opened this issue Jun 29, 2018 · 7 comments
Closed

enabling pgo #21583

octaviansoldea opened this issue Jun 29, 2018 · 7 comments
Labels
build Issues and PRs related to build files or the CI.

Comments

@octaviansoldea
Copy link

  • Version: v11.0.0-pre
  • Platform: Linux
  • Subsystem:

Hello

This is about enabling pgo compilation. This issue, is also related to a previous effort:

#1409

In this context, I would like to initiate a pull request and ask the community feedback. From some preliminary results, I have the following data:

I have compared Node-DC-EIS and Ghost, and have obtained 3.7% and 3.8% improvements respectively. These numbers were validated with unpaired t-test. Moreover, I am collecting data regarding the Node.js benchmark suite and attached here two of the benchmarks:

assert_compare.txt
async_hooks_compare.txt

In this context, I would like to mention that assert and async manifest 3.17% and 3.92% improvements respectively.

The experiments were done on Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz. Nevertheless, the solution I would like to submit passes the tests, and also compiles for 32 bits, see also issue 1409.

I am looking forward to hearing from you.

@octaviansoldea

@Trott Trott added the build Issues and PRs related to build files or the CI. label Jun 29, 2018
@Trott
Copy link
Member

Trott commented Jun 29, 2018

@nodejs/build

@bnoordhuis
Copy link
Member

Do you want to add a configure option or enable PGO in release builds? The former isn't controversial and will likely be accepted. The latter still has the issue of a lack of comprehensive benchmarks.

Node-DC-EIS and Ghost are realistic workloads but using them as inputs could penalize e.g. build tool-esque workloads (gulp, webpack, etc.)

I'd start with the configure option because prepping the build system needs to happen anyway.

@mhdawson
Copy link
Member

+1 to starting with configure option.

@octaviansoldea
Copy link
Author

Hello

Thank you for your feedback. My solution is including configure indeed.

@octaviansoldea

@octaviansoldea
Copy link
Author

Hello

Just a small update. I have uploaded the modification proposed and created the pull request

pgo: enabling pgo at configure #21596

@octaviansoldea

octaviansoldea pushed a commit to octaviansoldea/node that referenced this issue Aug 31, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: nodejs#21583
Refs: nodejs#1409
gabrielschulhof pushed a commit that referenced this issue Sep 4, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
PR-URL: #21596
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
targos pushed a commit that referenced this issue Sep 5, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
PR-URL: #21596
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
targos pushed a commit that referenced this issue Sep 27, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
targos pushed a commit that referenced this issue Oct 3, 2018
This modification allows for compiling with profiled guided
optimization (pgo) using the flags
--enable-pgo-generate and --enable-pgo-use.

Refs: #21583
Refs: #1409
PR-URL: #21596
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
@lundibundi
Copy link
Member

Closed via #21596.

Using PGO for release builds may be an idea worth discussion but this issue has concerned the ability to use PGO on Linux.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
build Issues and PRs related to build files or the CI.
Projects
None yet
Development

No branches or pull requests

5 participants