This man page contains the prototype and descriptions for both
MPI_TYPE_INDEXED and MPI_TYPE_CREATE_HINDEXED. Bastian Beischer
noticed that the type of the array_of_displacements argument in the
MPI_TYPE_CREATE_HINDEXED was wrong.
Also, a minor update to MPI_Type_hindexed.3in: indicate that the C
type is MPI_Aint and the Fortran type is INTEGER (which is why this
function was deprecated and then deleted by the MPI Forum!).
cmr=v1.8.1:reviewer=dgoodell
This commit was SVN r31411.
It's a singular filename because there's only 1 interface in the
file. Also, r31375 missed updating the name in a few places, and
broke the build for compilers that supported the mpi_f08 interface.
This commit was SVN r31389.
The following SVN revision numbers were found above:
r31375 --> open-mpi/ompi@fe1935de14
Since we only builds the "small" size of the "mpi" module any more, it
does not take a long time to compile. So remove the warning that is
emitted.
Also remove a vestage of Windows support that was leftover in the
Fortran area (i.e., building mpi.obj).
This commit was SVN r31374.
Differentiate the pre-defined attribute and conversion interfaces into
those with INTEGER handles and those with TYPE(MPI_*) handles.
Refs trac:4157
cmr=v1.8.1:ticket=trac:4512
This commit was SVN r31372.
The following Trac tickets were found above:
Ticket 4157 --> https://svn.open-mpi.org/trac/ompi/ticket/4157
Ticket 4512 --> https://svn.open-mpi.org/trac/ompi/ticket/4512
Use type(c_funptr) to "cast" the fortran function pointers to
arbitrary C pointers. In C, we then pick up the appropriate function
pointer type.
Tested with ifort 14.0.2 and gfortran 4.9 snapshot (which is what
identified that the previous method of passing function pointers was
not Fortran'08-compliant).
Refs trac:4157
This commit was SVN r31371.
The following Trac tickets were found above:
Ticket 4157 --> https://svn.open-mpi.org/trac/ompi/ticket/4157
Junchao Zhang pointed out to me that we had the wrong parameter name
and string length specification for the "version" parameter. This
matters because Fortran allows passing by parameter name
(vs. parameter ordering). Specifically, we had the interface as:
{{{
subroutine MPI_Get_library_version_f08(name,resultlen,ierror)
character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name
...etc.
}}}
but it should be:
{{{
subroutine MPI_Get_library_version_f08(version,resultlen,ierror)
character(len=MPI_MAX_LIBRARY_VERSION_STRING), intent(out) :: version
...etc.
}}}
Thankfully, MPI_MAX_PROCESSOR_NAME and MPI_MAX_LIBRARY_VERSION_STRING
are both 255 in OMPI, so there's no ABI issue caused by changing the
length from MMPN --> MMLVS.
The ABI is also unaffected by the parameter name change: if you
compile/link an MPI application calling MPI_GET_LIBRARY_VERSION with
1.8, it'll still run-time link with this change.
However, if an MPI program compiled using parameter name passing with
the old/incorrect parameter name ("name"), it won't be able to compile
with the new/correct parameter name ("version"). But this will only
happen for an incorrect MPI application (because the MPI-3 mandated
parameter name is "version", not "name"), so they deserve what they
get.
cmr=v1.8.1:reviewer=dgoodell
This commit was SVN r31365.
some of the collective modules, the shared memory and the profiling
interface. I left out VT, dynamic fcoll and seq rmaps.
cmr=v1.8.1:reviewer=jsquyres:subject=silence Coverity reported warnings
This commit was SVN r31309.
Also, since I put some of the macros for these silent/verbose rules up
in the top-level Makefile.man-page-rules file, I renamed it to
Makefile.ompi-rules.
I've had this sitting around for a while; now seems like as good a
time as any to commit it.
This commit was SVN r31271.
Also added some missing values and sentinels.
cmr=v1.8:ticket=trac:4470
This commit was SVN r31263.
The following SVN revision numbers were found above:
r31260 --> open-mpi/ompi@69036437b7
The following Trac tickets were found above:
Ticket 4470 --> https://svn.open-mpi.org/trac/ompi/ticket/4470
These parameters should not be marked as INTENT(OUT) (they aren't in
the MPI-3 standard).
This commit was SVN r31056.
The following Trac tickets were found above:
Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
* Several parameters should not be marked as INTENT(OUT) (they aren't in
the MPI-3 standard).
* Added missing PMPI F08 OMPI interfaces
This commit was SVN r31049.
The following Trac tickets were found above:
Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
These parameters should not be marked as INTENT(OUT) (they aren't in
the MPI-3 standard).
This commit was SVN r31048.
The following Trac tickets were found above:
Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
- Return an error if the caller specified both MPI_MODE_NOPRECEDE and
MPI_MODE_NOSUCCEED to MPI_Win_fence.
- Return an error if the caller attempts to enter an active target
epoch while already in a passive target epoch.
- End an active target epoch if MPI_Win_fence is called with
MPI_MODE_NOSUCCEED.
cmr=v1.7.5:ticket=trac:4382
This commit was SVN r31043.
The following Trac tickets were found above:
Ticket 4382 --> https://svn.open-mpi.org/trac/ompi/ticket/4382
See https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/377
This ticket adds the following functions to the standard:
- MPI_T_cvar_get_index, MPI_T_pvar_get_index, and MPI_T_category_get_index
The ticket has passed and the functions are part of MPI-3.1 that will
be released sometime later this year. In Open MPI the functions expose
existing internal functionality so they are low-risk to add to 1.8.0. I
will leave it up to Ralph whether he wants to accept these into 1.8.
cmr=v1.8:reviewer=rhc
This commit was SVN r31037.
We no longer specify interfaces with choice buffers in the TKR "mpi"
module implementation -- MPI-3 prohibits it (see r30169 and r30170 for
more details).
cmr=v1.7.5:ticket=trac:4372
This commit was SVN r31033.
The following SVN revision numbers were found above:
r30169 --> open-mpi/ompi@759ee33fd4
r30170 --> open-mpi/ompi@776f6144af
The following Trac tickets were found above:
Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
Issue found by Absoft MTT runs.
cmr=v1.7.5:ticket=trac:4372
This commit was SVN r31028.
The following Trac tickets were found above:
Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
Issue found by Absoft MTT runs.
cmr=v1.7.5:ticket=trac:4372
This commit was SVN r31027.
The following Trac tickets were found above:
Ticket 4372 --> https://svn.open-mpi.org/trac/ompi/ticket/4372
I have only checked that these bindings compile without warnings. They
appear to work with both intel's compilers and gfortran.
cmr=v1.7.5:reviewer=jsquyres
This commit was SVN r31010.
Optimization of the MPI_Dims_create function which omits the usage of pre
calculated prime numbers and factorize directly as discussed at the developer
list.
cmr=v1.7.5:ticket=4217:reviewer=jsquyres
This commit was SVN r30695.
The following Trac tickets were found above:
Ticket 4217 --> https://svn.open-mpi.org/trac/ompi/ticket/4217
Freeprocs variable was obtained from nnodes, so check the value of nnodes at
the begin in the MPI_PARAM_CHECK code section instead as discussed at the
developer list.
cmr=v1.7.5:reviewer=jsquyres:subject=move parameter check to begin
jsquyres, please review this CMR. Thanks.
This commit was SVN r30694.
It turns out that ASYNCHRONOUS should not be used with ignore TKR
dummy parameters (some compilers will [correctly] warn about this).
Many thanks to Rolf Rabenseifner and Christoph Niethammer, who noticed
the problem.
Submitted by Rolf Rabenseifner, reviewed by Jeff.
cmr=v1.7.5:reviewer=ompi-rm1.7:subject=Remove ASYNCHRONOUS from the ignore TKR mpi_f08 module.
This commit was SVN r30665.
just plain wrong (i.e., it gives wrong answers).
When time permits, perhaps we can put in a better algorithm for
MPI_DIMS_CREATE (Andreas Schäfer mentioned that nnodes can now be on
the order of millions, and the current algorithm is... inefficient, at
best).
This commit was SVN r30606.
The following SVN revision numbers were found above:
r30539 --> open-mpi/ompi@fb67d98867
r30540 --> open-mpi/ompi@4417ed2133
* Fix some comments
* Fix some spacing in the non-verbose "make" output
* Make javadoc non-verbose output like other non-verbose output
* Remove the use of JAVA_CLASS_FILES; it wasn't correct any way (it
both derived names from JAVA_SRC_FILES ''and'' used mpi/*.class, so
many files were listed twice)
* Move the generation of javadoc files to "make" time (vs. "make
install" time) by putting the "doc" subdirectory in BUILT_SOURCES
* Make doc dependent upon mpi/MPI.class, not mpi.jar -- we only need
the classes to exist, not the final jarfile.
* Make jdoc-install dependent upon a real build artifact (the doc
dir), not an artificial name that will never exist (jdoc)
* Separate the removal of the doc (and mpi) subdirectories during
"make clean" off into the clean-local target, because CLEANFILES
can really only had ''files'' added to it.
These changes also fix parallel builds.
cmr=v1.7.5:ticket=trac:4214
This commit was SVN r30547.
The following SVN revision numbers were found above:
r30531 --> open-mpi/ompi@6ca8e68e4b
The following Trac tickets were found above:
Ticket 4214 --> https://svn.open-mpi.org/trac/ompi/ticket/4214
primes. This considerably reduces the computational load when
freeprocs is large.
cmr=v1.7.5:reviewer=hjelmn:subject=MPI_Dims_create optimization
This commit was SVN r30539.
MPI_SUBARRAYS_SUPPORTED and MPI_ASYNC_PROTECTS_NONBLOCKING in the F08
descriptor prototype.
This commit fixes the F08 descriptor prototype in the same was as
r30519 did for the non-F08-descriptor implementation.
Thanks to Mike Dubman for finding the issue.
cmr=v1.7.4:reviewer=ompi-rm1.7
This commit was SVN r30532.
The following SVN revision numbers were found above:
r30519 --> open-mpi/ompi@caaab7e8a3
Ensure that these two flags are in all of mpif.h, the mpi module, and
the mpi_f08 module. Thanks to Rolf Rabenseifner for pointing out the
issue.
cmr=v1.7.4:reviewer=ompi-rm1.7
This commit was SVN r30519.
The dist graph functions are on the trunk and have long-since been
added to the relevant lists.
cmr=v1.7.5:ticket=4163
This commit was SVN r30382.
The following Trac tickets were found above:
Ticket 4163 --> https://svn.open-mpi.org/trac/ompi/ticket/4163
The attribute and conversion callback subroutine interfaces
are used by all 3 modules, and belong in the fortran/base directory,
not the directory of a specific module.
Also clean up some comments.
cmr=v1.7.4:ticket=4162
This commit was SVN r30378.
The following Trac tickets were found above:
Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
Also fix the interfaces that have logical parameters (the
non-profiling versions were added/fixed a long time ago; it looks like
the profiling versions were inadvertantly skipped).
cmr=v1.7.4:ticket=4162
This commit was SVN r30377.
The following Trac tickets were found above:
Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
Somehow these interfaces were missed when adding these interfaces.
cmr=v1.7.4:ticket=4162
This commit was SVN r30376.
The following Trac tickets were found above:
Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
r30273 made the use of the Fortran "protected" keyword be
compiler-specific (i.e., configure/macro-ized it). But it
inadvertantly added the use of "protected" to some sentinel constants
that should not be protected (e.g., MPI_STATUS_IGNORE).
This commit reverts the addition of "protected" to the constants that
should not be protected.
cmr=v1.7.4:subject=Rollup of Fortran fixes for v1.7.4
This commit was SVN r30375.
The following SVN revision numbers were found above:
r30273 --> open-mpi/ompi@5f17bc3c2c
Add a configure test to see if the Fortran compiler supports the
PROTECTED keyword. If it does, use in mpi-f08-types.F90 (via a macro
defined in configure-fortran-output-bottom.h).
This is needed to support the PGI 9 Fortran compiler, which does not
support the PROTECTED keyword.
Note that regardless of whether we want to support the PGI 9 Fortran
compiler + mpi_f08, we need to correctly detect whether PROTECTED
works or not, and then use that determination as a criteria for
building the mpi_f08 module. Previously, mpi-f08-types.F90 used
PROTECTED unconditionally, and we didn't test for it in configure. So
if a compiler (e.g., PGI 9) supported everything else but didn't
support PROTECTED, it would try to compile the mpi_f08 stuff and choke
on the use of PROTECTED.
Refs trac:4093
This commit was SVN r30273.
The following Trac tickets were found above:
Ticket 4093 --> https://svn.open-mpi.org/trac/ompi/ticket/4093
This configure option was only relevant when we were generating TKR
"use mpi" interfaces for MPI subroutines with choice buffers. Now
that we aren't, the only interface that needs to accept a choice
buffer is MPI_SIZEOF (which we have to provide).
And since there's now only several dozen interfaces in the "mpi" TKR
module, there's no reason to not generate ''all'' possible array rank
values (when there were thousands of interfaces, generating 4-vs-7
array ranks per interface per type was a big deal). The default used
to be 4; now we can just hard-code it to 7, the max possible value for
Fortran 2003 (I think the max was raised ?to 11? in F2008, but let's
not go there for now).
cmr=v1.7.5:reviewer=dgoodell:subject=Remove even more dead Fortran configury
This commit was SVN r30257.
LIBADD libmpi.la
cmr=v1.7.4:reviewer=brbarret:subject=Add libmpi to libmpi_usempif08_LIBADD
This commit was SVN r30245.
The following SVN revision numbers were found above:
r30244 --> open-mpi/ompi@7015343951
TKR LIBADDs libmpi_mpifh; there is no library for libmpi_usempi ignore
TKR).
Refs trac:4085
This commit was SVN r30244.
The following Trac tickets were found above:
Ticket 4085 --> https://svn.open-mpi.org/trac/ompi/ticket/4085
http://www.open-mpi.org/community/lists/users/2014/01/23327.php
Revert the Fortran mpi module default size to "small", meaning that we
won't provide interfaces for MPI subroutines that take a choice buffer
any more. The short version is that MPI-3 p610:34-41 disallows it.
This commit simply removes all these subroutines from the build
process (i.e., remove them from nodist_libmpi_usempi_la_SOURCES).
Since MPI-3 actually forbids providing these interfaces, I'll do a
second commit to actually remove all the scripts and associated
Makefile.am junk.
cmr=v1.7.4:reviewer=dgoodell:subject=Remove choice buffer interfaces from Fortran mpi module
This commit was SVN r30169.
upcoming GCC/gfortran 4.9's ignore TKR interface.
This was originally committed in a side mercurial repo, but I sadly
completely forgot about it until Tobias reminded me.
cmr=v1.7.5:reviewer=dgoodell:subject=Add support for gfortran 4.9 Fortran ignore TKR
This commit was SVN r30152.
pkg{data,lib,includedir}, use our own ompi{data,lib,includedir}, which is
always set to {datadir,libdir,includedir}/openmpi. This will keep us from
having help files in prefix/share/open-rte when building without Open MPI,
but in prefix/share/openmpi when building with Open MPI.
This commit was SVN r30140.
Fix comm_spawn on a single host - with the new default mapping scheme, we were incorrectly computing the number of procs to put on the node.
Refs trac:4003
This commit was SVN r30033.
The following Trac tickets were found above:
Ticket 4003 --> https://svn.open-mpi.org/trac/ompi/ticket/4003
libmpi.<OPAL_DYN_LIB_SUFFIX>, where OPAL_DYN_LIB_SUFFIX was determined
by configure.
Thanks to Ömer Demirel for reporting the issue.
Refs trac:3905.
This commit was SVN r29676.
The following Trac tickets were found above:
Ticket 3905 --> https://svn.open-mpi.org/trac/ompi/ticket/3905
This line results in a compile error when you configure thusly:
./configure CC=icc CXX=icpc FC=ifort FCFLAGS=-i8
cmr=v1.7.4:reviewer=hjelmn:subject=fix Fortran compile with -i8
This commit was SVN r29602.
Fixes:
- Segmentation fault when using watermark variables.
- Segmentation fault when using a handle bound to a no longer valid
performance variable.
- Incorrect return codes from MPI_T_pvar_* functions.
cmr=v1.7.4:reviewer=jsquyres
This commit was SVN r29481.
Thanks to Charles Gerlach for identifying the issue.
Oddly, this issue exists in trunk and v1.7, but ''not'' in the v1.6
tree (!).
cmr=v1.7.4:reviewer=hjelmn
This commit was SVN r29463.
Also, removed an MPI_Aint snuck through (which is a C type, not a Fortran
type). Oddly, the Intel compiler complained about neither of these
issues. :-\
This commit was SVN r29411.
Since this header is included in .F90 files (which are preprocessed,
vs. .f90 files, which are *not* preprocessed), we don't want to
accidentally start C-style comments, which are recognized by some
Fortran compiler preprocessors (e.g., Absoft).
This commit was SVN r29394.
So just move the comment to the prior line, and it's all good. This
is obviosuly not *necessary*, but it helps cut down on warning noise.
This commit was SVN r29393.
BIND(C) doesn't let us have LOGICAL parameters, so we have to be
creative in how we invoke back-end ompi_*_f() C functions.
Additionally, the mpi_f08 type for MPI_Status presented some
difficulties, too.
See the large comment in
ompi/mpi/fortran/use-mpi-f08/mpi-f-interfaces-bind.h that explains
this in much more detail.
This commit was SVN r29384.
There is no "MPI_Aint" in the Fortran interface. Surprisingly, the
Intel compiler didn't choke on this, but the Absoft compiler did.
This commit was SVN r29371.
the fortran handle. Use a seperate opal_pointer_array to keep track of
the fortran handles of communicators.
This commit also fixes a bug in ompi_comm_idup where the newcomm was not
set until after the operation completed.
cmr=v1.7.4:reviewer=jsquyres:ticket=trac:3796
This commit was SVN r29342.
The following Trac tickets were found above:
Ticket 3796 --> https://svn.open-mpi.org/trac/ompi/ticket/3796
Thanks to Jeff for finding and fixing compilation issues with
the new fortran bindings.
cmr=v1.7.4:reviewer=jsquyres:ticket=trac:3796
This commit was SVN r29335.
The following Trac tickets were found above:
Ticket 3796 --> https://svn.open-mpi.org/trac/ompi/ticket/3796
MPI_Comm_idup.
As part of this work I implemented a basic request scheduler in
ompi/comm/comm_request.c. This scheduler might be useful for more
than just communicator requests and could be moved to ompi/request
if there is a demand. Otherwise I will leave it where it is.
Added a non-blocking version of ompi_comm_set to support ompi_comm_idup.
The call makes a recursive call to comm_dup and a non-blocking version
was needed. To simplify the code the blocking version calls the nonblocking
version and waits on the resulting request if one exists.
cmr=v1.7.4:reviewer=jsquyres:ticket=trac:3796
This commit was SVN r29334.
The following Trac tickets were found above:
Ticket 3796 --> https://svn.open-mpi.org/trac/ompi/ticket/3796
Use the same trick for send/recvtypes as we did in r29298 for
![I]Alltoallw. Also, add all prototypes for all the back-end
ompi_neighbor_*_f functions.
Refs trac:3802
This commit was SVN r29299.
The following SVN revision numbers were found above:
r29298 --> open-mpi/ompi@0acebc0a1f
The following Trac tickets were found above:
Ticket 3802 --> https://svn.open-mpi.org/trac/ompi/ticket/3802
Use proper array types for the sendtypes and recevtypes params in the
definition of these subroutines (since they're prototyped to be array
parameters in the module). See the comment in the code for a more
complete explanation.
Note that after talking to Craig Rasumussen, he says that this is
fairly common practice in the Fortran community (i.e., pass a scalar
that is part of an array to effectively pass an offset into that
array, since Fortran passes by reference). So this might be a hack,
but it's a commonly-accepted hack.
Reviewed by Craig Rasmussen.
cmr=v1.7.3:subject=Fix [I]Alltoallw mpi_f08 wrapper functions
This commit was SVN r29298.
arrays.
The MPI 3.0 standard added const to all in buffers in the C bindings. This
commit adds the const keyword and in most cases casts const away. We will
eventually should go through and update the various interfaces (coll, pml,
io, etc) to take the const keyword. The group, comm, win, and datatype
interfaces have been updated with const.
cmr=v1.7.4:ticket=trac:3785:reviewer=jsquyres
This commit was SVN r29266.
The following Trac tickets were found above:
Ticket 3785 --> https://svn.open-mpi.org/trac/ompi/ticket/3785
Blocking versions are simple linear algorithms implemented in coll/basic. Non-
blocking versions are from libnbc 1.1.1. All algorithms have been tested with
simple test cases.
cmr=v1.7.4:reviewer=jsquyres
This commit was SVN r29265.
Includes all MPI functions supported by Open MPI, including MPI-3
functions (as of about 2 weeks ago). Many changes compared to the
prior generation of Java bindings; not much is left from the prior
generation, actually. The changes include (but are not limited to):
* Add support for more than just a subset of MPI-1 functions
* Use typical Java case for symbol names
* Support Java Direct buffers (giving darn-near "native C"
performance)
* Support "type struct" better than the prior generation
* Make more of an effort for the Java bindings to be a thin layer
over the back-end C bindings
* ...and more
A proper README with more information about what is supported, how to
use these bindings, etc. will be committed shortly.
This commit was SVN r29263.
The intercomm "merge" function can create a linkage between procs that was not reflected anywhere in a modex, and so at least some of the procs in the resulting communicator don't know how to talk to some of the new communicator's peers.
For example, consider the case where:
1. parent job A comm_spawns a process (job B) - these processes exchange modex and can communicate
2. parent job A now comm_spawns another process (job C) - again, these can communicate, but the proc in C knows nothing of B
3. do an intercomm merge across the communicators created by the two comm_spawns. This puts B and C into the same communicator, but they know nothing about how to talk to each other as they were not involved in any exchange of contact info. Hence, collectives on that communicator now fail.
This fix adds an API to the ompi/dpm framework that (a) exchanges the modex info across the procs in the merge to ensure all procs know how to communicate, and (b) calls add_procs to give the btl's a chance to select transports to any new procs.
cmr:v1.7.3:reviewer=jsquyres
This commit was SVN r29166.
The following Trac tickets were found above:
Ticket 2904 --> https://svn.open-mpi.org/trac/ompi/ticket/2904
is enabled and fix a bug in the handling of watermark performance
variables.
cmr=v1.7.3:ticket=trac:3725:reviewer=jsquyres
This commit was SVN r29068.
The following Trac tickets were found above:
Ticket 3725 --> https://svn.open-mpi.org/trac/ompi/ticket/3725