public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Biener <richard.guenther@gmail.com>
To: Giuliano Augusto Faulin Belinassi <giuliano.belinassi@usp.br>
Cc: GCC Development <gcc@gcc.gnu.org>,
	kernel-usp@googlegroups.com, gold@ime.usp.br,
		alfredo.goldman@gmail.com
Subject: Re: Parallelize the compilation using Threads
Date: Thu, 15 Nov 2018 11:44:00 -0000	[thread overview]
Message-ID: <CAFiYyc1kogmJ_5suHg+7fDaNjrYZnGjNGq4dew5uvc+w6-_BKQ@mail.gmail.com> (raw)
In-Reply-To: <CAEFO=4A0DJVDYze7P5mCOzDjGpJC1Y180nP_UmXxwqduy87=bA@mail.gmail.com>

On Wed, Nov 14, 2018 at 10:47 PM Giuliano Augusto Faulin Belinassi
<giuliano.belinassi@usp.br> wrote:
>
> As a brief introduction, I am a graduate student that got interested
>
> in the "Parallelize the compilation using threads"(GSoC 2018 [1]). I
> am a newcommer in GCC, but already have sent some patches, some of
> them have already been accepted [2].
>
> I brought this subject up in IRC, but maybe here is a proper place to
> discuss this topic.
>
> From my point of view, parallelizing GCC itself will only speed up the
> compilation of projects which have a big file that creates a
> bottleneck in the whole project compilation (note: by big, I mean the
> amount of code to generate).

That's true.  During GCC bootstrap there are some of those (see PR84402).

One way to improve parallelism is to use link-time optimization where
even single source files can be split up into multiple link-time units.  But
then there's the serial whole-program analysis part.

> Additionally, I know that GCC must not
> change the project layout, but from the software engineering perspective,
> this may be a bad smell that indicates that the file should be broken
> into smaller files. Finally, the Makefiles will take care of the
> parallelization task.

What do you mean by GCC must not change the project layout?  GCC
happily re-orders functions and link-time optimization will reorder
TUs (well, linking may as well).

> My questions are:
>
>  1. Is there any project compilation that will significantly be improved
> if GCC runs in parallel? Do someone has data about something related
> to that? How about the Linux Kernel? If not, I can try to bring some.

We do not have any data about this apart from experiments with
splitting up source files for PR84402.

>  2. Did I correctly understand the goal of the parallelization? Can
> anyone provide extra details to me?

You may want to search the mailing list archives since we had a
student application (later revoked) for the task with some discussion.

In my view (I proposed the thing) the most interesting parts are
getting GCCs global state documented and reduced.  The parallelization
itself is an interesting experiment but whether there will be any
substantial improvement for builds that can already benefit from make
parallelism remains a question.

> I am willing to turn my master’s thesis on that and also apply to GSoC
> 2019 if it shows to be fruitful.
>
> [1] https://gcc.gnu.org/wiki/SummerOfCode
> [2] https://patchwork.ozlabs.org/project/gcc/list/?submitter=74682
>
>
> Thanks

  reply	other threads:[~2018-11-15 10:29 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-15 10:12 Giuliano Augusto Faulin Belinassi
2018-11-15 11:44 ` Richard Biener [this message]
2018-11-15 15:54   ` Jonathan Wakely
2018-11-15 18:07   ` Jeff Law
2018-11-15 18:36   ` Szabolcs Nagy
2018-11-16 14:25   ` Martin Jambor
2018-11-16 22:40   ` Giuliano Augusto Faulin Belinassi
2018-11-19 14:36     ` Richard Biener
2018-12-12 15:46       ` Giuliano Augusto Faulin Belinassi
2018-12-13  8:12         ` Bin.Cheng
2018-12-14 14:15           ` Giuliano Belinassi
2018-12-17 11:06         ` Richard Biener
2019-01-14 11:42           ` Giuliano Belinassi
2019-01-14 12:23             ` Richard Biener
2019-01-15 21:45               ` Giuliano Belinassi
2019-01-16 12:44                 ` Richard Biener
2019-02-07 14:14       ` Giuliano Belinassi
2019-02-11 21:46       ` Giuliano Belinassi
2019-02-12 14:12         ` Richard Biener
2019-02-16  4:35           ` Oleg Endo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAFiYyc1kogmJ_5suHg+7fDaNjrYZnGjNGq4dew5uvc+w6-_BKQ@mail.gmail.com \
    --to=richard.guenther@gmail.com \
    --cc=alfredo.goldman@gmail.com \
    --cc=gcc@gcc.gnu.org \
    --cc=giuliano.belinassi@usp.br \
    --cc=gold@ime.usp.br \
    --cc=kernel-usp@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).