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

335 Коммитов

Автор SHA1 Сообщение Дата
Edgar Gabriel
7e99dc4301 - fix in comm_spawn_multiple: we cannot check for the errorcodes array
being null, if the constant MPI_ERRCODES_IGNORE is defined as (void *)
NULL;
- the communicator in file open has to be an intra-communicator.

This commit was SVN r9893.
2006-05-11 13:23:53 +00:00
Jeff Squyres
87a2458bb1 Make sure to use the C version of the string.
This commit was SVN r9796.
2006-05-03 03:29:06 +00:00
Brian Barrett
1aa13c1e5c * do proper fortran string handling for the MPI-IO functions that take string
arguments.  Thanks to Bernard Knaepen for bringing this to our attention.

This commit was SVN r9792.
2006-05-02 14:39:11 +00:00
Craig E Rasmussen
8a16f844ec Changes MPI_Intercomm_merge high variable from integer to logical
This commit was SVN r9783.
2006-05-01 18:58:35 +00:00
Craig E Rasmussen
0c584d783e Changes MPI_Intercomm_merge high variable from integer to logical
This commit was SVN r9782.
2006-05-01 18:58:05 +00:00
Jeff Squyres
22dbda116e Add in oodles of missing files
This commit was SVN r9767.
2006-04-28 02:22:19 +00:00
Craig E Rasmussen
888c19b9ee Changed bool Fortran type to logical
This commit was SVN r9766.
2006-04-27 22:49:06 +00:00
Craig E Rasmussen
bd77c2b212 Changed bool Fortran type to logical
This commit was SVN r9765.
2006-04-27 22:48:07 +00:00
Craig E Rasmussen
9333a2628b Added counter to output name and changed bool Fortran type to logical
This commit was SVN r9764.
2006-04-27 22:46:48 +00:00
George Bosilca
29fe545451 Remove all references to the ompi_mpi_long_long variable. The MPI_LONG_LONG is now
a synonym to MPI_LONG_LONG_INT.

This commit was SVN r9703.
2006-04-24 22:15:42 +00:00
Jeff Squyres
0556c129df Fix MPI_*_GET_ATTR flag parameter to be of type logical. Thanks to
Michael Kluskens for pointing this out.

This commit was SVN r9676.
2006-04-21 04:31:49 +00:00
Craig E Rasmussen
6de9755919 Added counter to output macro name
This commit was SVN r9675.
2006-04-20 21:30:28 +00:00
Craig E Rasmussen
8646604497 Fixed to match Jeff S's changes to mpi-f90-interfaces.h.sh
This commit was SVN r9674.
2006-04-20 21:18:04 +00:00
Craig E Rasmussen
65d5e18e9b Fixed to match Jeff S's changes to mpi-f90-interfaces.h.sh
This commit was SVN r9673.
2006-04-20 21:17:09 +00:00
Jeff Squyres
f8e634d6ca Bring over /tmp/f90-stuff branch to the trunk.
svn merge -r 9453:9609 https://svn.open-mpi.org/svn/ompi/tmp/f90-stuff .

Several improvements over the current F90 MPI bindings:

- The capability to make 4 sizes of the F90 bindings:
  - trivial: only the F90-specific MPI functions (sizeof and a few
    others)
  - small: (this is the default) all MPI functions that do not take
    choice buffers
  - medium: small + all MPI functions that take one choice buffer
    (e.g., MPI_SEND)
  - large: all MPI functions, but those that take 2 choice buffers
    (e.g., MPI_GATHER) only allow both buffers to be of the same type
- Remove all non-standard MPI types (LOGICAL*x, CHARACTER*x)
- Remove use of selected_*_kind() and only use MPI-defined types
  (INTEGER*x, etc.)
- Decrease complexity of the F90 configure and build system

This commit was SVN r9610.
2006-04-11 03:33:38 +00:00
Jeff Squyres
f710ef5b2b Commit 1.5 of 2: just like r9560, we need to make the MPI_*_C2F
functions return an invalid fortran handle (-1) if an invalid C handle
is passed in.

Just so it's logged somewhere -- it looks like commit 2 of 2 as noted
in the r9560 commit message (ok, 3 of 3 if you're really counting),
where we have to edit the C interface functions to check for NULL, is
going to be far easier than I thought -- many (but not all) of the C
interface functions already check for NULL MPI handles (either
directly or through helper functions).  

Woo hoo for foresight...

This commit was SVN r9561.

The following SVN revision numbers were found above:
  r9560 --> open-mpi/ompi@e00c6053dc
2006-04-07 04:01:22 +00:00
Jeff Squyres
e00c6053dc Commit 1 of 2: be consistent in the MPI_*_F2C functions for the
handling of invalid Fortran handles.  Per MPI-2:4.12.4, if we get an
invalid Fortran handle, we should return an invalid C handle.  Before
this commit, we checked if the fortran handle index was out of range
(i.e., <0 or >sizeof(array)).  If so, we used to return MPI_*_NULL
(i.e., a valid C handle).  But to be faithful to MPI-2:4.12.4, we
now return NULL (an invalid C handle).

If the fortran index is in bounds but is an index for an MPI object
that has already been freed, the code already returns NULL because the
entry in the array will be NULL (i.e., we already did what
MPI-2:4.12.4 said for this case).

Hence, this commit makes the handling of invalid fortran handles in
the MPI_*_F2C functions be uniform: we always return NULL.

Commit 2 of this will be to edit just about every C interface function
(!) to ensure that MPI handles are not NULL.  Otherwise, if the user
calls a fortran interface function with an invalid handle, the fortran
interface function will call MPI_*_F2C and blindly pass the result to
the back-end C function.  The C function will eventually end up trying
to dereference it -- segv.  Having a run-time check for NULL and
invoking an MPI exception is far more social (e.g., the user can get a
stack trace out of MPI_ABORT) and consistent (i.e., we're already
checking for MPI_*_NULL in the C interface functions).

Since all the C interface functions have all the machinery for
run-time parameter checking, and they all already check for
MPI_*_NULL, it's easy enough to add another check for NULL.

This commit was SVN r9560.
2006-04-07 03:49:58 +00:00
Sven Stork
e6b0828a4f - add missing lb check
This commit was SVN r9516.
2006-04-03 13:22:04 +00:00
George Bosilca
285b1af2a7 Follow the standard when the count is set to zero. Or let me say it differently,
follow the statement from the standard that make the most sense to me. In this
particular case this statement is:
If there is no active handle in the list it returns outcount = MPI_UNDEFINED.

This commit was SVN r9512.
2006-04-01 07:39:55 +00:00
George Bosilca
ae47cbfe02 Accept an array of request set to NULL if the count is set to ZERO.
This commit was SVN r9504.
2006-03-31 20:32:56 +00:00
Sven Stork
711b30fbac - introduction of user buffer checking for pt2pt operations
This commit was SVN r9449.
2006-03-29 09:26:27 +00:00
George Bosilca
85bb1a9c90 Add one more argument to the copy functions for the MPI objects. As this argument
is the last one on the list and as on C the caller "make it right" this addition
will not affect the way we handle the user defined copy functions. Only the C
version of the function has this additional parameter. As it represent the pointer
to the newly created MPI object It hold the key to allow us to modify the new
object (communicator, window or type) depending on some key stored on the initial
communicator.

This commit was SVN r9371.
2006-03-23 04:47:14 +00:00
Tim Woodall
bd870519fd - modified convertor copy_and_prepare routines to accept an addition
flag, new flags to be included when convertor is initialized
- modified pml/btl module defs and added stub functions for diagnostic
  output routines to dump state of queues / endpoints
- updates to data reliability pml

This commit was SVN r9329.
2006-03-17 18:46:48 +00:00
Mohamad Chaarawi
b8c9adc833 checking of multiply included/excluded processes in
group_range_incl/excl has now been separated from the implementation.

This commit was SVN r9311.
2006-03-16 17:51:16 +00:00
Rainer Keller
a8144cca8d - Fix the return codes -- not OMPI, but MPI..
- Use the datatype-checks of bindings.h within recv.
   However, for the time being disable the check for overlapped,
   as it is not correctly set.

This commit was SVN r9298.
2006-03-16 09:42:46 +00:00
George Bosilca
d19e924ca8 gcc print out: warning: ISO C90 forbids mixed declarations and code.
This commit was SVN r9283.
2006-03-14 22:27:19 +00:00
Mohamad Chaarawi
c5a8870f6b move the implementation of the group creation functions into according back-end
functions. 

This commit was SVN r9281.
2006-03-14 21:01:46 +00:00
Edgar Gabriel
073c6e6c32 The f2c interface of these routines have to do proper conversation of
fortran strings to c strings, else the name-publishing and name-lookup
and all subsequent calls (e.g. connect/accept) do not work with fortran.

This commit was SVN r9272.
2006-03-13 22:56:56 +00:00
Edgar Gabriel
be9ea4d1b0 we should pass c_command to MPI_Comm_spawn, and not the fortran version
of the string. Since it is relevant fix, however not affecting any other
part of the source code, should probably still go onto the 1.0 branch.

This commit was SVN r9214.
2006-03-07 23:13:42 +00:00
George Bosilca
679ccbcac7 Correctly handle the MPI_STATUSES_IGNORE, and trigger the MPI error handler and return the
same error code.

This commit was SVN r9206.
2006-03-06 16:59:46 +00:00
Jeff Squyres
2cceba7230 Fix to George's and my bugs. :-) A comedy of errors made the test
case still compile properly, even though these bindings were wrong.  :-(

- Both interface functions are necessary.
- I accidentally had a subroutine interface named the same thing as the
  back-end F77 function -- a definite no-no.  Ensure that all F90
  interface functions have a suffix to make them different than the
  back-end F77 function names.
- Also parameterize the output() subroutine on the type of the argvs
  parameter to switch between the character arrays and the integer.

This commit was SVN r9202.
2006-03-04 19:36:13 +00:00
George Bosilca
a649ebc7c6 MPI_Comm_spawn_multiple does not need to have 2 definitions. Moreover,
this function is not allowed to call itself recursively.

This commit was SVN r9201.
2006-03-04 19:22:55 +00:00
George Bosilca
bd109c90f5 One of the , was missing.
This commit was SVN r9199.
2006-03-04 17:41:57 +00:00
Jeff Squyres
9d119109b6 Change the types of some of the "special" constants in mpif.h so that
they will match the prototypes in the [styictly-typed] MPI F90
bindings.  Specifically, fix up MPI_COMM_SPAWN and
MPI_COMM_SPAWN_MULTIPLE so that the constants MPI_ARGV_NULL,
MPI_ERRCODES_IGNORE, and MPI_ARGVS_NULL can be used in the F90
bindings.  Thanks to Michael Kluskens for pointing this out to us.

Some work still remains in the F90 bindings -- we are missing all
places where choice buffers can be of type CHARACTER.

This commit was SVN r9198.
2006-03-04 14:24:44 +00:00
Jeff Squyres
c31e515db1 Since we've had problems recognizing the "special" Fortran constants,
add an explicit test case that checks for them.  It is necessary to
put this test function here because the OMPI_IS* macros are only
defined in this directory.

This commit was SVN r9195.
2006-03-04 13:23:19 +00:00
Jeff Squyres
adc6753fa9 Check for ARGVS_NULL, not ARGV_NULL
This commit was SVN r9194.
2006-03-04 13:22:12 +00:00
George Bosilca
ca116e3cf3 Where we create a duplicate data-type for the get_content MPI function we have to attach the
args from the old data-type. As this args are only read-only, I don't want to have several
copies around, so I add a reference count to them and simply attach them to the new
datatype. The args array now get freed only when the last reference dissapear.

This commit was SVN r9191.
2006-03-03 20:51:36 +00:00
Rainer Keller
8568bb9892 - Allow MPI_ERRCODES_IGNORE when checking is on.
This commit was SVN r9180.
2006-02-28 10:16:42 +00:00
Brian Barrett
d5e0ea3590 * Post and Start should only check their epoch types for conflicts, otherwise
you can't be in a post and a start at the same time, and that is clearly
  legal to do
* Fix interptretation of when the epochs start for MPI_Fence.  Only start
  an epoch if communication actually occurs, otherwise it isn't actually
  an epoch.  I don't know who thought that wording in the MPI standard
  was a good idea, but can't change it now...

This commit was SVN r9139.
2006-02-24 13:04:15 +00:00
Brian Barrett
27b8430e8f * update MPI_ACCUMULATE to perform it's parameter checking based on what
MPI-2:6.3.4 says about reduction operations
* Have the point-to-point one-sided component spew a warning and return
  an error if a non-predefined datatype is used with an MPI_OP other
  than MPI_REPLACE.  Yes, this violates the MPI standard, but it's the
  best we can do until George and I implement support for figuring out
  where all the locations to update are..

This commit was SVN r9134.
2006-02-23 21:07:49 +00:00
Jeff Squyres
8f7311becd Fix a few copy-n-paste errors: when an op is invalid, invoke the MPI
exception on the passed communicator, not MPI_COMM_WORLD.

This commit was SVN r9105.
2006-02-21 19:11:40 +00:00
Brian Barrett
889aeeddb2 * clean up the error checking a bit - user defined datatypes are allowed for
MPI_OP_REPLACE.  All other rules are basically the same as MPI_Reduce, so
  use that helper function.

This commit was SVN r9104.
2006-02-21 19:00:49 +00:00
Galen Shipman
0bc3cbf0db Corrections to pml_dr, now passes intel test suite (p2p_c).
Note, the checksums are not enabled currently, setting to zero as the
convertor is not ready for checksums yet. 

Also, we can't call unpack/pack on convertor with 0 bytes, otherwise it
crashes. 

This commit was SVN r9062.
2006-02-16 16:15:16 +00:00
Jeff Squyres
780154469b Prettyprint
This commit was SVN r9046.
2006-02-15 13:19:42 +00:00
Jeff Squyres
c674c165fd - Fix final check in TYPE_CREATE_F90_INTEGER
- Add more checks on the params to ensure that the user conformed to
  MPI-2 (i.e., can have MPI_UNDEFINED for p *or* r in the real/complex
  functions, but not both)
- Always return MPI_ERR_ARG, not MPI_ERR_OTHER -- seems to make a
  little more sense here, since any errors that are returned are
  solely because of the arguments that were passed into the function

This commit was SVN r9037.
2006-02-14 18:01:44 +00:00
Jeff Squyres
c4cc1528a7 Output this information during the build to help with user and
developer debugging.

This commit was SVN r9032.
2006-02-14 13:29:18 +00:00
Brian Barrett
ef83e692cc * fix a bad fix from the Open MPI developers meeting. I didn't add proper
support for Fortran 90 module flags in the wrapper compilers when I 
  re-wrote them to be less project-specific.  Re-add that support and drop
   the ugly install in include hack I had done.

This commit was SVN r9003.
2006-02-13 02:39:32 +00:00
Jeff Squyres
bc47a24bee Bring the f90 configuration up to speed with the f77 configuration
changes.  The two Big Changes are elegance (much more re-use of code
rather than cut-n-pasting the same code over and over and over and...)
and enabling cross-compilation for F77 and F90 (because we actually
have to *run* some compiled F77 and F90 programs for some of the
tests, which obviously won't work in a cross-compilation environment
-- so enable the use of config.cache to load such values in
cross-compiling environments).

This commit was SVN r8991.
2006-02-12 15:11:36 +00:00
Jeff Squyres
e089f91a72 Remove the sym links before we try to create them, otherwise if you
run "make install" twice in a row (or some other variant), you'll get
an error.

This commit was SVN r8990.
2006-02-12 14:16:19 +00:00
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
George Bosilca
9c1547373d Match the latest changes in the datatype engine.
This commit was SVN r8967.
2006-02-10 21:06:15 +00:00
Brian Barrett
ec7b60d501 * Fix some error checking code for Lock / Unlock at the MPI layer
* Implement win_lock and win_unlock in the pt2pt component.  Not well
  tested, but appears to move bits if properly motivated...

This commit was SVN r8922.
2006-02-07 18:45:18 +00:00
George Bosilca
e20265bd2b Dont let any external to the data-type code check directly for the predefined
data-types. Instead, use the newly provided data-type function ompi_ddt_is_predefined..

This commit was SVN r8903.
2006-02-06 18:01:45 +00:00
Brian Barrett
84cf4e6112 * Add symlinks for the Fortran 90 module files from $libdir to $includedir.
It appears that some compilers look in the library paths and others in 
  the include paths, so just have both available and save ourselves the
  trouble.

This commit was SVN r8897.
2006-02-04 23:31:30 +00:00
Brian Barrett
4f88f8954e * Fix missing / wrong constants in MPI C++ bindings. Thanks to Brian
Granger for bringing this to our attention.

  This needs to be modified slightly to go to the v1.0 branch.  Will
  submit patch via e-mail.

This commit was SVN r8872.
2006-02-01 16:01:32 +00:00
Brian Barrett
514e58c49a * pass an ompi_win_t, not an ompi_win_t*
This commit was SVN r8866.
2006-01-31 23:08:26 +00:00
Brian Barrett
44a516d966 * Clean up error checking in the MPI interface for MPI-2 onesided
* Implement fortran handle -> c handle tracking
* Remove some unneeded locking around free lists (the free list
  macros do their own locking)
* Try to be a bit more memory friendly with the w_mode setting /
  checking

This commit was SVN r8865.
2006-01-31 21:40:12 +00:00
Brian Barrett
0d507ad970 * Fix a bunch of checks for proper access / exposure epochs
* Add implementation of Post/Wait/Start/Complete synchronization

This commit was SVN r8848.
2006-01-31 02:44:08 +00:00
Brian Barrett
b1d2424013 Merge in present work on the MPI-2 onesided chapter. The current code is not
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes.  Changes in this commit include:

 - Remove the --with option for disabling MPI-2 onesided support.  It
   complicated code, and has no real reason for existing
 - add a framework osc (OneSided Communication) for encapsulating
   all the MPI-2 onesided functionality
 - Modify the MPI interface functions for the MPI-2 onesided chapter
   to properly call the underlying framework and do the required
   error checking
 - Created an osc component pt2pt, which is layered over the BML/BTL
   for communication (although it also uses the PML for long message
   transfers).  Currently, all support functions, all communication
   functions (Put, Get, Accumulate), and the Fence synchronization
   function are implemented.  The PWSC active synchronization
   functions and Lock/Unlock passive synchronization functions are
   still not implemented

This commit was SVN r8836.
2006-01-28 15:38:37 +00:00
Jeff Squyres
dd142673f4 Add missing MPI::Request::Get_status methods.
This commit was SVN r8663.
2006-01-09 18:10:12 +00:00
Jeff Squyres
5f96a74e33 Make user-defined MPI::Op's be thread safe (the previous
implementation was not thread safe).  See lengthy comment in
ompi/mpi/cxx/intercepts.cc::ompi_mpi_cxx_op_intercept() for a full
explanation.

This commit was SVN r8606.
2005-12-23 16:49:09 +00:00
Jeff Squyres
4a061b7c78 Since all of the collectives (except scan and exscan) are defined on
both intercomm and intracomm, put them up in MPI::Comm rather than
duplicating them in MPI::Intercomm and MPI::Intracomm.

This commit was SVN r8583.
2005-12-21 21:12:52 +00:00
Jeff Squyres
ce6639d3ef Remove an extra -o $@ that doesn't seem to be necessary, and actually
confuses the Lahey compiler (because it doesn't want to name a module
mpi_kinds.ompi_module).  We shouldn't need this because we're already
touching a sentinel file (mpi_kinds.ompi_module) for make
dependencies; we don't need the compiler-generated module to be named
that. 

This commit was SVN r8571.
2005-12-20 21:43:04 +00:00
Jeff Squyres
ec08143923 Arrgh -- left a debugging printf in by accident.
This commit was SVN r8529.
2005-12-16 21:11:58 +00:00
Jeff Squyres
2bae18fd91 Fix MPI_IN_PLACE handling for Fortran collectives
This commit was SVN r8526.
2005-12-16 19:19:14 +00:00
Jeff Squyres
83d34c8435 - Remove some dead code
- Fix some typos from last commit
- Add collectives of intercommunicators
- Move the static current_op member from Intracomm to Comm
  --> this is still a remaining problem: the global variable
      current_op is not thread safe!

This commit was SVN r8520.
2005-12-15 22:07:34 +00:00
Jeff Squyres
8df345b66a Minor cleanups -- just keeping the real commit diffs meaningful.
This commit was SVN r8519.
2005-12-15 21:52:40 +00:00
Jeff Squyres
4379be6edc Fix some more const_cast issues. Thanks to Martin Audet for helping
with this.

This commit was SVN r8516.
2005-12-15 21:24:42 +00:00
Rainer Keller
9b2c23bead - Do additional checks in case of MPI_PARAM_CHECK for NULL pointers.
This commit was SVN r8487.
2005-12-13 08:13:13 +00:00
Craig E Rasmussen
d77f418fc9 Initial version.
This commit was SVN r8399.
2005-12-07 16:39:34 +00:00
Jeff Squyres
6149b5fec8 Change from old-C-style casting to get rid of const to proper
const_cast<>-style casting.  For the rationle behind this, see:

http://www.open-mpi.org/community/lists/users/2005/11/0391.php

This commit was SVN r8327.
2005-11-30 03:22:27 +00:00
Brian Barrett
a46d0d3801 Add support to Open MPI for MPI_Register_datarep, as ROMIO now has support for the
functionality.  This is a global registration, so all components have to be made
aware of the registration -- therefore, do things at the component level, not the
module level.

This commit was SVN r8314.
2005-11-29 18:25:35 +00:00
Rainer Keller
bf0892bb32 - Implement correct Fortran Logical-handling in f77/f90 interface in
case of:
    sizeof(MPI_Flogical) != sizeof (int)
  and
    Fortran value of .TRUE. != 1
  as is often the case.
- Check in configure the value of .TRUE., the C-type coresponding to
  logical and check, that fortran compiler does not do something strange
  with arrays of logicals
- Convert all occurrences of logicals in the fortran wrappers, only
  in case it is needed.
  *Please note* Implementation of MPI_Cart_sub needed special treatment.
- Output these value in ompi_info -a
- Clean up the prototypes_mpi.h to just have a single definition and
  thereby deleting the necessity for prototypes_pmpi.h

- configured, compiled and tested with F90-program, which uses
  MPI_Cart_create and MPI_Cart_get:
  linux ia32, gcc (no testing, as no f90)
  linux ia32, gcc --disable-mpi-f77 --disable-mpi-f90 (had a bug there)
  linux ia32, icc-8.1
  linux opteron, gcc-3.3.5, pgcc, pathccx/pathf90 (tested just
pgi-compiler)
  linux em64t, gcc, icc-8.1 (tested just icc)

This commit was SVN r8254.
2005-11-24 16:52:35 +00:00
Jeff Squyres
6b823e3663 Remove a little extra memory that is no longer needed
This commit was SVN r8246.
2005-11-23 11:16:59 +00:00
Edgar Gabriel
c96e4d43c7 fixes for other routines which take an MPI-2 byte displacement or an address as
an argument.

This commit was SVN r8244.
2005-11-23 03:52:19 +00:00
Edgar Gabriel
a1b00e0a49 fixing the fortran interface for MPI_Get_address. Since the address
argument is defined to be 

integer (KIND=MPI_ADDRESS_KIND)

we have to map that to an MPI_Aint in the f->c interface, else the
typecast back from the C to the Fortran interface will be wrong as well.
The same holds (at least) for all other new MPI-2 datatype functions
which take a byte-displacement or an address as an argument.

This commit was SVN r8243.
2005-11-23 03:22:50 +00:00
Edgar Gabriel
b6ddb73f38 fixing the condition under which the values of the c-functions are
passed back to the fortran routines. Should probably go to v1.0.1, but
is unfortunatly just half of the overall fix. 

This commit was SVN r8242.
2005-11-23 03:12:40 +00:00
Jeff Squyres
24b9de292c Fix for [righteous] compiler warnings from xlf90 compiler on OSX
10.3.  Specifically define what the parameter type is, and mark its
intent. 

This commit was SVN r8124.
2005-11-11 23:18:59 +00:00
Jeff Squyres
bacfb4fa2b Remove the generated F90 interfaces for all the "2 buffer" MPI API
functions (e.g., MPI_REDUCE).  We don't generate the back-end
subroutines for them (because it makes an expontential number of
subroutines, and compilers literally will segv), so we shouldn't
generate the f90 interfaces for them, either.  This allows user's MPI
F90 apps to automaitcally fall through to the F77 bindings for these
functions.

This commit was SVN r8094.
2005-11-10 16:04:39 +00:00
Jeff Squyres
6e08072113 Fix for the interface name for MPI_File_write_ordered_begin -- the
name was changed to shorten it too early (and then not restored), so
the "interface" name was not output correctly into
mpi-f90-interfaces.h.  Change to make it like the other long functions
-- temporarily change it to a shorter name while outputing the
subroutines, and then revert it when outputting the end interface.

This commit was SVN r8086.
2005-11-10 14:10:20 +00:00
George Bosilca
55051b81c4 Activate the protection against unavailable datatypes. They get a flag DT_FLAG_UNAVAILABLE. We check now this flag in all the send/recv operations via the macros on mpi/c/bindings.h.
This flag is inherited by all datatypes create with unavailable datatypes. Basically, we let the user create the wrong datatype but we dont let him using it for any pt2pt communications or any pack/unpack.

This commit was SVN r8069.
2005-11-09 23:43:41 +00:00
Jeff Squyres
6de5c208f2 Fix propblem with prototypes for wtick and wtime in prototypes_pmpi.h.
This commit was SVN r8043.
2005-11-08 19:45:51 +00:00
Jeff Squyres
a1ba3168d9 Remove extrameous comments
This commit was SVN r8017.
2005-11-07 22:44:26 +00:00
George Bosilca
9832d5d883 The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
one that does not return any value. There are 2 exceptions MPI_Wtick and MPI_Wtime.
For these 2 we can insert the bindings manually.

This commit was SVN r8016.
2005-11-07 19:37:32 +00:00
Brian Barrett
28891d6de3 * Move MPI_Wtime and MPI_Wtick back out of mpi.h and into the C bindings library,
restoring the PMPI version.  A variety of reasons for this:

  - mpi.h was blinding using inline in a C header without the configrue mojo
    properly set it, as mpi.h doesn't include ompi_config.h.  This eventually
    would have caused a borked build.
  - mpi.h and mpif.h were never updated to not include PMPI_W{tick,time} as
    a proper prototype
  - The C++ and F90 bindings didn't do the right things when there was no
    PMPI version of the C call, but profiling was enabled
  - Since we only use gettimeofday, the function call overhead really doesn't
    matter

This should probably go to the 1.0 branch

This commit was SVN r8014.
2005-11-07 17:22:48 +00:00
Jeff Squyres
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
Jeff Squyres
7bdfe6557b - Update the checks in REDUCE, ALLREDUCE, SCAN, EXSCAN, and
REDUCE_SCATTER to more thoroughly check the datatype/op combination
  to see if it's valid or not.  If it's not, print a meaningful error
  message rather than "Invalid MPI_Op" indicating what specifically
  was wrong (therefore hopefully helping users track down where in the
  code the problem is, and/or telling us that there's a reduction
  operation combo that we don't support that we should)
- The check for whether a datatype is intrinsic needed to be updated
  -- it's not sufficient to check that dtype->id < DT_MAX_PREDEFINED;
  you really need to check the PREDEFINED flag on the datatype.
  Thanks to George for this fix (only intrinsics have a meaningful
  value in dtype->id).

This commit was SVN r7923.
2005-10-28 16:47:32 +00:00
Jeff Squyres
23ab9e0277 A better solution to the previous commit -- RETAIN/RELEASE the MPI_Op
at the top-level MPI API function.  This allows two kinds of
scenarios:

1. MPI_Ireduce(..., op, ...);
   MPI_Op_free(op);
   MPI_Wait(...);

For the non-blocking collectives that we're someday planning -- to
make them analogous to non-blocking point-to-point stuff.

2. Thread 1:
   MPI_Reduce(..., op, ...);
   Thread 2:
   MPI_Op_free(op);

Granted, for #2 to occur would tread a fine line between a correct and
erroneous MPI program, but it is possible (as long as the Op_free was
*after* MPI_reduce() had started to execute).  It's more realistic
with case #1, where the Op_free() could be executed in the same thread
or a different thread.

This commit was SVN r7870.
2005-10-25 19:20:42 +00:00
Jeff Squyres
e097ee635a Silence compiler warnings.
This commit was SVN r7768.
2005-10-14 22:06:25 +00:00
Jeff Squyres
f47c272986 Fix for the max-31-F90-symbol-limit problem: keep the interface names
the same (since those are both mandated by MPI and <31 characters),
but change some of the back-end subroutine names so that they are <31
characters and therefore obey the F90 standard.  Remove an outdated /
useless (and confusing) script.

This commit was SVN r7764.
2005-10-14 19:50:30 +00:00
Edgar Gabriel
2c909383bb abstracting the group_free operation into an internal routine (required
by some other components on ompi).

This commit was SVN r7763.
2005-10-14 18:51:20 +00:00
Josh Hursey
ef51608a81 fix compiler warning
This commit was SVN r7706.
2005-10-11 22:03:21 +00:00
Jeff Squyres
94bab558dd Put in a check to ensure the root is valid (all other rooted
operations have this; we somehow missed this for intracomms on reduce,
and it bit me this morning ;-) )

This commit was SVN r7612.
2005-10-04 14:38:17 +00:00
Tim Woodall
aceab46c5f use MPI_Alloc_mem/MPI_Free_mem for internally allocated buffers
This commit was SVN r7487.
2005-09-22 16:43:17 +00:00
Brian Barrett
c87babb565 * if start_rank == end_rank, there doesn't seem to be a requirement that
stride == 1, and the Intel tests explicitly test the case with
  strides != 1, expecting them to work

This commit was SVN r7411.
2005-09-16 18:44:21 +00:00
George Bosilca
789d49d613 Activate thread support ... at least at the MPI level.
This commit was SVN r7386.
2005-09-15 15:44:12 +00:00
Jeff Squyres
b8f4f88ccc Ignore sendtype/sendcount if MPI_IN_PLACE
This commit was SVN r7361.
2005-09-14 01:44:55 +00:00
Jeff Squyres
15f5294da4 Ignore another param in the IN_PLACE case
This commit was SVN r7348.
2005-09-13 19:15:01 +00:00
Jeff Squyres
c89e8c3712 Fixes for error checking -- properly ignore arguments as they should
be

This commit was SVN r7347.
2005-09-13 19:07:13 +00:00
Jeff Squyres
ad647b105d Error checking for MPI_IN_PLACE
This commit was SVN r7343.
2005-09-13 17:07:03 +00:00
George Bosilca
71b1cdb5f5 Cleanup the dependencies between the MPI layer and the rest of the ompi files.
Modify the includes to start with the root directory (i.e orte/datatype/datatype.h).

This commit was SVN r7306.
2005-09-12 09:17:44 +00:00
George Bosilca
43e37060a8 Correct a unfortunate typo in the fortran constants ... We still have untested code inside :)
Add a macro to convert from Fortran to C MPI_IN_PLACE.

This commit was SVN r7276.
2005-09-09 20:46:47 +00:00
George Bosilca
56f8607439 Adding MPI_IN_PLACE for both languages C and Fortran. Still working on the C++ and maybe F90 stuff. It's easilly
getting ugly ...

This commit was SVN r7275.
2005-09-09 20:44:04 +00:00
Brian Barrett
ed56e743b7 * update configure.ac to use the modern version of AC_INIT and
AM_INIT_AUTOMAKE, instead of the deprecated version.
* Work around dumbness in modern AC_INIT that requires the version
  number to be set at autoconf time (instead of at configure time, as
  it was before).  Set the version number, minus the subversion r number,
  at autoconf time.  Override the internal variables to include the r
  number (if needed) at configure time.  Basically, the right thing
  should always happen.  The only place it might not is the version
  reported as part of configure --help will not have an r number.
* Since AM_INIT_AUTOMAKE taks a list of options, no need to specify
  them in all the Makefile.am files.
* Addes support for subdir-objects, meaning that object files are put
  in the directory containing source files, even if the Makefile.am is
  in another directory.  This should start making it feasible to
  reduce the number of Makefile.am files we have in the tree, which
  will greatly reduce the time to run autogen and configure.

This commit was SVN r7211.
2005-09-07 05:54:53 +00:00
Jeff Squyres
b4e2c96e22 - Adjust include paths for ltdl.h
- Properly set CLEANFILES to remove F90 kruft

This commit was SVN r7106.
2005-08-31 10:56:01 +00:00
Jeff Squyres
e52167f013 Ensure that BUILT_SOURCES is inside the AM conditional
This commit was SVN r7049.
2005-08-26 18:26:01 +00:00
Jeff Squyres
2fb92f5844 Use BUILT_SOURCES to hint automake to actually build
mpi_kinds.ompi_module before the rest which depends on it.  Fix suffix
rules, add suffix rule for libtool objects for testing.  Fix for VPATH
builds.

This commit was SVN r7048.
2005-08-26 16:22:33 +00:00
Brian Barrett
d75bde8b35 * make sure proceedure names are not longer than 31 characters
This commit was SVN r7037.
2005-08-25 16:42:38 +00:00
Brian Barrett
012cc8e8e1 * make sure to have "ranks" variable set to a list of the dimensions to
create for all the generating scripts.  Do this in fortran_kinds.sh.in,
  as it's a lot less code than touching each .sh file

This commit was SVN r7003.
2005-08-24 14:55:22 +00:00
Jeff Squyres
85859af77b Fix compiler warnings
This commit was SVN r7000.
2005-08-24 10:46:44 +00:00
Jeff Squyres
47ce94c79b ASCII-art-ize my dependency notes so that someone in the future has a
hope of understanding this Makefile.am.  :-)

This commit was SVN r6996.
2005-08-24 03:10:22 +00:00
Jeff Squyres
4eba48b430 Bunches of fixes for the f90 bindings
- fix the --with-f90-max-array-dim configure switch
- fix configure test to find the supported f90 linker switch to find
  fortran modules
- Unbelievably, some versions of sh (cough cough Solaris 9 cough
  cough) actually seem to internally perform a "cd" into a
  subdirectory when you run "./foo/bar", such that if you try to
  source a script in the top-level directory in the bar script (i.e.,
  ". some_script" in the bar script), it will try to run it in the
  "foo" subdirectory, rather than the top-level directory!  #$@#$%#$%
  So we have to pass in the pwd to the scripts so that they know where
  some_script is.
- Reworked much of ompi/mpi/f90/Makefile.am for lots of reasons.  See
  the internal comments (mostly having to do with dependency stuff --
  Libtool does not apparently support F90, so we can only build the
  F90 library statically.

This commit was SVN r6993.
2005-08-24 02:11:02 +00:00
Rainer Keller
605e13baf4 - Just a comment to circumvent warning in check.
This commit was SVN r6933.
2005-08-19 10:38:08 +00:00
Jeff Squyres
9b7c1ca97a Forgot to include the check for 0 in the Allreduce case (already got
Reduce and Reduce_scatter)

This commit was SVN r6929.
2005-08-18 19:39:45 +00:00
Jeff Squyres
e8c103ac1f Make MPI_REDUCE and MPI_REDUCE_SCATTER return MPI_SUCCESS immediately
if the count/sum of counts is 0.  This is technically in violation of
the MPI-1 standard, but...  :-(

This commit was SVN r6914.
2005-08-17 15:34:33 +00:00
Jeff Squyres
c465eb8567 Rename opal/threads/thread.h -> opal/threads/threads.h to avoid a
naming conflict with Solaris' <thread.h>

This commit was SVN r6879.
2005-08-15 11:02:01 +00:00
Brian Barrett
f273d84b1b * update ob1 to direct call
* don't know what I was thinking, but can't use the MCA_PML_CALL macro on
  the two data values, as they don't have things that the macro can
  expand into

This commit was SVN r6868.
2005-08-14 03:14:20 +00:00
Jeff Squyres
cf16a521c8 Ensure to get ompi/include/constants.h
This commit was SVN r6845.
2005-08-12 21:42:07 +00:00
Brian Barrett
95fd068ffa remove hard coded constants for value of MPI_TAG_UB and the max CID and add
the values to the PML structure.  This will allow PMLs that want to do
hardware matching at the cost of a smaller range of valid tags and cids.
Updated all the places that used the MPI_TAG_UB_VALUE constant to instead
look at the pml struct.

This commit was SVN r6778.
2005-08-09 14:56:04 +00:00
Rainer Keller
f5f96f424d - Use for-loop
- Minor heck for stride != 1
- indenting

This commit was SVN r6715.
2005-08-02 19:56:18 +00:00
Rainer Keller
15c4ae3391 Fix for buglet #1423.
Any non-blocking P2P function should set the request to something else
then MPI_REQUEST_NULL, when passed a source/dest of MPI_PROC_NULL.

Introduce a new ompi_request_empty, which returns the
MPI_SOURCE=MPI_PROC_NULL, MPI_TAG=MPI_ANY_TAG, count=0 as specified by
the MPI-standard.

This commit was SVN r6611.
2005-07-27 01:00:02 +00:00
Craig E Rasmussen
169d9a33fb Moved MPI_ADDRESS_KIND calculation to configure.ac so that it can go in mpif.h
This commit was SVN r6607.
2005-07-26 17:35:41 +00:00
Edgar Gabriel
213be28613 minor fixes to make the trunk compile, if ompi has been configured with the --enable-mpi2-one-sided option
This commit was SVN r6518.
2005-07-15 13:53:10 +00:00
George Bosilca
a7aa1a76bc Correctly use the new convertor. Now we have 2 generic predefined convertors. One is for
the external32 conversions (as specified in the MPI standard) the other one is the local
convertor that can be used for MPI_Pack and MPI_Unpack functions.

This commit was SVN r6375.
2005-07-07 23:00:55 +00:00
Brian Barrett
170ef8af1f * rename ompi_show_help to opal_show_help
* rename ompi_stacktrace to opal_stacktrace
* rename ompi_strncpy to opal_strncpy

This commit was SVN r6336.
2005-07-04 02:38:44 +00:00
Brian Barrett
9f44b80291 * rename ompi_argv to opal_argv
* rename ompi_basename to opal_basename
* rename ompi bitop functions to opal
* rename ompi_cmd_line to opal_cmd_line
* rename ompi_sizet2int to opal_sizet2int
* rename orte_daemon_init to opal_daemon_init
* rename ompi_few to opal_few

This commit was SVN r6330.
2005-07-04 00:13:44 +00:00
Brian Barrett
39dbeeedfb * rename locking code from ompi to opal
This commit was SVN r6327.
2005-07-03 22:45:48 +00:00
Brian Barrett
ccd2624e3f * rename ompi_progress to opal_progress
This commit was SVN r6326.
2005-07-03 21:57:43 +00:00
Brian Barrett
9da0b4fe1d * rename all the atomic functions from ompi to opal
This commit was SVN r6325.
2005-07-03 21:38:51 +00:00
Brian Barrett
761402f95f * rename ompi_list to opal_list
This commit was SVN r6322.
2005-07-03 16:22:16 +00:00
Brian Barrett
499e4de1e7 * rename ompi_object and ompi_class to opal_object and opal_class
This commit was SVN r6321.
2005-07-03 16:06:07 +00:00
Jeff Squyres
35c141aef6 While we're moving directories around, move ompi/mpi/runtime ->
ompi/runtime, for consistency and parallel-ness will orte/runtime.
Also remove a few useless #includes along the way.

This commit was SVN r6317.
2005-07-03 12:07:29 +00:00
Brian Barrett
e984f48ad9 * add missing Makefile to configure output
* Fix MPI profiling layer symlink code from src -> ompi
* Change some modex includes

This commit was SVN r6309.
2005-07-02 17:32:01 +00:00
Jeff Squyres
aa056f7bfd First cut of OMPI Makefile.am's, plus a few more catchup updates in orte
This commit was SVN r6286.
2005-07-02 15:06:47 +00:00
Jeff Squyres
4ab17f019b Rename src -> ompi
This commit was SVN r6269.
2005-07-02 13:43:57 +00:00