Difference between revisions of "HowTo:Compilers"
(→More Information) |
(→Some Tools) |
||
Line 89: | Line 89: | ||
* [https://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/lin/ Documentation for the Intel C/C++ Compiler can be found here]. | * [https://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/lin/ Documentation for the Intel C/C++ Compiler can be found here]. | ||
* [https://gcc.gnu.org/onlinedocs/ All Gnu compilers are documented here.] | * [https://gcc.gnu.org/onlinedocs/ All Gnu compilers are documented here.] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Help == | == Help == | ||
[mailto:cac.help@queensu.ca Send email to cac.help@queensu.ca]. We have scientific programmers on staff who will probably be able to help you out. Of course, we can't do the coding for you but we do our best to get your code ready for parallel machines and clusters. | [mailto:cac.help@queensu.ca Send email to cac.help@queensu.ca]. We have scientific programmers on staff who will probably be able to help you out. Of course, we can't do the coding for you but we do our best to get your code ready for parallel machines and clusters. | ||
|} | |} |
Revision as of 17:01, 14 June 2016
Contents
Compilers at the Centre for Advanced Computing
This is an introduction to the Fortran, C, and C++ compilers used on our clusters and servers. It is meant to give the user a basic idea about the usage of the compilers and about code optimization options.
Available CompilersWe are currently supporting two Compiler Suites on the Linux platform:
Setup
|
Compiling and Linking
Compiling and linking is best done with a makefile. Here are a few common flags. Consult man pages for specific details (for instance "man gcc"). Compilingcompiler -c [options] name.ext where "compiler" stands for the compiler name, for instance "gfortran" for the GNU Fortran compiler. The file extension "ext" determines what source code is being compiled, for instance "f" means "fixed format" Fortran, f90 means "free format" Fortran (90), or "c" stands for C. "[options]" denotes additional compiler flags that usually start with a '-'. Linkingcompiler -o name [options] [libraries] list "compiler" see above. "name" is the name of the executable (if not specified, the default is "a.out". [options] see above. [libraries] is a list of libraries that need to be linked in, usually as a list of file names with full path, or as '-L' and '-l' combinations [see below]. "list" means a list of object files, usually with ".o" extension. Using the compilers and the linker in the above manner requires the proper setting of the PATH environment variable, i.e. prior set-up. Options / flagsThere are hundreds of compiler flags, and many of them are not required most of the time. A few that are in more frequent use are:
There are many more flags. They are documented in the man pages (e.g. "man ifort" for the Intel Fortran compiler), as well in the documentation for the compiler. Some compiler flags are only useful for parallel programs and will be discussed later. |
DocumentationThe best way to get a quick list of compiler options is to use the "man pages". Just type "man compiler" where "compiler" stands for the name of the compiler you want to use, and get a long explanation of all the relevant options. This is not very user-friendly, but great for a quick look-up.
HelpSend email to cac.help@queensu.ca. We have scientific programmers on staff who will probably be able to help you out. Of course, we can't do the coding for you but we do our best to get your code ready for parallel machines and clusters. |