is the motivation to put them together, so I, hope you too, will never have that awful feeling anymore. In the cases of dealing with scientific applications, fortran and c/c++ are the ones we are dealing with the most.
1. GCC -- GNU Compiler Collection
GNU Compiler Collection (gcc) : C, C++, Objective-c, Fortran, Java, Ada and Go.
First how to pronounce GNU??? : g'noo, sounds like glue.
gcc is not a compiler that can only compile c++ code, which could be mislead by its name, instead it's an abbreviate name. It can compile lots of languages.
The standard compiler releases since 4.6 include front ends
for
C (gcc), ( sometimes, cc is an alias for gcc on your system. )
C++ (g++),
Objective-C,
Objective-C++,
Fortran (gfortran),
Java (gcj),
Ada (GNAT), and
Go (gccgo)
2. Intel compiler:
icc : C
icpc : C++
ifort : Fortran
idb : debugger ( another debugger besides gdb I use. )
3. IBM AIX compiler:
Introducing XL Fortran
IBM® XL Fortran for AIX®, V12.1 is an advanced, high-performance compiler that can be used for developing complex, computationally intensive programs, including interlanguage calls with C and C++ programs.Introducing XL C/C++
IBM® XL C/C++ for AIX®, V10.1 is an advanced, high-performance compiler that can be used for developing complex, computationally intensive programs, including interlanguage calls with Fortran programs.3.1 fortran code
To compile a source program, use one of the xlf90, xlf90_r, xlf90_r7, f90, xlf95, xlf95_r, xlf95_r7, f95, xlf2003, xlf2003_r, f2003, xlf, xlf_r, xlf_r7, f77, or fort77 commands, which have the form:
.----------------------------------. V | >>-+-xlf90-----+----+--------------+----input_file---+--------->< +-xlf90_r---+ '-cmd_line_opt-' +-xlf90_r7--+ +-f90-------+ +-xlf95-----+ +-xlf95_r---+ +-xlf95_r7--+ +-f95-------+ +-xlf2003---+ +-xlf2003_r-+ +-f2003-----+ +-xlf-------+ +-xlf_r-----+ +-xlf_r7----+ +-f77-------+ '-fort77----'
3.2 c / c++ code
xlc | Invokes the compiler for C source files. This command supports all of the ISO C99 standard features, and most IBM® language extensions. This invocation is recommended for all applications. | xlc_r, xlc128_r4, xlc128_r7, xlc128, xlc128_r, xlc128_r4, xlc128_r7 |
c99 | Invokes the compiler for C source files. This command supports all ISO C99 language features, but does not support IBM language extensions. Use this invocation for strict conformance to the C99 standard. | c99_r, c99_r4, c99_r7, c99_128, c99_128_r, c99_128_r4, c99_128_r7 |
c89 | Invokes the compiler for C source files. This command supports all ANSI C89 language features, but does not support IBM language extensions. Use this invocation for strict conformance to the C89 standard. | c89_r, c89_r4, c89_r7, c89_128, c89_128_r, c89_128_r4, c89_128_r7 |
cc | Invokes the compiler for C source files. This command supports pre-ANSI C, and many common language extensions. You can use this command to compile legacy code that does not conform to standard C. | cc_r, cc_r4, cc_r7, cc128, cc128_r, cc128_r4, cc128_r7 |
gxlc | Invokes the compiler for C source files. This command accepts many common GNU C options, maps them to their XL C option equivalents, and then invokes xlc. For more information, refer to Reusing GNU C/C++ compiler options with gxlc and gxlc++. | |
xlc++, xlC | Invokes the compiler for C++ source files. If any of your source files are C++, you must use this invocation to link with the correct runtime libraries. Files with .c suffixes, assuming you have not used the -+ compiler option, are compiled as C language source code. | xlc++_r, xlc++_r4, xlc++_r7, xlc++128, xlc++128_r, xlc++128_r4, xlc++128_r7, xlC_r, xlC_r4, xlC_r7, xlC128, xlC128_r, xlC128_r4, xlC128_r7 |
xlc++core, xlCcore | Invokes the compiler as described above for xlc++ and xlC, but links only to the core of the runtime library. Use this invocation if you want to link your application to a runtime library other than that supplied with XL C++. | xlc++core_r, xlc++core_r7, xlc++core128, xlc++core128_r, xlc++core128_r7, xlCcore_r, xlCcore_r7, xlC128core, xlC128core_r, xlC128core_r7 |
gxlc++, gxlC | Invokes the compiler for C++ files. This command accepts many common GNU C/C++ options, maps them to their XL C/C++ option equivalents, and then invokes xlc++. For more information, refer to Reusing GNU C/C++ compiler options with gxlc and gxlc++. |
4. PGI compiler:
- PGFORTRAN™ native OpenMP, OpenACC and auto-parallel Fortran 2003 compiler with CUDA extensions
- PGCC® OpenMP, OpenACC and auto-parallel ANSI and K&R C99 compiler
- PGC++® OpenMP, OpenACC and auto-parallel GNU 4.8 g++ compatible C++ compiler with CUDA-x86 extensions
- PGDBG® OpenMP and MPI parallel graphical debugger
- PGPROF® OpenMP and MPI parallel graphical performance profiler
No comments:
Post a Comment