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]

Suggestion for next EGCS (cluster,fe?)


Firstly, I must apologize for any impropriety.  I didn't see a mention
of this on the list archive, and I'm not subscribed, so send all flames
directly to me - I won't see any list traffic.

The other day I was thinking about Red Hat's Extreme Linux and all the
Beowulf type clustering systems.  The biggest drawback to each of these
systems is that a secondary library such as PVM or MPI or ... must be
used, and each application then becomes specific to these clustering
systems.  Now, I've not looked into the details of these much, but
here's my idea...

Why not build intrinsic support for these libraries directly into the
compiler?  Then, with a simple recompile with a special switch, all
programs can become (at some level) cluster ready immediately.  I would
think that #pragma directives could be used to indicate shared memory,
code granularity, etc. (or maybe even just specific standard C labels)
and then either bundle the PVM/MPI/... libs into stdc(++) or just
implicitly link against it when given the "-cluster" compile time
option.

Now, I haven't done any code like this and really don't know any issues
surrounding it, but does this seem unreasonable?  Small code changes,
like changing:

main()
{	char bigarray[10000];
	do_calculation( bigarray );
}

to

main()
{
#pragma cluster( on )
	char bigarray[10000];
	do_calculation( bigarray );
#pragma cluster( off )
}

would have the compiler do whatever PVM/MPI magic would have to be done
manually, without "contaminating" the original source code with the
PVM/MPI libs.  Allowing people to turn clustering on/off, would allow
them to create local data where needed, and global shared data where
needed, and the #pragma directive would allow the code to be compiled
with any compiler, with or without the clustering libraries.

I think this would be a tremendous boon to Linux, especially in the
enterprise, and bring supreme bragging rights to the Linux compiler
people (of whom I am not one...) if implemented.

Just something to think about.
Christopher


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