|It's 1997. Do you know where your scheduler is? firstname.lastname@example.org (D. J. Bernstein) (1997-12-19)|
|Re: It's 1997. Do you know where your scheduler is? email@example.com (David Chase) (1997-12-23)|
|Re: It's 1997. Do you know where your scheduler is? firstname.lastname@example.org (D. J. Bernstein) (1997-12-29)|
|Re: It's 1997. Do you know where your scheduler is? email@example.com (David Greene) (1998-01-04)|
|From:||David Chase <firstname.lastname@example.org>|
|Date:||23 Dec 1997 22:52:48 -0500|
|Organization:||Natural Bridge LLC|
D. J. Bernstein wrote:
> Try gcc -O3 again. The code slows down again. Wonderful.
> Pause to wonder whether compiler writers will care about a 1.6x
> speedup in one of the world's most important computational problems.
> ``These days, scheduling is realistically best left to the compiler.''
Unless you use gcc, I guess. Last I checked, Gcc (unlike compilers
sold by Sun, IBM, HP, Intel, DEC, SGI, and Motorola) does not have
much of a scheduler in it. The vendor compilers that I know of (I am
making plausible assumptions about the others) contain detailed models
of machine pipelines, and use those to get good schedules. I think
one of them even uses expensive (exhaustive search) algorithms for
scheduling small loops.
Intel chips are also a pain to schedule for; an undersupply of
registers adds one more constraint for your scheduler to obey, and
there's also vast differences between scheduling for the Pentium
(which runs sort of like a pair of 486 chips) and scheduling the
Pentium Pro (which looks like a really amazing dataflow machine). A
compiler built for one is unlikely to work well for the other.
By-the-way, you didn't say which release of gcc, nor did you
say which release of Pentium.
David Chase, email@example.com
Return to the
Search the comp.compilers archives again.