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

390 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
04a3b29b76 Silence some compiler warnings, and reindent the code.
This commit was SVN r20385.
2009-01-29 18:04:54 +00:00
George Bosilca
d0a05e90ba Remove the dependency on datatype_pack.h from the convertor_raw file.
Revert r20381 as two header files are "special".

This commit was SVN r20382.

The following SVN revision numbers were found above:
  r20381 --> open-mpi/ompi@25b25aef41
2009-01-28 21:50:01 +00:00
Ralph Castain
25b25aef41 Fix the trunk so it will compile.
Note: this does -not- fix the compiler warnings, but just fixes the missing includes so the trunk will build again.

This commit was SVN r20381.
2009-01-28 21:26:42 +00:00
George Bosilca
2d4a668540 Don't write more iovec than expected.
This commit was SVN r20375.
2009-01-28 16:32:56 +00:00
George Bosilca
0513e018b1 Fix the length of the line.
This commit was SVN r20373.
2009-01-28 15:40:59 +00:00
George Bosilca
321ac99814 Add a function to allow extraction of the iovec covering
the mmory layout of the convertor.

This commit was SVN r20372.
2009-01-28 15:40:15 +00:00
Brian Barrett
dbccb250f0 TYPE shouldn't be surrounded by parens because it causes issues for some versions of gcc when the construct a = ((int)) sizeof(b) comes up...
This commit was SVN r20140.
2008-12-16 19:49:54 +00:00
George Bosilca
f9a1700f55 Some 64 bits architectures support pointer aligned on 4 bytes
(where the sizeof(long) is 8). On such architectures dont
assert if the datatype representation is not aligned on 64 bits.

This commit was SVN r20134.
2008-12-16 09:21:21 +00:00
George Bosilca
db424282f7 Fix an issue where the datatype description introduce a buffer misalignment. Because some
architectures (read SPARC64) require aligned accesses, we increase the storage space
when we pack a datatype description to keep the fields aligned. This has to be done
on both sided in order to be consistent.

This commit was SVN r20133.
2008-12-16 09:06:27 +00:00
George Bosilca
aa4e9da26d Correct the disp array when creating a data based on the
MPI_COMBINER_INDEXED_BLOCK combiner.

This commit was SVN r20123.
2008-12-13 01:57:27 +00:00
George Bosilca
7631eb8eed A fix for http://www.open-mpi.org/community/lists/users/2008/12/7502.php.
The solution is not to compute the OVERLAP flag, as the best we can do
is an approximative answer. Without this flag the unpack can leads to
unexpected answers if the data-type contain any overlapping regions.
As such datatypes are illegal in MPI, this became a user responsability.

This commit was SVN r20120.
2008-12-12 00:25:40 +00:00
George Bosilca
16598d7d39 When copying data using the same datatype don't ignore the gap in
the begining.

This commit was SVN r20034.
2008-11-25 00:26:12 +00:00
George Bosilca
3927c03e18 Correctly use the snprintf. Don't zap the last char.
This commit was SVN r20033.
2008-11-25 00:25:28 +00:00
Jeff Squyres
4f028171a2 Refs trac:1603:
* Add OMPI_F77_CHECK_REAL16_C_EQUV test whether REAL*16 is bit
   equivalent to long double.  AC_DEFINE OMPI_REAL16_MATCHES_C with
   result (0 or 1).
 * Update ompi_info to only show real16 support if
   OMPI_REAL16_MATCHES_C is 1.
 * Update DDT to only support REAL16 and COMPLEX32 if
   1==OMPI_REAL16_MATCHES_C.
 * MPI Op function pointer tabls will have NULL for the REAL16 and
   COMPLEX32 entries if 0==OMPI_REAL16_MATCHES_C.
 * Slightly cleaned up OMPI_F77_GET_ALIGNMENT and OMPI_F77_CHECK m4
   tests (use OMPI_VAR_SCOPE_PUSH/POP).

This commit was SVN r19948.

The following Trac tickets were found above:
  Ticket 1603 --> https://svn.open-mpi.org/trac/ompi/ticket/1603
2008-11-07 20:37:21 +00:00
George Bosilca
cf96404075 All convertors with a zero length are considered as contiguous.
This commit was SVN r19913.
2008-11-04 16:52:06 +00:00
Rich Graham
9d59c0fbd6 add comment on what ompi_convertor_need_buffers() does.
This commit was SVN r19757.
2008-10-16 15:40:21 +00:00
George Bosilca
2803de5298 Remove the protection around computing the remote size. This has to be done
always in a heterogeneous way in order to be able to support extern32. It
doesn't really matter as it is outside the critical path.

This commit was SVN r19651.
2008-09-26 23:11:53 +00:00
George Bosilca
ed0f5a18ce Typo.
This commit was SVN r19650.
2008-09-26 23:09:48 +00:00
Jeff Squyres
7d119a1c3b Fix CID 1116: ensure to check return code (patch approved by George
:-) ).

This commit was SVN r19584.
2008-09-19 13:28:04 +00:00
George Bosilca
697dc524c1 Deal with the ticket #1239 and #712. This will upgrade the Open MPI support
for the F90 type create functions to the requirements of MPI 2.1 standard.

Advice to implementors. An application may often repeat a call to
MPI_TYPE_CREATE_F90_xxxx with the same combination of (xxxx,p,r).
The application is not allowed to free the returned predefined, unnamed
datatype handles. To prevent the creation of a potentially huge amount of
handles, the MPI implementation should return the same datatype handle for
the same (REAL/COMPLEX/INTEGER,p,r) combination. Checking for the
combination (p,r) in the preceding call to MPI_TYPE_CREATE_F90_xxxx and
using a hash-table to find formerly generated handles should limit the
overhead of finding a previously generated datatype with same combination
of (xxxx,p,r). (End of advice to implementors.)

This commit fixes trac:1239, and #712.

This commit was SVN r19458.

The following Trac tickets were found above:
  Ticket 1239 --> https://svn.open-mpi.org/trac/ompi/ticket/1239
2008-08-31 18:36:32 +00:00
Shiqing Fan
3448952b1b - Add the *_C_DECLS (we compile with MS VC++).
This commit was SVN r19434.
2008-08-27 16:01:59 +00:00
George Bosilca
cb66115512 Add more optimizations in the case where heterogeneous support
is not enabled.

This commit was SVN r18932.
2008-07-17 04:54:47 +00:00
George Bosilca
1dba362a01 Make the ompi_ddt_dump function externally visible.
This commit was SVN r18668.
2008-06-18 08:37:43 +00:00
Ralph Castain
9613b3176c Effectively revert the orte_output system and return to direct use of opal_output at all levels. Retain the orte_show_help subsystem to allow aggregation of show_help messages at the HNP.
After much work by Jeff and myself, and quite a lot of discussion, it has become clear that we simply cannot resolve the infinite loops caused by RML-involved subsystems calling orte_output. The original rationale for the change to orte_output has also been reduced by shifting the output of XML-formatted vs human readable messages to an alternative approach.

I have globally replaced the orte_output/ORTE_OUTPUT calls in the code base, as well as the corresponding .h file name. I have test compiled and run this on the various environments within my reach, so hopefully this will prove minimally disruptive.

This commit was SVN r18619.
2008-06-09 14:53:58 +00:00
George Bosilca
21b940887a Tricky stuff !!! If we post a receive for ZERO bytes and we match it
with something with a different size ... well we segfault. The reason was
that the logic in the PML OB1 call the convertor based on the length
of he data on the wire and not the length of the data that the receiver
expects.

In other words, this is only half a patch :) It fix the problem, but we
still have to make sure the unpack is not called at all when the receiver
expect ZERO bytes.

This commit was SVN r18474.
2008-05-21 23:31:34 +00:00
Jeff Squyres
e7ecd56bd2 This commit represents a bunch of work on a Mercurial side branch. As
such, the commit message back to the master SVN repository is fairly
long.

= ORTE Job-Level Output Messages =

Add two new interfaces that should be used for all new code throughout
the ORTE and OMPI layers (we already make the search-and-replace on
the existing ORTE / OMPI layers):

 * orte_output(): (and corresponding friends ORTE_OUTPUT,
   orte_output_verbose, etc.)  This function sends the output directly
   to the HNP for processing as part of a job-specific output
   channel.  It supports all the same outputs as opal_output()
   (syslog, file, stdout, stderr), but for stdout/stderr, the output
   is sent to the HNP for processing and output.  More on this below.
 * orte_show_help(): This function is a drop-in-replacement for
   opal_show_help(), with two differences in functionality:
   1. the rendered text help message output is sent to the HNP for
      display (rather than outputting directly into the process' stderr
      stream)
   1. the HNP detects duplicate help messages and does not display them
      (so that you don't see the same error message N times, once from
      each of your N MPI processes); instead, it counts "new" instances
      of the help message and displays a message every ~5 seconds when
      there are new ones ("I got X new copies of the help message...")

opal_show_help and opal_output still exist, but they only output in
the current process.  The intent for the new orte_* functions is that
they can apply job-level intelligence to the output.  As such, we
recommend that all new ORTE and OMPI code use the new orte_*
functions, not thei opal_* functions.

=== New code ===

For ORTE and OMPI programmers, here's what you need to do differently
in new code:

 * Do not include opal/util/show_help.h or opal/util/output.h.
   Instead, include orte/util/output.h (this one header file has
   declarations for both the orte_output() series of functions and
   orte_show_help()).
 * Effectively s/opal_output/orte_output/gi throughout your code.
   Note that orte_output_open() takes a slightly different argument
   list (as a way to pass data to the filtering stream -- see below),
   so you if explicitly call opal_output_open(), you'll need to
   slightly adapt to the new signature of orte_output_open().
 * Literally s/opal_show_help/orte_show_help/.  The function signature
   is identical.

=== Notes ===

 * orte_output'ing to stream 0 will do similar to what
   opal_output'ing did, so leaving a hard-coded "0" as the first
   argument is safe.
 * For systems that do not use ORTE's RML or the HNP, the effect of
   orte_output_* and orte_show_help will be identical to their opal
   counterparts (the additional information passed to
   orte_output_open() will be lost!).  Indeed, the orte_* functions
   simply become trivial wrappers to their opal_* counterparts.  Note
   that we have not tested this; the code is simple but it is quite
   possible that we mucked something up.

= Filter Framework =

Messages sent view the new orte_* functions described above and
messages output via the IOF on the HNP will now optionally be passed
through a new "filter" framework before being output to
stdout/stderr.  The "filter" OPAL MCA framework is intended to allow
preprocessing to messages before they are sent to their final
destinations.  The first component that was written in the filter
framework was to create an XML stream, segregating all the messages
into different XML tags, etc.  This will allow 3rd party tools to read
the stdout/stderr from the HNP and be able to know exactly what each
text message is (e.g., a help message, another OMPI infrastructure
message, stdout from the user process, stderr from the user process,
etc.).

Filtering is not active by default.  Filter components must be
specifically requested, such as:

{{{
$ mpirun --mca filter xml ...
}}}

There can only be one filter component active.

= New MCA Parameters =

The new functionality described above introduces two new MCA
parameters:

 * '''orte_base_help_aggregate''': Defaults to 1 (true), meaning that
   help messages will be aggregated, as described above.  If set to 0,
   all help messages will be displayed, even if they are duplicates
   (i.e., the original behavior).
 * '''orte_base_show_output_recursions''': An MCA parameter to help
   debug one of the known issues, described below.  It is likely that
   this MCA parameter will disappear before v1.3 final.

= Known Issues =

 * The XML filter component is not complete.  The current output from
   this component is preliminary and not real XML.  A bit more work
   needs to be done to configure.m4 search for an appropriate XML
   library/link it in/use it at run time.
 * There are possible recursion loops in the orte_output() and
   orte_show_help() functions -- e.g., if RML send calls orte_output()
   or orte_show_help().  We have some ideas how to fix these, but
   figured that it was ok to commit before feature freeze with known
   issues.  The code currently contains sub-optimal workarounds so
   that this will not be a problem, but it would be good to actually
   solve the problem rather than have hackish workarounds before v1.3 final.

This commit was SVN r18434.
2008-05-13 20:00:55 +00:00
Ralph Castain
fa082cafa9 Shift the architecture calculation from the ompi/datatype engine to the opal/util area. This allows us to compute the architecture earlier in the launch and communicate it outside of the modex.
Note: this is an early preliminary step in the movement of portions of the datatype engine to the opal layer.

This commit was SVN r18198.
2008-04-17 20:43:56 +00:00
George Bosilca
58e31d767e Cleanup.
This commit was SVN r18067.
2008-04-02 06:35:24 +00:00
George Bosilca
9738ee7784 Add the logicalx types to fortran.
This commit was SVN r18066.
2008-04-02 06:34:46 +00:00
George Bosilca
5adaa88241 Cleanup the code and make it a little faster.
This commit was SVN r18038.
2008-03-31 17:12:03 +00:00
Rainer Keller
b7efc2b18e - Coverity issues CID 42:
Event var_deref_model: Variable "array_of_integers" tracked as NULL was
   passed to a function that dereferences it. [model]
   The arrays passed down type_get_contents may be NULL, only iff max_* is 0...
   If the max_* parameter does not fit, an error is returned, anyhow.
   One could improve the checks of MPI_PARAM_CHECK, but to be on the
   safe side, fix in dt_args.c.

This commit was SVN r17974.
2008-03-26 09:07:06 +00:00
Ralph Castain
d70e2e8c2b Merge the ORTE devel branch into the main trunk. Details of what this means will be circulated separately.
Remains to be tested to ensure everything came over cleanly, so please continue to withhold commits a little longer

This commit was SVN r17632.
2008-02-28 01:57:57 +00:00
Brian Barrett
2c142ae0a4 Let file compile with optimized builds (was complaining about undefined
snprintf)

This commit was SVN r17622.
2008-02-27 16:58:38 +00:00
Galen Shipman
6c5c842af6 add include file
This commit was SVN r17483.
2008-02-17 19:36:33 +00:00
George Bosilca
512b24affb Add support for all optional Fortran logical types (MPI_LOGICAL1,
MPI_LOGICAL2, MPI_LOGICAL4 and MPI_LOGICAL8). This commit close
the ticket #331.

This commit was SVN r17473.
2008-02-15 22:54:20 +00:00
George Bosilca
7ae83667e5 Should be #ifdef and not #if.
This commit was SVN r17411.
2008-02-10 21:48:33 +00:00
George Bosilca
f9d05603a1 Minimize the dependencies for the datatype header file (datatype.h)
and update all .c files.

This commit was SVN r17410.
2008-02-10 21:40:47 +00:00
George Bosilca
906e8bf1d1 Replace the ompi_pointer_array with opal_pointer_array. The next step
(sometimes after the merge with the ORTE branch), the opal_pointer_array
will became the only pointer_array implementation (the orte_pointer_array
will be removed).

This commit was SVN r17007.
2007-12-21 06:02:00 +00:00
Shiqing Fan
a0660f4deb - Just some type casts.
This commit was SVN r16100.
2007-09-12 15:29:58 +00:00
George Bosilca
8659a864e9 This is the real fix for ticket 317 and ticket 1065 and ticket 278.
This commit was SVN r16084.
2007-09-10 22:27:59 +00:00
George Bosilca
8622beda54 This commit should fix the issues with ticket 1065. Now, we correctly
duplicate the MPI_UB and MPI_LB datatypes.

This commit was SVN r16083.
2007-09-10 22:13:42 +00:00
Brian Barrett
f53b14bde5 George noted I had this logic completely backwards. Oops.
This commit was SVN r16005.
2007-08-29 16:18:04 +00:00
Brian Barrett
59b22533f2 Enable RDMA for heterogeneous situations. Currently done by overloading
the ompi_convertor_need_buffers function to only return 0 if the convertor
is homogeneous (which it never does on the trunk, but does to on v1.2, but
that's a different issue).  Only enable the heterogeneous rdma code for
a btl if it supports it (via a flag), as some btls need some work for this
to work properly.  Currently only TCP and OpenIB extensively tested

This commit was SVN r15990.
2007-08-28 21:23:44 +00:00
George Bosilca
d6a676b29e Remove unused variable.
This commit was SVN r15693.
2007-07-30 19:38:26 +00:00
George Bosilca
cf9bccf2e6 prefer snprintf to sprintf.
This commit was SVN r15692.
2007-07-30 19:37:34 +00:00
George Bosilca
c961cb5749 The Windows support is now back in bussiness.
This commit was SVN r15599.
2007-07-25 03:55:34 +00:00
George Bosilca
725f776bb2 This patch was originally proposed by Brian, I just did some small optimizations.
It solve the problem with the MPI_Aint alignment that showed up on Solaris
Sparc and on heterogeneous environments when dealing with the data-type description.
The solution is to move the displacement array from the packed array if we
detect that the local architecture required MPI_Aint to be aligned to an
MPI_Aint boundary (which is not the case for x86 architectures if MPI_Aint
is a 64 bits type).

This commit was SVN r15395.
2007-07-13 05:45:02 +00:00
Brian Barrett
1d02b9e7b5 Fix a bunch of issues exposed by Ken Cain in getting Open MPI to work with
VxWorks.  Still some issues remaining, I'm sure.

Refs trac:1010

This commit was SVN r15320.

The following Trac tickets were found above:
  Ticket 1010 --> https://svn.open-mpi.org/trac/ompi/ticket/1010
2007-07-10 03:46:57 +00:00
George Bosilca
11ff1b2c20 Add few OPAL_LIKELY/OPAL_UNLIKELY to the datatype engine.
This commit was SVN r15302.
2007-07-07 04:31:06 +00:00
George Bosilca
245310d7a7 If we have to complain about some pointer problems at least complain
about the right thing.

This commit was SVN r15300.
2007-07-06 16:56:04 +00:00