This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: OpenMP, HPC, and the future of GCC


Lars Segerlund wrote:
> Perhaps you should take the time to get informed, before wasting
> other peoples time

My point is that it is that the Gcc community is not responsible
for implementing OpenMP, and we are not required to merge in
an extension in to the main sources.  It is up to the OpenMP
community to produce an implementation, and if they want it
merged in, that it be is minimally disruptive to the cleanliness
(such as it is!) of Gcc.

I am making a point about *process*, primarily.  The *design* of
OpenMP also raises concerns, but that is a different issue.

> also conisder that here are people willing to make an effort
> to support 'multi threading' or 'native parallallism' in gcc,
> which if you had a look at most modern systems might be of
> major importance to gcc and the free community.

It *might* be.  However, there have been hundreds of designs
for language-based 'multi threading' or 'native parallallism'.
That suggests caution before making any major changes to our
code-base to support it.

> Perhaps something as simple as reading openmp's homepage
> should give a hint as to which institutions have contributed
> to the standard,

So what?  All that means it's a standard with a lot of backing;
it means nothing about its quality.  For that the *people*
who contributed would be more important.

> You would discover that a lot of people working on scientific
> computing have been involved, and they can not all be idiots

Have I suggested otherwise?

Steven Bosscher wrote:

> Maybe one of the reasons for [lack of numerical performance in Gcc]
> is because people involved in GCC development mostly are computer
> scientists, and that such people are not well known for understanding
> computational scientists?

I think it is more a question of priorities.  Some people involved in
GCC development understand computations sciences very well, but most
do not.  But that I think is mostly because people have been very busy
on implementing language correctness, support many kinds of chips,
and implementing generally-useful improvements, so there hasn't been
much time (i.e. money!) for some of the things you're interested in.

To emphasize:  efforts to make Gcc better for "computational"
domains is very welcome.  It is just that any design needs to
avoid further complicating and slowing down Gcc.

Right now, there is a lot of concern and focus about the
compilation speed of Gcc, especially when not opimizing.
So it is very important that any new vectorization support
not slow the compiler down further, at least by default.

> If GCC does not want to be useful in a hpc environment, that's fine.
> But I would like to hear that *before* we start an effort to implement
> OpenMP in GCC.  If the GCC community has an attitude like, "just
> put it in a branch and we'll see what we do with it," then I can
> think of more important things that I actually should put time in.

See Jan Hubicka's response.

Scott Robert Ladd wrote:

Is GNU interested in supporting the HPC community? There are those of us
willing to put in the work if there is reasonable expectation that the gcc
"core" will accept it. But if HPC is going to be dismissed automatically, I
don't see the point of making an effort to implement HPC features.
Nobody is talking about dismissing anything automatically.
However, we cannot accept patches we haven't seen, either.
I agree with Jan Hubicka's response.

One purported goal of the GNU Project is to provide free alternatives to
commercial products. Is GCC willing to surrender HPC to commercial compiler
vendors?
GCC is Free Software.  You're free to use it as you will.  You're
free to create a fork.  We're free to reject your changes.

We don't want to "surrender HPC to commercial compiler vendors", but
it must be up to the HPC community to *become part* of the Gcc
community - we don't have the resources otherwise.  And that means
understanding the many contrary goals we have.  Runtime performance
is only one, and (at this point) not the most important one.
Maintainable code, compile-time speed, and correctness are at
least as important.

> If people like me are willing to put in some of the work,
> can GCC meet us part-way?

Yes, but resources are limited.  We can evaluate and advise,
but we cannot promise any implementation or debugging work,
unless you come up with funding that would allow one or more
expierences Gcc people to spend a substantial amount of time
on the project.  Otherwise, you have to learn how gcc works,
both technically, and the process.

> What I *am* asking for is an open mind -- and several messages
> in this thread (*not* yours!) suggest slammed doors.

I think we're willing to hold our noses about design choices
of OpenMP, as long as the *implementation* is as clean as
you/we can make it.  For example vectorization improvements
should avoid being tied to OpenMP specifics - in fact it is
critical that *algorithms* and *syntax* be kept separate.
--
	--Per Bothner
per@bothner.com   http://www.bothner.com/per/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]