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: does gcc meet these guidelines?


> 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/



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