* does gcc meet these guidelines?
@ 2002-08-23 16:26 Andrew Shewmaker
2002-08-25 19:25 ` Fergus Henderson
0 siblings, 1 reply; 6+ messages in thread
From: Andrew Shewmaker @ 2002-08-23 16:26 UTC (permalink / raw)
To: gcc
Hello, I'm looking at NACSE's guidelines for HPC software and I am
hoping someone can tell me if GCC supports 5.8, 5.9, 5.10, and 5.15
of their requirements. Also, if I am wrong about any of the others,
please let me know.
Here is what I have so far:
5. Compilers
N 5.1 compiler for ISO/IEC 1539-1:1197 Fortran
Y 5.2 compiler for ANSI/ISO 9899-1990 C
Y 5.3 compiler for ANSI/ISO/IEC 14882-1998 C++
N 5.4 OpenMP Fortran binding, version 1.0.
N 5.5 OpenMP C binding, version 1.0
N 5.6 OpenMP C++ binding, version 1.0
Y 5.7 ANSI/IEEE 1003.1c POSIX threads (pthreads)
? 5.8 all compilers list variable cross-ref
? 5.9 Fortran compiler with preprocessor directives
? 5.10 Fortran compiler generates COMMON block map
N 5.11 auto-parallelization within procedures
N 5.12 directives for overriding auto-parallelization
Y 5.13 target-specific compiler switch
N 5.14 Fortran compiler with Cray pointers
? 5.15 all compilers list pseudo-assembly-language
N 5.16 auto-parallel compiler lists pseudo-assembly
N 5.17 auto-parallelization across procedures
Thanks for the help in advance,
-Andrew
P.S. Here are their detailed descriptions:
http://www.nacse.org/distributions/HPCreqts/report/part4.html
5. Compilers
The items in this section refer to support traditionally provided
through compilers. Features marked with an asterisk (*) may optionally
be provided as part of a cross-platform development environment,
rather than on the target machine itself.
5.1 * Vendor-supported compiler for ISO/IEC 1539-1:1197 Fortran
(Fortran95, which subsumes Fortran77) following POSIX Fortran
Bindings
5.2 * Vendor-supported compiler for ANSI/ISO 9899-1990 C.
5.3 * Vendor-supported compiler for ANSI/ISO/IEC 14882-1998 C++.
5.4 * Vendor-supported implementation of OpenMP Fortran binding,
version 1.0. The vendor will describe the architectural scope of the
implementation (e.g., limited to a single node, spanning N nodes).
5.5 * Vendor-supported implementation of OpenMP C binding, version
1.0. The vendor will describe the architectural scope of the
implementation (e.g., limited to a single node, spanning N nodes).
5.6 * Vendor-supported implementation of OpenMP C++ binding, version
1.0. The vendor will describe the architectural scope of the
implementation (e.g., limited to a single node, spanning N nodes)
5.7 Vendor-supported implementation of ANSI/IEEE 1003.1c POSIX threads
(pthreads).
5.8 * Ability of Fortran/C/C++ compilers to list basic intraprocedural
information on symbol names (e.g., cross-reference listing,
distinction between read and write occurrences).
5.9 * Ability of Fortran compiler to handle ANSI-C-like preprocessor
directives for file inclusion, conditional compilation statements
accepting Fortran expressions, and macro expansions.
5.10 * Ability of Fortran compiler to provide an interprocedural
COMMON block map. This functionality may be provided through a
separate tool.
5.11 * Vendor-supported compiler with the ability to parallelize
automatically at the intraprocedural level, and report why particular
portions weren't parallelizable.
5.12 * Vendor-supported auto-parallelizing compiler with directives
for overriding both compiler conservatism and auto-parallelization.
5.13 * If the compiler supports more than one target machine,
availability of a target-specific switch that exploits the
characteristics of the target machine. Vendor will specify how this is
done.
5.14 * Ability of Fortran compiler to handle Cray pointers, as
described at
http://www.scd.ucar.edu/tcg/consweb/Fortran90/scnpoint.html .
5.15 * Ability of Fortran/C/C++ compilers to generate transformed
source code or pseudo-assembly-language listings. This functionality
may be provided through a separate tool, but the listing must be
clearly correlated with the original source code (e.g., comments
indicating which instructions map to a source statement).
5.16 * Vendor-supported parallelizing compiler with ability to produce
listing of transformed source or pseudo-assembly language code showing
the results of parallelization. This functionality may be provided
through a separate tool, but the listing must be clearly correlated
with the original source code (e.g., comments indicating which
instructions map to a source statement).
5.17 * Vendor-supported compiler with the ability to parallelize
across procedural boundaries, safely and automatically.
--
Andrew Shewmaker
Associate Engineer
Phone: 208.526.1415
Fax: 208.526.4017
Idaho National Engineering and Environmental Laboratory
2525 Fremont Ave.
Idaho Falls, ID 83415-3605
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: does gcc meet these guidelines?
2002-08-23 16:26 does gcc meet these guidelines? Andrew Shewmaker
@ 2002-08-25 19:25 ` Fergus Henderson
2002-08-25 21:04 ` Gabriel Dos Reis
0 siblings, 1 reply; 6+ messages in thread
From: Fergus Henderson @ 2002-08-25 19:25 UTC (permalink / raw)
To: Andrew Shewmaker; +Cc: gcc
On 23-Aug-2002, Andrew Shewmaker <shewa@inel.gov> wrote:
> Y 5.3 compiler for ANSI/ISO/IEC 14882-1998 C++
GNU C++ does not yet fully conform to the 1998 C++ standard.
For example, it does not support the "export" keyword.
(Fully-conforming C++ implementations are currently still
few and far between.)
> Y 5.7 ANSI/IEEE 1003.1c POSIX threads (pthreads)
This is a library issue, rather than a gcc issue.
Support for POSIX threads varies between different platforms.
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: < http://www.cs.mu.oz.au/~fjh > | -- the last words of T. S. Garp.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: does gcc meet these guidelines?
2002-08-25 19:25 ` Fergus Henderson
@ 2002-08-25 21:04 ` Gabriel Dos Reis
0 siblings, 0 replies; 6+ messages in thread
From: Gabriel Dos Reis @ 2002-08-25 21:04 UTC (permalink / raw)
To: Fergus Henderson; +Cc: Andrew Shewmaker, gcc
Fergus Henderson <fjh@cs.mu.oz.au> writes:
| On 23-Aug-2002, Andrew Shewmaker <shewa@inel.gov> wrote:
| > Y 5.3 compiler for ANSI/ISO/IEC 14882-1998 C++
|
| GNU C++ does not yet fully conform to the 1998 C++ standard.
| For example, it does not support the "export" keyword.
Well, "export" is recognized as a keyword -- it is just that ignored
:-) :-)
-- Gaby
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: does gcc meet these guidelines?
2002-08-26 7:26 ` Andrew Shewmaker
@ 2002-08-26 21:05 ` Tim Prince
0 siblings, 0 replies; 6+ messages in thread
From: Tim Prince @ 2002-08-26 21:05 UTC (permalink / raw)
To: Andrew Shewmaker, tprince; +Cc: gcc
On Monday 26 August 2002 07:25, Andrew Shewmaker wrote:
> On Sat, 24 Aug 2002 18:09:18 +0000 (US/Pacific)
>
> tprince@ywave.com wrote:
> > 5.9 clearly is satisfied. Use either g77 preprocessing option or the .F
> > series of file naming to get tradcpp preprocessing.
> > 5.15 is satisfied, to the extent that you can always save the code which
> > is passed to the assembler. As for making the assembler code key to the
> > source, that is more than any compiler can do completely with fully
> > optimized code. The ability of gcc to get interspersed source and
> > assembler is good on certain targets, including ia32 (e.g. by compiling
> > with -g -c and using objdump -S), non-existent on others.
> > Several competent compiler vendors make compilers with a high degree of
> > compatibility with gcc, which cover many of your parallel computing
> > points.
> >
> > Tim
> > tprince@computer.org
> >
> Thank you for your help. If it isn't much trouble, could you (or someone
> else) comment on these requirements? I realize some of these aren't
> strictly about the compiler, but I would really appreciate even being
> told where to look or who to ask.
>
> 7.5 If the target machine supports non-IEEE format, vendor-supported
> mechanism to transparently perform the appropriate conversions to IEEE
> format.
I don't know of any current machines which are (a) relevant to parallel
computing and (b) supported by gcc/g77/g95, which support non-IEEE format.
Ask about particular architectures; possibly someone will be able to answer.
>
> 7.12 Vendor-supported mechanism to correctly convert 32-bit IEEE
> floating- point numbers to 64-bit IEEE values, and vice versa, during
> unformatted Fortran read and write operations.
g77 doesn't have much support for reading unformatted files written by
another compiler or even by g77 on a system with a different binary format.
I think this subject has been discussed in the light of g95, but any final
solution is in the future.
>
> 7.13 Vendor-supported mechanism to accommodate big/little-endian
> conversion during unformatted Fortran read and write operations.
Unfortunately, no, even on some systems where the proprietary compilers
convert between internal byte order and big-endian file formats, g77 does not.
>
> 8.4 Vendor-supported linker capable of resolving all symbol references
> without the need to specify a particular object multiple times in the
> argument list (as in multipass linking).
gcc/g77 don't provide their own linker. They generally use the linker
associated with the operating system. No answer fits all gcc targets. Under
normal circumstances, it isn't necessary to search any library more than once.
>
> 8.5 Vendor-supported linker or tool capable of generating a complete
> load map of any executable or shared object, including names of
> external symbols, their addresses, and the compilation unit where
> each was defined.
Also a function of the operating system. Nearly all targets provide at least
most of this functionality. cf gnu binutils 'ld --print-map'
>
> 8.7 Accurate versioning information for preprocessors, compilers, ar,
> and linker, with ability to associate this information in some way
> with each user object file and executable.
Objects and executables marked with all those version details? Not to my
knowledge. Certainly, it's possible to set up a build to save this
information into a text file.
>
> 8.13 Vendor-supported linker that can replace just selected object
> or library modules within an executable.
Not commonly available, to my knowledge.
>
> Andrew
--
Tim Prince
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: does gcc meet these guidelines?
2002-08-24 18:11 tprince
@ 2002-08-26 7:26 ` Andrew Shewmaker
2002-08-26 21:05 ` Tim Prince
0 siblings, 1 reply; 6+ messages in thread
From: Andrew Shewmaker @ 2002-08-26 7:26 UTC (permalink / raw)
To: tprince; +Cc: gcc
On Sat, 24 Aug 2002 18:09:18 +0000 (US/Pacific)
tprince@ywave.com wrote:
> 5.9 clearly is satisfied. Use either g77 preprocessing option or the .F
> series of file naming to get tradcpp preprocessing.
> 5.15 is satisfied, to the extent that you can always save the code which
> is passed to the assembler. As for making the assembler code key to the
> source, that is more than any compiler can do completely with fully
> optimized code. The ability of gcc to get interspersed source and
> assembler is good on certain targets, including ia32 (e.g. by compiling
> with -g -c and using objdump -S), non-existent on others.
> Several competent compiler vendors make compilers with a high degree of
> compatibility with gcc, which cover many of your parallel computing points.
>
> Tim
> tprince@computer.org
>
> ---------------------------------------------
> This message was sent using Endymion MailMan.
> http://www.endymion.com/products/mailman/
Thank you for your help. If it isn't much trouble, could you (or someone
else) comment on these requirements? I realize some of these aren't
strictly about the compiler, but I would really appreciate even being
told where to look or who to ask.
7.5 If the target machine supports non-IEEE format, vendor-supported
mechanism to transparently perform the appropriate conversions to IEEE
format.
7.12 Vendor-supported mechanism to correctly convert 32-bit IEEE
floating- point numbers to 64-bit IEEE values, and vice versa, during
unformatted Fortran read and write operations.
7.13 Vendor-supported mechanism to accommodate big/little-endian
conversion during unformatted Fortran read and write operations.
8.4 Vendor-supported linker capable of resolving all symbol references
without the need to specify a particular object multiple times in the
argument list (as in multipass linking).
8.5 Vendor-supported linker or tool capable of generating a complete
load map of any executable or shared object, including names of
external symbols, their addresses, and the compilation unit where
each was defined.
8.7 Accurate versioning information for preprocessors, compilers, ar,
and linker, with ability to associate this information in some way
with each user object file and executable.
8.13 Vendor-supported linker that can replace just selected object
or library modules within an executable.
Andrew
--
Andrew Shewmaker
Associate Engineer
Phone: 208.526.1415
Fax: 208.526.4017
Idaho National Engineering and Environmental Laboratory
2525 Fremont Ave.
Idaho Falls, ID 83415-3605
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: does gcc meet these guidelines?
@ 2002-08-24 18:11 tprince
2002-08-26 7:26 ` Andrew Shewmaker
0 siblings, 1 reply; 6+ messages in thread
From: tprince @ 2002-08-24 18:11 UTC (permalink / raw)
To: Andrew Shewmaker, gcc
> Hello, I'm looking at NACSE's guidelines for HPC software and I am
> hoping someone can tell me if GCC supports 5.8, 5.9, 5.10, and 5.15
> of their requirements. Also, if I am wrong about any of the others,
> please let me know.
>
> Here is what I have so far:
>
> 5. Compilers
> N 5.1 compiler for ISO/IEC 1539-1:1197 Fortran
> Y 5.2 compiler for ANSI/ISO 9899-1990 C
> Y 5.3 compiler for ANSI/ISO/IEC 14882-1998 C++
> N 5.4 OpenMP Fortran binding, version 1.0.
> N 5.5 OpenMP C binding, version 1.0
> N 5.6 OpenMP C++ binding, version 1.0
> Y 5.7 ANSI/IEEE 1003.1c POSIX threads (pthreads)
> ? 5.8 all compilers list variable cross-ref
> ? 5.9 Fortran compiler with preprocessor directives
> ? 5.10 Fortran compiler generates COMMON block map
> N 5.11 auto-parallelization within procedures
> N 5.12 directives for overriding auto-parallelization
> Y 5.13 target-specific compiler switch
> N 5.14 Fortran compiler with Cray pointers
> ? 5.15 all compilers list pseudo-assembly-language
> N 5.16 auto-parallel compiler lists pseudo-assembly
> N 5.17 auto-parallelization across procedures
>
>
> Thanks for the help in advance,
>
> -Andrew
>
>
> P.S. Here are their detailed descriptions:
>
> http://www.nacse.org/distributions/HPCreqts/report/part4.html
>
> 5. Compilers
>
> The items in this section refer to support traditionally provided
> through compilers. Features marked with an asterisk (*) may optionally
> be provided as part of a cross-platform development environment,
> rather than on the target machine itself.
>
> 5.1 * Vendor-supported compiler for ISO/IEC 1539-1:1197 Fortran
> (Fortran95, which subsumes Fortran77) following POSIX Fortran
> Bindings
> 5.2 * Vendor-supported compiler for ANSI/ISO 9899-1990 C.
> 5.3 * Vendor-supported compiler for ANSI/ISO/IEC 14882-1998 C++.
> 5.4 * Vendor-supported implementation of OpenMP Fortran binding,
> version 1.0. The vendor will describe the architectural scope of the
> implementation (e.g., limited to a single node, spanning N nodes).
> 5.5 * Vendor-supported implementation of OpenMP C binding, version
> 1.0. The vendor will describe the architectural scope of the
> implementation (e.g., limited to a single node, spanning N nodes).
> 5.6 * Vendor-supported implementation of OpenMP C++ binding, version
> 1.0. The vendor will describe the architectural scope of the
> implementation (e.g., limited to a single node, spanning N nodes)
> 5.7 Vendor-supported implementation of ANSI/IEEE 1003.1c POSIX threads
> (pthreads).
> 5.8 * Ability of Fortran/C/C++ compilers to list basic intraprocedural
> information on symbol names (e.g., cross-reference listing,
> distinction between read and write occurrences).
> 5.9 * Ability of Fortran compiler to handle ANSI-C-like preprocessor
> directives for file inclusion, conditional compilation statements
> accepting Fortran expressions, and macro expansions.
> 5.10 * Ability of Fortran compiler to provide an interprocedural
> COMMON block map. This functionality may be provided through a
> separate tool.
> 5.11 * Vendor-supported compiler with the ability to parallelize
> automatically at the intraprocedural level, and report why particular
> portions weren't parallelizable.
> 5.12 * Vendor-supported auto-parallelizing compiler with directives
> for overriding both compiler conservatism and auto-parallelization.
> 5.13 * If the compiler supports more than one target machine,
> availability of a target-specific switch that exploits the
> characteristics of the target machine. Vendor will specify how this is
> done.
> 5.14 * Ability of Fortran compiler to handle Cray pointers, as
> described at
> http://www.scd.ucar.edu/tcg/consweb/Fortran90/scnpoint.html .
> 5.15 * Ability of Fortran/C/C++ compilers to generate transformed
> source code or pseudo-assembly-language listings. This functionality
> may be provided through a separate tool, but the listing must be
> clearly correlated with the original source code (e.g., comments
> indicating which instructions map to a source statement).
> 5.16 * Vendor-supported parallelizing compiler with ability to produce
> listing of transformed source or pseudo-assembly language code showing
> the results of parallelization. This functionality may be provided
> through a separate tool, but the listing must be clearly correlated
> with the original source code (e.g., comments indicating which
> instructions map to a source statement).
> 5.17 * Vendor-supported compiler with the ability to parallelize
> across procedural boundaries, safely and automatically.
>
>
> --
> Andrew Shewmaker
> Associate Engineer
> Phone: 208.526.1415
> Fax: 208.526.4017
>
> Idaho National Engineering and Environmental Laboratory
> 2525 Fremont Ave.
> Idaho Falls, ID 83415-3605
5.9 clearly is satisfied. Use either g77 preprocessing option or the .F
series of file naming to get tradcpp preprocessing.
5.15 is satisfied, to the extent that you can always save the code which
is passed to the assembler. As for making the assembler code key to the
source, that is more than any compiler can do completely with fully
optimized code. The ability of gcc to get interspersed source and
assembler is good on certain targets, including ia32 (e.g. by compiling
with -g -c and using objdump -S), non-existent on others.
Several competent compiler vendors make compilers with a high degree of
compatibility with gcc, which cover many of your parallel computing points.
Tim
tprince@computer.org
---------------------------------------------
This message was sent using Endymion MailMan.
http://www.endymion.com/products/mailman/
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-08-26 21:05 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-23 16:26 does gcc meet these guidelines? Andrew Shewmaker
2002-08-25 19:25 ` Fergus Henderson
2002-08-25 21:04 ` Gabriel Dos Reis
2002-08-24 18:11 tprince
2002-08-26 7:26 ` Andrew Shewmaker
2002-08-26 21:05 ` Tim Prince
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).