1
1
Граф коммитов

103 Коммитов

Автор SHA1 Сообщение Дата
f6f24a4f67 build: Custom libmpi(_FOO) name option in configure
* Add a configure time option to rename libmpi(_FOO).*
   - `--with-libmpi-name=STRING`
 * This commit only impacts the installed libraries.
   Internal, temporary libraries have not been renamed to limit the
   scope of the patch to only what is needed.

For example:
```shell
shell$ ./configure --with-libmpi-name=wookie
...
shell$ find . -name "libmpi*"
shell$ find . -name "libwookie*"
./lib/libwookie.so.0.0.0
./lib/libwookie.so.0
./lib/libwookie.so
./lib/libwookie.la
./lib/libwookie_mpifh.so.0.0.0
./lib/libwookie_mpifh.so.0
./lib/libwookie_mpifh.so
./lib/libwookie_mpifh.la
./lib/libwookie_usempi.so.0.0.0
./lib/libwookie_usempi.so.0
./lib/libwookie_usempi.so
./lib/libwookie_usempi.la
shell$
```
2016-09-29 21:47:24 -05:00
cda094afc7 mpi_f08: correctly implements MPI_{COMM,TYPE,WIN}_{DUP,NULL_{COPY,DELETE}}_FN
Fixes open-mpi/ompi#1323
2016-02-02 13:38:01 +09:00
728a97c558 use-mpi-f08: remove duplicates from Makefile.am 2016-02-02 13:33:07 +09:00
704f14f91e f08: do not BIND(C) to subroutines with LOGICAL parameters
Thanks Paul Romano for reporting this issue.
2016-01-26 13:56:24 +09:00
1105634ca1 mpi_f08: fix MPI_WIN_{ATTACH,DETACH} bindings
fixes INTENT from open-mpi/ompi@9600e2bc63

Thanks Jeff for pointing this !
2015-10-26 10:02:45 +09:00
2b9c9f3093 Fortran: add missing MPI_AINT in mpi_f08 module 2015-10-14 17:32:01 -07:00
291a464efb configury: remove the --enable-mpi-profiling option
and directly call the PMPI_* symbols from C and Fortran bindings
2015-10-13 08:52:35 +09:00
596557e61b Fortran: update a comment
Split the list of subroutines into cases #1 and #2, just for clarity.
2015-08-31 03:10:09 -07:00
c8d4751ae6 Correct the wrong "Name Binding" of functions 2015-08-28 03:28:09 -04:00
99730f798b fortran: (try to) align C objects used by Fortran
Fortran uses objects (ompi_f08_mpi_comm_world, mpi_fortran_bottom,, ...) that are defined in C.
Some compilers have different requirements on how these objects should be aligned.
Smaller alignment in C can lead to several confusing warnings from the linker, so try to
find the alignment expected by Fortran compiler, and inform the C compiler.
2015-08-18 14:01:20 +09:00
9c77c6b66d fortran: fix f08 bindings
only define the unique fortran symbol depending on
 - CAPS
 - PLAIN
 - SINGLE_UNDERSCORE
 - DOUBLE_UNDERSCORE
and bind the f08 symbol to the uniquely defined C symbol.

Use real data structures to make the code simpler.
(perl script written by Jeff)
2015-07-27 16:28:57 +09:00
7af5238595 f08: misc Makefile fixes 2015-07-27 16:19:44 +09:00
95c144c4b6 make the f08 interface actually compile. 2015-07-09 10:58:14 -05:00
19994ff60d add fortran interfaces to the new nb collective I/O functions 2015-07-09 10:58:14 -05:00
d5e16839e9 mpi_f08: restore C/Fortran compatibility with F08 BUFFER_DETACH
The C int/Fint interoperability code was erroneously removed when this
function was moved to the use-mpi-f08 directory.
2015-07-08 03:55:50 -07:00
8ff60c47cc mpi_f08: move the f08 version of buffer_detach to use-mpi-f08
@ggouaillardet was right -- we should have put the
ompi_buffer_detach_f08() function in the use-mpi-f08 directory to
begin with.  Putting it in the mpif-h directory made it complicated as
to whether the function would be built or not (e.g., whether weak
symbols were supported or not, whether the profiling layer was
disabled or not, ...etc.).

Just put it in the use-mpi-f08 directory and always build it (when the
mpi_f08 module is built, of course), and keep it simple.
2015-07-07 07:38:09 -07:00
bd94da7de4 mpi_f08: fix MPI_BUFFER_DETACH interfaces
Add an mpi_f08-specific implementation for MPI_BUFFER_DETACH.

Per MPI-3.1:3.6, p45, the buffer argument is ignored in
MPI_BUFFER_DETACH for mpif.h and the mpi module.  But in the mpi_f08
module, the buffer argument is treated like it is in the C binding.
2015-07-03 08:56:34 -07:00
fa50e0d712 mpi_f08: fix typo in binding name
replace MPI_Win_flush_all_local with MPI_Win_flush_local_all
2015-07-02 15:47:38 +09:00
c4025f55a4 mpi_f08: add MPI_Type_size_x and misc PMPI_xxx bindings 2015-06-30 16:31:14 +09:00
18fd30a173 mpi_f08: fix MPI_FREE_MEM binding 2015-06-30 14:19:50 +09:00
13950c3ec1 mpi_f08: fix MPI_WIN_{ATTACH,DETACH} bindings
fixes INTENT from open-mpi/ompi@9600e2bc63
2015-06-30 12:28:23 +09:00
86bbdd2ebe mpi_f08: fix MPI_COMM_SPAWN_MULTIPLE binding 2015-06-30 11:47:45 +09:00
fc69c0be24 mpi_f08: fix MPI_BUFFER_DETACH binding 2015-06-29 09:22:30 -07:00
98bf02485d fortran: add Fortran 2008 bindings for attr_fn (MPI_COMM_DUP_FN and friends)
Fixes open-mpi/ompi#460
2015-06-26 15:21:30 +09:00
458cd9d611 Merge pull request #629 from hjelmn/aint_math
Add support for MPI-3.1 MPI_Aint functions
2015-06-24 10:52:44 -07:00
258d1aa160 mpi-f08: corrections to new MPI_Aint_* subroutines
(cherry picked from commit 8f252e65b02bfe20cacee0ece8c835246eea3bd9)
2015-06-24 10:42:01 -07:00
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
062de45899 Add support for MPI-3.1 MPI_Aint functions
This commit adds support for MPI_Aint_add and MPI_Aint_diff. These
functions are implemented as macros in C (explicitly allowed by
MPI-3.1). The fortran implementations are a similar mess to the
MPI_Wtime implementations.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-06-09 09:31:33 -06:00
bf38f82dc2 MPI_Win_{get,set}_info: add missing files
fixes commit open-mpi/ompi@558d34a5c3
2015-06-03 09:04:04 +09:00
7179d442c0 MPI_Win_{attach,detach}: add missing files
fixes commit open-mpi/ompi@9600e2bc63
2015-06-03 09:02:50 +09:00
1d8ce96305 MPI_Win_Create_dynamic: add missing files
fixes commit open-mpi/ompi@f45244d5a5
2015-06-03 09:00:04 +09:00
558d34a5c3 MPI_Win_{get,set}_info : add Fortran bindings 2015-06-02 17:45:52 +09:00
9600e2bc63 MPI_Win_{attach,detach} : add Fortran bindings 2015-06-02 17:45:44 +09:00
f45244d5a5 MPI_Win_create_dynamic : add Fortran bindings 2015-06-02 17:45:32 +09:00
63c7520273 use-mpi-f08/Makefile.am: also link in libmpi_mpifh.la
Per mail from Macro Atzeri, we also need to link in libmpi_mpifh.la,
lest we exhaust relative offset addressing (e.g., in 32 bit builds).

See http://www.open-mpi.org/community/lists/devel/2015/04/17304.php.
2015-04-22 14:22:36 -07:00
cab1379dfb Fortran: only emit real16 and complex32 if supported
This is the master version of @ggouaillardet's patch from
open-mpi/ompi-release#148 (there was a minor conflict to fix and
several fuzzings of line numbers).
2015-01-06 09:47:26 -08:00
9020a1c1f6 Add missing Fortran binding for Win_allocate. 2014-10-17 13:22:54 +02:00
c9ea7f2732 fortran: ensure that sizeof_f08.h is built before mpi-f08.lo
mpi-f08.F90 includes sizeof_f08.h, so we need to add a Makefile
dependency to ensure that sizeof_f08.h is built first.

Refs trac:4917

This commit was SVN r32789.

The following Trac tickets were found above:
  Ticket 4917 --> https://svn.open-mpi.org/trac/ompi/ticket/4917
2014-09-24 23:59:18 +00:00
d7eaca83fa Fortran: Fix MPI_SIZEOF. What a disaster. :-(
What started as a simple ticket ended up reaching the way up to the
MPI Forum.
    
It turns out that we are supposed to have MPI_SIZEOF for all Fortran
interfaces: mpif.h, the mpi module, and the mpi_f08 module.
    
It further turns out that to properly support MPI_SIZEOF, your Fortran
compiler *has* support the INTERFACE keyword and ISO_FORTRAN_ENV.  We
can't use "ignore TKR" functionality, because the whole point of
MPI_SIZEOF is that the implementation knows what type was passed to it
("ignore TKR" functionality, by definition, throws that information
away).  Hence, we have to have an MPI_SIZEOF interface+implementation
for all intrinsic types, kinds, and ranks.

This commit therefore adds a perl script that generates both the
interfaces and implementations for MPI_SIZEOF in each of mpif.h, the
mpi module, and mpi_f08 module (yay consolidation!).

The perl script uses the results of some new configure tests:

* check if the Fortran compiler supports the INTERFACE keyword
* check if the Fortran compiler supports ISO_FORTRAN_ENV
* find the max array rank (i.e., dimension) that the compiler supports

If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV,
then we'll build the MPI_SIZEOF interfaces.  If not, we'll skip
MPI_SIZEOF in mpif.h and the mpi module.  Note that we won't build the
mpi_f08 module -- to include the MPI_SIZEOF interfaces -- if the
Fortran compiler doesn't support INTERFACE, ISO_FORTRAN_ENV, and a
whole bunch of ther modern Fortran stuff.

Since MPI_SIZEOF interfaces are now generated by the perl script, this
commit also removes all the old MPI_SIZEOF implementations (which were
laden with a zillion #if blocks).

cmr=v1.8.3

This commit was SVN r32764.
2014-09-19 13:44:52 +00:00
0f29f222f2 fortran: remove 2 unused files
As noted in the comments of these files, they aren't used.  Instead,
the Fortran interfaces for WTICK/WTIME just BIND(C) invoke the
back-end C functions (yay BIND(C)!).  Hence, there's no need to keep
these old wrapper files around any more.

cmr=v1.8.3

This commit was SVN r32751.
2014-09-17 21:49:24 +00:00
3e78f7878c fortran: add missing bindings for WIN_SYNC, WIN_LOCK_ALL,
WIN_UNLOCK_ALL

cmr=v1.8.2:reviewer=hjelmn

This commit was SVN r32535.
2014-08-14 20:27:30 +00:00
70da69a4f3 Cleanup and ignore Intel compiler build products
This commit was SVN r32463.
2014-08-08 16:13:43 +00:00
537aa674a5 fortran: remove a duplicate listing of this file
This fixes some duplicate symbols, once the .o files for the modules
were restored into the library (some compilers need the .o files, some
don't (!)).

Also, remove trailing whitespace.  :-)

This commit was SVN r32386.
2014-08-01 00:43:04 +00:00
abbcde6cb9 fortran: add the .o's back into libmpi_usempif08
Thanks to Paul Hargrove for the massive hint to find this.

This commit was SVN r32385.
2014-07-31 23:41:47 +00:00
8e80480cbc fortran: don't use optional params in the ompi/pompi interfaces
Fix a copy-n-paste error: the ompi/pompi interfaces should not have
optional ierror arguments.  Optional ierror arguments are only used in
the MPI_<foo> interfaces.  The ompi/pompi interfaces are the actual
underlying routines (in C, incidentally, which is why they're declared
as BIND(C)), and do not have optional ierror arguments.

Also fix a typo in the BIND(C) name for pompi_win_shared_query_f().

cmr=v1.8.2:reviewer=ggouaillardet

This commit was SVN r32287.
2014-07-22 21:51:29 +00:00
4da3c85b54 fortran: revert Absoft-based fixes
Rever r32246, r32254, and 32255 -- they were fixing side-effects of
the real bug.  Real fix coming after this one.

This commit was SVN r32286.

The following SVN revision numbers were found above:
  r32246 --> open-mpi/ompi@08d2a1a48d
  r32254 --> open-mpi/ompi@232d4dbb7b
2014-07-22 21:49:22 +00:00
a7bfd6e766 fortran: fix compile issue with ABSoft compilers
one more fix ...

cmr=v1.8.2:ticket=trac:4792

This commit was SVN r32255.

The following Trac tickets were found above:
  Ticket 4792 --> https://svn.open-mpi.org/trac/ompi/ticket/4792
2014-07-17 07:38:13 +00:00
232d4dbb7b fortran: fix compile issue with ABSoft compilers
Simplify and fix the r32246

cmr=v1.8.2:ticket=trac:4792

This commit was SVN r32254.

The following SVN revision numbers were found above:
  r32246 --> open-mpi/ompi@08d2a1a48d

The following Trac tickets were found above:
  Ticket 4792 --> https://svn.open-mpi.org/trac/ompi/ticket/4792
2014-07-17 06:00:32 +00:00
08d2a1a48d fortran: fix compile issue with ABSoft compilers
ABSoft compilers cannot compile a fortran subroutine
with the BIND(C, NAME="name") modifier *and* argument(s)
with the OPTIONAL modifier

This patch detects this unsupported feature and use
adhoc wrappers if it is missing

cmr=v1.8.2:reviewer=jsquyres

This commit was SVN r32246.
2014-07-15 10:41:11 +00:00
5081f958a6 fortran: fix MPI_Win_allocate_shared and MPI_Win_shared_query
Several problems with MPI_Win_allocate_shared and MPI_Win_shared_query
were discovered in a code review.  This commit fixes them:

* Add _cptr versions of both subroutines in mpif-h, use-mpi-tkr, and
  use-mpi-ignore-tkr directories
* Fix case of PMPI weak symbols for both C implementations
* Add MPI and PMPI f08 implementations of both subroutines (there is
  no _cptr version in the mpi_f08 module)
* Fixed _f08 suffix on the f08 module of both subroutines

cmr=v1.8.2:ticket=trac:4736

This commit was SVN r32162.

The following Trac tickets were found above:
  Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
2014-07-09 00:10:04 +00:00