FW: Announcing Finalists for the OpenJDK Community Innovator's Challenge
Ted Neward
ted at tedneward.com
Fri Mar 21 02:35:25 UTC 2008
It's kinda sounding like trying to go all the way to mingw's gcc is not
necessarily a great place to end up. *shrug* Well, that's why this is a
research project--my hope is to get #1 done, first and foremost, and see
where we are after that.
Ted Neward
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.tedneward.com
> -----Original Message-----
> From: build-dev-bounces at openjdk.java.net [mailto:build-dev-
> bounces at openjdk.java.net] On Behalf Of Kelly O'Hair
> Sent: Thursday, March 20, 2008 10:58 AM
> To: Andrew Haley
> Cc: build-dev at openjdk.java.net; Steve Bohne
> Subject: Re: FW: Announcing Finalists for the OpenJDK Community
> Innovator's Challenge
>
> IME... shows you how old I am, not up-to-date on all these. ;^)
>
> I have heard that the gcc4 PCH works pretty well, but officially we
> are still using gcc3. The hotspot Makefiles might have done a little
> work toward using gcc4 PCH, and their source may actually be ready for
> use of PCH with any of the compilers due to the Windows PCH work.
>
> In the jdk Makefiles (not hotspot), I added a COMPILE_APPROACH variable
> that could be "normal", "parallel", or "batch".
> The "parallel" used the GNU make -p option but in a very limited way
> (Makefiles have to have pretty perfect dependency specifications for
> the -p option to work from the top down), effectively "parallel" does
> a
> 'make -p *.o' for each library being built.
> The "batch" just did a 'gcc -c *.c' type compile (if the compile lines
> matched for all the files).
>
> I had hoped that the compilers might be smart enough to see the "batch"
> compile as an opportunity to automatically do PCH on all these files
> (with supplying the appropriate compiler automatic PCH options).
> Turns out most of the "automatic" PCH options just don't work, or
> I couldn't get them to work. I came to the conclusion that to get
> benefits from PCH, your source files need to be normalized with regards
> to the use of the #include files, which is a bigger effort for the
> jdk than I was willing to take on.
>
> Not surprisingly, on Solaris/Linux, the "batch" mode without PCH
> was the same speed as "normal", since these compilers just loop
> over their source files. But Windows does show a slight benefit
> of "batch" compiles over "normal", and little benefit of using
> "parallel", which was surprising to me.
> Again, maybe this just comes down to the cost of a fork/exec?
> The 'make -p' may just not be as beneficial when the process startup
> cost is higher?
>
> -kto
>
> Andrew Haley wrote:
> > Kelly O'Hair wrote:
> >>
> >> Andrew Haley wrote:
> >>> Kelly O'Hair wrote:
> >>>> Excellent points Steve. And good summary.
> >>>>
> >>>> The hotspot nmake Makefiles are tied to the MS Visual Studio (VC)
> >>>> compilers,
> >>>> and I'm pretty sure nmake.exe is now only delivered with the VC
> product.
> >>>> It's not clear how you can match this build performance.
> >>>> However, it's also not clear how much of this benefit comes from
> >>>> Hotspot's
> >>>> use of VC pre-compiled headers (PCH). Windows builds with
> nmake/VC/PCH
> >>>> takes a few minutes, versus 20-35min builds on equivalent
> Linux/Solaris
> >>>> systems. So it's significant and something (the performance) that
> we
> >>>> want
> >>>> to keep. If a GNU Makefile using VC/PCH can match nmake is an open
> >>>> question.
> >>> This is interesting. I guess the Linux build isn't using PCH too?
> >> The gcc compilers and Sun Studio compilers we have used in the past
> either
> >> didn't have PCH capability or didn't have stable enough ones.
> >> It's been my experience that each PCH implementation is unique in
> some
> >> way, varied implementation techniques, with varied performance
> benefits.
> >> The gcc we have used (version 3 based) did not have a good PCH
> solution
> >> (gcc 4 supposedly has one now?),
> >> and the Sun Studio Compilers just recently got a stable PCH system.
> >
> > I haven't used it, but it's supposed to be pretty good. Apple use it
> > all the time.
> >
> >> On Windows, none of the [ parallel make options ] options are
> available or show little
> >> benefit. So far PCH has been the best answer, which the Hotspot team
> >> has done but the rest of the jdk's native sources aren't quite as
> >> normalized as the Hotspot sources.
> >>
> >> Maybe the Windows issue is the higher cost of process
> startup/warmup?
> >> Fewer processes with more work to do is a better Windows situation?
> >> I'm guessing of course...
> >>
> >>>> I have tried using parallel GNU make and batch compiles in the jdk
> >>>> builds, and seen benefits on Linux and Solaris, but not much with
> >>>> Windows.
> >>> Ah, that is important: IME builds scale almost linearly with the
> number
> >>> of processors.
> >> What is IME?
> >
> > In My Experience. :-)
> >
> > Andrew.
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.21.7/1336 - Release Date:
> 3/20/2008 9:48 AM
>
No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.21.7/1336 - Release Date: 3/20/2008
9:48 AM
More information about the build-dev
mailing list