source: proiecte/hpl/openmpi_compiled/share/man/man1/mpicxx.1 @ 97

Last change on this file since 97 was 97, checked in by (none), 14 years ago

Adding compiled files

File size: 6.1 KB
Line 
1.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
2.TH mpicxx 1 "Dec 08, 2009" "1.4" "Open MPI"
3
4.
5.SH NAME
6mpicxx -- Open MPI C++ wrapper compiler
7.
8.SH SYNTAX
9mpicxx [-showme|-showme:compile|-showme:link] ...
10.
11.SH OPTIONS
12.TP
13-showme
14Do not invoke the underlying compiler.  Instead, show the command line
15that would be executed to compile the program.  \fBNOTE:\fR If a
16non-filename argument is passed on the command line, the \fI-showme\fR
17option will \fInot\fR display any additional flags.  For example, both
18"mpicxx --showme" and "mpicxx --showme my_source.c" will show all the
19wrapper-supplied flags.  But "mpicxx -showme -v" will only show the
20underlying compiler name and "-v".
21.TP
22-showme:compile
23Do not invoke the underlying C++ compiler.  Instead, show the
24compiler flags that would be supplied to the C++ compiler.
25.TP
26-showme:link
27Do not invoke the underlying C++ compiler.  Instead, show the linker
28flags that would be supplied to the C++ compiler.
29.PP
30See the man page for your underlying compiler for other options that
31can be passed through mpicxx
32.
33.
34.SH DESCRIPTION
35.PP
36Conceptually, the role of these commands is quite simple:
37transparently add relevant compiler and linker flags to the user's
38command line that are necessary to compile / link Open MPI
39programs, and then invoke the underlying compiler to actually perform
40the command.
41.
42.PP
43As such, these commands are frequently referred to as "wrapper"
44compilers because they do not actually compile or link applications
45themselves; they only add in command line flags and invoke the
46back-end compiler.
47.
48.
49.SS Background
50Open MPI is comprised of three software layers: OPAL (Open Portable
51Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
52There are wrapper compilers for each layer; each layer's wrapper only
53links in the libraries relevant for that layer.  Specifically, each
54layer provides the following wrapper compilers:
55.
56.TP 4
57OPAL
58\fIopalcc\fR and \fIopalc++\fR
59.
60.TP
61ORTE
62\fIortecc\fR and \fIortec++\fR
63.
64.TP
65OMPI
66\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
67case-senstive file systems), \fImpif77\fR, and \fImpif90\fR.  Note
68that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
69underlying C++ compiler with the same options.  All are provided as
70compatibility with other MPI implementations.
71.
72.PP
73The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR)
74will be inoperative and will return an error on use if Fortran 77 /
75Fortran 90 support was not built into the MPI layer.
76.
77.
78.SS Overview
79\fImpicxx\fR is a convenience wrappers for the underlying
80C++ compiler.  Translation of an Open MPI program requires the
81linkage of the Open MPI-specific libraries which may not reside in
82one of the standard search directories of ld(1).  It also often
83requires the inclusion of header files what may also not be found in a
84standard location.
85.
86.PP
87\fImpicxx\fR passes its arguments to the underlying C++
88compiler along with the -I, -L and -l options required by Open MPI
89programs.
90.
91.PP
92The Open MPI Team \fIstrongly\fR encourages using the wrapper
93compilers instead of attempting to link to the Open MPI libraries
94manually.  This allows the specific implementation of Open MPI to
95change without forcing changes to linker directives in users'
96Makefiles.  Indeed, the specific set of flags and libraries used by
97the wrapper compilers depends on how Open MPI was configured and
98built; the values can change between different installations of the
99same version of Open MPI.
100.
101.PP
102Indeed, since the wrappers are simply thin shells on top of an
103underlying compiler, there are very, very few compelling reasons
104\fInot\fR to use \fImpicxx\fR.  When it is not possible to use the
105wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
106options should be used to determine what flags the wrappers would have
107used.  For example:
108.
109.PP
110shell$ cc -c file1.c `mpicc -showme:compile`
111.
112.PP
113shell$ cc -c file2.c `mpicc -showme:compile`
114.
115.PP
116shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
117.
118.
119.SH NOTES
120.PP
121It is possible to make the wrapper compilers multi-lib aware.  That
122is, the libraries and includes specified may differ based on the
123compiler flags specified (for example, with the GNU compilers on
124Linux, a different library path may be used if -m32 is seen versus
125-m64 being seen).  This is not the default behavior in a standard
126build, but can be activated (for example, in a binary package
127providing both 32 and 64 bit support).  More information can be found
128at:
129.PP
130  https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
131.
132.
133.SH FILES
134.PP
135The string that the wrapper compilers insert into the command line
136before invoking the underlying compiler are stored in a text file
137created by Open MPI and installed to
138\fI$pkgdata/mpicxx-wrapper-data.txt\fR, where \fI$pkgdata\fR
139is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
140installation directory of Open MPI.
141.
142.PP
143It is rarely necessary to edit this file, but it can be examined to
144gain insight into what flags the wrappers are placing on the command
145line.
146.
147.
148.SH ENVIRONMENT VARIABLES
149.PP
150By default, the wrappers use the compilers that were selected when
151Open MPI was configured.  These compilers were either found
152automatically by Open MPI's "configure" script, or were selected by
153the user in the CC, CXX, F77, and/or FC environment variables
154before "configure" was invoked.  Additionally, other arguments
155specific to the compiler may have been selected by configure.
156.
157.PP
158These values can be selectively overridden by either editing the text
159files containing this configuration information (see the \fBFILES\fR
160section), or by setting selected environment variables of the
161form "OMPI_value".
162.
163.PP
164Valid value names are:
165.
166.TP
167CPPFLAGS
168Flags added when invoking the preprocessor (C or C++)
169.
170.TP
171LDFLAGS
172Flags added when invoking the linker (C, C++, or Fortran)
173.
174.TP
175LIBS
176Libraries added when invoking the linker (C, C++, or Fortran)
177.
178.TP
179CC
180C compiler
181.
182.TP
183CFLAGS
184C compiler flags
185.
186.TP
187CXX
188C++ compiler
189.
190.TP
191CXXFLAGS
192C++ compiler flags
193.
194.
195.TP
196F77
197Fortran 77 compiler
198.
199.TP
200FFLAGS
201Fortran 77 compiler flags
202.
203.
204.TP
205FC
206Fortran 90 compiler
207.
208.TP
209FCFLAGS
210Fortran 90 compiler flags
Note: See TracBrowser for help on using the repository browser.