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

25 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
52fd270663 Implement MPI-2.2 functionality of deleting attributes on
MPI_COMM_SELF in reverse order during MPI_FINALIZE (well, actually,
''all'' attributes are now deleted in reverse order whenever a
communicator is destructed).

Also revamped a few things in the MPI attribute implementation:

 * use a One Big Lock philosophy for making the implementation thread
   safe (vs. the pair of locks we were using before).  One Big Lock is
   quite a bit simpler and has fewer corner cases; the code for
   attributes is still complicated, but is definitely less complex
   than it used to be.
 * The COPY_ATTR_CALLBACKS and DELETE_ATTR_CALLBACKS macros no longer
   return; they simply set a value if something went wrong.  Then we
   check this value after the macros complete.  This simplifies
   unlocking, etc.
 * Added write barriers right before releasing locks to ensure memory
   consistency.
 * Fixed a bunch of typos in comments, and some indenting.

Many thanks to KAWASHIMA Takahiro who contributed the original patch
for attribute destruction ordering, and who helped test/debug/evolve
the patch to its final form.

Fixes trac:3123.

cmr:v1.7.2:reviewer=bosilca

This commit was SVN r28439.

The following Trac tickets were found above:
  Ticket 3123 --> https://svn.open-mpi.org/trac/ompi/ticket/3123
2013-05-02 12:32:21 +00:00
Christopher Yeoh
bab59bda76 Fixes trac:2767: Recursive locking when ROMIO used with THREAD_MULITPLE
This commit was SVN r24681.

The following Trac tickets were found above:
  Ticket 2767 --> https://svn.open-mpi.org/trac/ompi/ticket/2767
2011-05-04 06:31:42 +00:00
Rainer Keller
b572dc3591 - As discussed revert r21330, Fortran-configure info should
not end up in OPAL
 - Will post an updated patch for the OMPI_ALIGNMENT_ parts (within C).

This commit was SVN r21342.

The following SVN revision numbers were found above:
  r21330 --> open-mpi/ompi@95596d1814
2009-06-01 19:02:34 +00:00
Rainer Keller
95596d1814 - Move alignment and size output generated by configure-tests
into the OPAL namespace, eliminating cases like opal/util/arch.c
   testing for ompi_fortran_logical_t.
   As this is processor- and compiler-related information
   (e.g. does the compiler/architecture support REAL*16)
   this should have been on the OPAL layer.
 - Unifies f77 code using MPI_Flogical instead of opal_fortran_logical_t

 - Tested locally (Linux/x86-64) with mpich and intel testsuite
   but would like to get this week-ends MTT output


 - PLEASE NOTE: configure-internal macro-names and
   ompi_cv_ variables have not been changed, so that
   external platform (not in contrib/) files still work.

This commit was SVN r21330.
2009-05-30 15:54:29 +00:00
Iain Bason
a282cf062c Roll back Jeff's roll back (r21028) of Iain's changes (r20926, r20941, r20950).
It turns out that the "Intel" interpretation of the MPI spec violates
the Fortran standard (section 14.6.1.1 of the Fortran 95 standard).

This commit was SVN r21225.

The following SVN revision numbers were found above:
  r20926 --> open-mpi/ompi@0a24eadaad
  r20941 --> open-mpi/ompi@045b0e8871
  r20950 --> open-mpi/ompi@73af921c22
  r21028 --> open-mpi/ompi@25249c9843
2009-05-13 18:32:13 +00:00
Jeff Squyres
25249c9843 Roll back r20926, r20941, r20950: Iain's changes from last week.
This has turned into an MPI spec interpretation issue.  :-(

Open MPI has intrepreted the spec one way for the past several years;
these commits reflect a different interpretation that changes how we
treat the EXTRA_STATE parameter to the Fortran attribute copy and
delete callbacks.  This new way breaks our internal copy of the Intel
Fortran attribute tests.  So after talking with Terry/Sun, we're going
to back out these changes (both here and on the v1.3 branch) until we
get further clarification from the Forum.

This commit was SVN r21028.

The following SVN revision numbers were found above:
  r20926 --> open-mpi/ompi@0a24eadaad
  r20941 --> open-mpi/ompi@045b0e8871
  r20950 --> open-mpi/ompi@73af921c22
2009-04-16 14:29:32 +00:00
Iain Bason
73af921c22 Update keyval_create functions.
The fix for #1864 in r20926 caused gcc to emit some warnings. Also,
Jeff Squyres pointed out parallel bugs in mpi_type_create_keyval and
mpi_win_create_keyval.

This commit was SVN r20950.

The following SVN revision numbers were found above:
  r20926 --> open-mpi/ompi@0a24eadaad
2009-04-07 13:47:52 +00:00
Dan Lacher
98f70d6318 Convert the C++ Comm, Datatype and Winn keyval creation and intercept callbacks
to *not* use the STL as well as removing the STL use from the error handler
routines.  This was removing the STL from the C++ bindings (Solaris has 2
versions of the STL; if OMPI uses one and an MPI application wants to use
another, Bad Things happen).

The main idea is to wrap up the C++ callback function pointers and the user's
extra_state into our own struct that is passed as the extra_state to the C
keyval registration along with the intercept routines in intercepts.cc. When the
C++ intercepts are activated, they unwrap the user's callback and extra state
and call them.

This commit was SVN r17409.
2008-02-10 19:29:25 +00:00
Tim Prins
c46ed1d5d4 Make it so the universe size is passed through the ODLS instead of through a gpr trigger during MPI init. This matches what is currently being done with the app number.
The default odls has been updated and works fine. The process odls has been updated, but I could not verify its operation. The bproc ODLS has not been updated yet. Ralph will look at it soon.

This commit was SVN r15257.
2007-07-02 01:33:35 +00:00
Sven Stork
fe3b08004e - export symbols that are needed by the fortran libs
This commit was SVN r14527.
2007-04-26 09:34:41 +00:00
Tim Prins
bddd06bcdb pedantic formatting...
This commit was SVN r13766.
2007-02-23 00:54:41 +00:00
Jeff Squyres
260f1fd468 Fixes trac:817
The C++ bindings were not tracking keyvals properly -- they were
freeing some internal meta data when Free_keyval() was called, not
when the keyval was actually destroyed (keyvals are refcounted in the
C layer, just like all other MPI objects, because they can live for
long after their corresponding Free call is invoked).  This commit
fixes this problem and several other things:

 * Add infrastructure on the ompi_attribute_keyval_t for an "extra"
   destructor pointer that will be invoked during the "real"
   constructor (i.e., when OBJ_RELEASE puts the refcount to 0).  This
   allows calling back into the C++ layer to release meta data
   associated with the keyval.
 * Adjust all cases where keyvals are created to pass in relevant
   destructors (NULL or the C++ destructor).
 * Do essentially the same for MPI::Comm, MPI::Win, and MPI:Datatype:
   * Move several functions out of the .cc file into the _inln.h file
     since they no longer require locks
   * Make the 4 Create_keyval() functions call a common back-end
     keyval creation function that does the Right Thing depending on
     whether C or C++ function pointers were used for the keyval
     functions.  The back-end function does not call the corresponding
     C MPI_*_create_keyval function, but rather does the work itself
     so that it can associate a "destructor" callback for the C++
     bindings for when the keyval is actually destroyed.
   * Change a few type names to be more indicative of what they are
     (mostly dealing with keyvals [not "keys"]).
 * Add the 3 missing bindings for MPI::Comm::Create_keyval().
 * Remove MPI::Comm::comm_map (and associated types) because it's no
   longer necessary in the intercepts -- it was a by-product of being
   a portable C++ bindings layer.  Now we can just query the C layer
   directly to figure out what type a communicator is.  This solves
   some logistics / callback issues, too.
 * Rename several types, variables, and fix many comments in the
   back-end C attribute implementation to make the names really
   reflect what they are (keyvals vs. attributes).  The previous names
   heavily overloaded the name "key" and were ''extremely''
   confusing.

This commit was SVN r13565.

The following Trac tickets were found above:
  Ticket 817 --> https://svn.open-mpi.org/trac/ompi/ticket/817
2007-02-08 23:50:04 +00:00
George Bosilca
623dd3357d Create another enum item that means the attribute is not initialized. The problem,
was that the compilers complain about setting a variable of an enum type to something
not in the enum.

This commit was SVN r10737.
2006-07-11 15:28:32 +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
Rainer Keller
4b1194056f - Upon Finalize, also release the memory of predefined attributes.
This commit was SVN r9169.
2006-02-27 15:15:48 +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
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
George Bosilca
6fb4ce5e2e Some dependencies cleanups (there were on hold for a while).
This commit was SVN r8425.
2005-12-09 05:14:18 +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
cf16a521c8 Ensure to get ompi/include/constants.h
This commit was SVN r6845.
2005-08-12 21:42:07 +00:00
Edgar Gabriel
ed36e40646 stupid comma issue
This commit was SVN r6516.
2005-07-15 12:57:09 +00:00
Edgar Gabriel
3d1c10b09b make sure, that the value for TYPE_ATTR is identical, independent of the definition of OMPI_WANT_MPI2_ONE_SIDED
This commit was SVN r6514.
2005-07-15 11:54:38 +00:00
Brian Barrett
9f0c969bb4 * rename ompi_hash_table opal_hash_table
This commit was SVN r6324.
2005-07-03 16:52:32 +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
4ab17f019b Rename src -> ompi
This commit was SVN r6269.
2005-07-02 13:43:57 +00:00