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

38 Коммитов

Автор SHA1 Сообщение Дата
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
Greg Koenig
60485ff95f This is a very large change to rename several #define values from
OMPI_* to OPAL_*.  This allows opal layer to be used more independent
from the whole of ompi.

NOTE: 9 "svn mv" operations immediately follow this commit.

This commit was SVN r21180.
2009-05-06 20:11:28 +00:00
Jeff Squyres
7ec52bc5a4 Per the lengthy discussion on this thread:
http://www.open-mpi.org/community/lists/users/2009/03/8402.php

Just #define away restrict in C++ because we don't have an
AC_CXX_RESTRICT test to see what the C++ compilers needs to support
"restrict".

This commit was SVN r20792.
2009-03-16 21:09:54 +00:00
Rainer Keller
fd28b392bf - An intrusive commit yet again (sorry): with the separation we
get bitten by header depending on having already included
   the corresponding [opal|orte|ompi]_config.h header.
   When separating, things like [OPAL|ORTE|OMPI]_DECLSPEC
   are missed.

   Script to add the corresponding header in front of all following
   (taking care of possible #ifdef HAVE_...)

 - Including some minor cleanups to
   - ompi/group/group.h -- include _after_ #ifndef OMPI_GROUP_H
   - ompi/mca/btl/btl.h -- nclude _after_ #ifndef MCA_BTL_H
   - ompi/mca/crcp/bkmrk/crcp_bkmrk_btl.c -- still no need for
     orte/util/output.h
   - ompi/mca/pml/dr/pml_dr_recvreq.c -- no need for mpool.h
   - ompi/mca/btl/btl.h -- reorder to fit
   - ompi/mca/bml/bml.h -- reorder to fit
   - ompi/runtime/ompi_mpi_finalize.c -- reorder to fit
   - ompi/request/request.h -- additionally need ompi/constants.h

 - Tested on linux/x86-64

This commit was SVN r20720.
2009-03-04 15:35:54 +00:00
Jeff Squyres
bb3d258562 Round up a few places where PATH_MAX was used instead of
OMPI_PATH_MAX.  Thanks to Andrea Iob for the bug report.

This commit was SVN r20360.
2009-01-27 22:57:50 +00:00
Rolf vandeVaart
1872a7b75d This change allows the trunk to be compiled with Sun
Studio compilers again. It has been broken since
1/14/2009 when some changes exposed a bug in autoconf
and how it handles support for the restrict keyword.
Basically, Sun Studio C supports the restrict keyword
but Sun Studio C++ does not.

I am also pursuing a fix with the autoconf folks, but
this change was needed to get things building again.

This commit was SVN r20351.
2009-01-26 20:13:44 +00:00
George Bosilca
87459a36c9 The comment states it all.
This commit was SVN r19505.
2008-09-05 13:18:10 +00:00
Brian Barrett
e9c50a29ba Some (rare) platforms only have a #define for htonl and friends,
but not anything in libc.  Which causes an incorrect answer for
AC_CHECK_FUNCS.  Work around that by also checking for the
#define.

This commit was SVN r18730.
2008-06-24 23:20:25 +00:00
Rainer Keller
b0cbeb0b41 - Add detection of __attribute__((hot)) and __attribute__((cold))
to allow explicit grouping of hot functions into similar code
   sections upon link-time. Should decrease TLB misses (iff the code-
   section is really too large)...
   Candidates for __opal_attribute_hot__ are MPI_Isend MPI_Irecv,
   MPI_Wait, MPI_Waitall
   Candidates for __opal_attribute_cold__ are MPI_Init, MPI_Finalize and
   MPI_Abort...

This commit was SVN r18421.
2008-05-10 10:38:51 +00:00
Brian Barrett
39a6057fc6 A number of improvements / changes to the RML/OOB layers:
* General TCP cleanup for OPAL / ORTE
  * Simplifying the OOB by moving much of the logic into the RML
  * Allowing the OOB RML component to do routing of messages
  * Adding a component framework for handling routing tables
  * Moving the xcast functionality from the OOB base to its own framework

Includes merge from tmp/bwb-oob-rml-merge revisions:

    r15506, r15507, r15508, r15510, r15511, r15512, r15513

This commit was SVN r15528.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r15506
  r15507
  r15508
  r15510
  r15511
  r15512
  r15513
2007-07-20 01:34:02 +00:00
Jeff Squyres
8ace07efed This commit brings in two major things:
1. Galen's fine-grain control of queue pair resources in the openib
   BTL.
1. Pasha's new implementation of asychronous HCA event handling.

Pasha's new implementation doesn't take much explanation, but the new
"multifrag" stuff does.  

Note that "svn merge" was not used to bring this new code from the
/tmp/ib_multifrag branch -- something Bad happened in the periodic
trunk pulls on that branch making an actual merge back to the trunk
effectively impossible (i.e., lots and lots of arbitrary conflicts and
artifical changes).  :-(

== Fine-grain control of queue pair resources ==

Galen's fine-grain control of queue pair resources to the OpenIB BTL
(thanks to Gleb for fixing broken code and providing additional
functionality, Pasha for finding broken code, and Jeff for doing all
the svn work and regression testing).

Prior to this commit, the OpenIB BTL created two queue pairs: one for
eager size fragments and one for max send size fragments.  When the
use of the shared receive queue (SRQ) was specified (via "-mca
btl_openib_use_srq 1"), these QPs would use a shared receive queue for
receive buffers instead of the default per-peer (PP) receive queues
and buffers.  One consequence of this design is that receive buffer
utilization (the size of the data received as a percentage of the
receive buffer used for the data) was quite poor for a number of
applications.

The new design allows multiple QPs to be specified at runtime.  Each
QP can be setup to use PP or SRQ receive buffers as well as giving
fine-grained control over receive buffer size, number of receive
buffers to post, when to replenish the receive queue (low water mark)
and for SRQ QPs, the number of outstanding sends can also be
specified.  The following is an example of the syntax to describe QPs
to the OpenIB BTL using the new MCA parameter btl_openib_receive_queues:

{{{
-mca btl_openib_receive_queues \
     "P,128,16,4;S,1024,256,128,32;S,4096,256,128,32;S,65536,256,128,32"
}}}

Each QP description is delimited by ";" (semicolon) with individual
fields of the QP description delimited by "," (comma).  The above
example therefore describes 4 QPs.

The first QP is:

    P,128,16,4

Meaning: per-peer receive buffer QPs are indicated by a starting field
of "P"; the first QP (shown above) is therefore a per-peer based QP.
The second field indicates the size of the receive buffer in bytes
(128 bytes).  The third field indicates the number of receive buffers
to allocate to the QP (16).  The fourth field indicates the low
watermark for receive buffers at which time the BTL will repost
receive buffers to the QP (4).

The second QP is:

    S,1024,256,128,32

Shared receive queue based QPs are indicated by a starting field of
"S"; the second QP (shown above) is therefore a shared receive queue
based QP.  The second, third and fourth fields are the same as in the
per-peer based QP.  The fifth field is the number of outstanding sends
that are allowed at a given time on the QP (32).  This provides a
"good enough" mechanism of flow control for some regular communication
patterns.

QPs MUST be specified in ascending receive buffer size order.  This
requirement may be removed prior to 1.3 release.

This commit was SVN r15474.
2007-07-18 01:15:59 +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
Brian Barrett
bc32a0f1bc Don't build all the network support code on systems without sockets (like
the Cray XT3)

This commit was SVN r14797.
2007-05-30 15:25:22 +00:00
Brian Barrett
33a5758521 Some IPv6 improvements:
* Move ipv6comat.h code into opal_config_bottom.h and change into some
    more intelligent testing of structures
  * Change opal's if interface to use sockaddr instead of sockaddr_storage,
    as the RFCs suggest we do
  * Move the networking code in opal that isn't directly related to if
    detection into net.h
  * Add quicky function to get the port out of either a sockaddr_in
    or sockaddr_in6, saving a bunch of code in the oob.
  * Update TCP oob and btl with new interface

This commit was SVN r14679.
2007-05-17 01:17:59 +00:00
Sven Stork
a04c8eb39a - Bring over the visibility feature, for a finer symbol export control
via the visibility feature that is provided by some compilers.

  Per default this feature is disabled, to enable it you need to
  configure with --enable-visibility and obviously you need a compiler
  with visibility support. Please refer to the wiki for more information.
  https://svn.open-mpi.org/trac/ompi/wiki/Visibility

This commit was SVN r14582.
2007-05-04 09:03:37 +00:00
Sven Stork
7341af93cf - fix comment to refer to the right header file
This commit was SVN r14528.
2007-04-26 09:36:47 +00:00
Brian Barrett
dce72aab70 Prior to Mac OS X 10.3, the length modifier "ll" wasn't
supported, but "q" was for long long.  This isn't ANSI
C and causes a warning when using PRI?64 macros.  We
don't support versions prior to OS X 10.3, so we dont'
need such backward compatibility.  Instead, redefine
the macros to be "ll", which is ANSI C and doesn't
cause a compiler warning.

Fixes trac:868

This commit was SVN r14358.

The following Trac tickets were found above:
  Ticket 868 --> https://svn.open-mpi.org/trac/ompi/ticket/868
2007-04-12 16:34:01 +00:00
George Bosilca
50f2695fe2 Be more generic with the Windows support.
This commit was SVN r14185.
2007-04-01 15:56:59 +00:00
Brian Barrett
75bfb1f0be Make BEGIN_C_DECLS and END_C_DECLS publically available so that they can see
wider use

This commit was SVN r13869.
2007-03-01 17:25:21 +00:00
Rainer Keller
38696e8d32 - Check for attributes, after C and C++ have been set up.
- Set ompi-specific autoconf cache-variables
 - Implement one function to check for availability of an
   attribute with the possibility for a cross-check.
 - Do cross-checks for
     __attribute__(format)
     __attribute__(nonnull)
     __attribute__(sentinel)
     __attribute__(warn_unused_result)
 - Grep the compilers warnings for keywords regarding ignored
   attributes.
 - Include also the no_instrument_function

This commit was SVN r13556.
2007-02-08 13:34:44 +00:00
George Bosilca
30b2c55900 Move the attribute definition at the beginning of the
opal_config_bottom.h file.

This commit was SVN r13461.
2007-02-02 06:28:30 +00:00
Rainer Keller
1766b7e90d - Attribute Nonnull may take an argument __opal_attribute_nonnull__
This commit was SVN r13392.
2007-01-31 15:07:54 +00:00
Sven Stork
b7ef2027de fix broken attribute definitions:
The OMPI_HAVE_ATTRIBUTE flag is always set when the oldest attribute
is supported. But in all cases when the OMPI_HAVE_ATTRIBUTE is set and 
one of the attributes is not supported the empty declaration is missing.

This commit was SVN r13390.
2007-01-31 14:30:51 +00:00
Rainer Keller
284c757fde - Properly set the macros, if the two attributes are not available.
This commit was SVN r13387.
2007-01-31 09:31:11 +00:00
Rainer Keller
7d799523e5 - include the attributes for always_inline and sentinel
This commit was SVN r13373.
2007-01-30 21:26:08 +00:00
Rainer Keller
2bda2f5d8c - Fix and extend the attribute checking macros for the
most common attributes. Useful attributes may be:
   - optimization (pure, const, malloc--restrictness)
   - data layout (packed)
   - interface definition, API (deprecated, visibility, weak alias)
   - compiler hint for code analysis and debugging (nonnull, format)

This commit was SVN r13369.
2007-01-30 20:52:46 +00:00
Brian Barrett
4dad3ef3ef Follow on to r12146. For platforms that dont' have a ptrdiff_t definition,
provide one for the internals of Open MPI.  For mpi.h, typedef MPI_Aint
either to ptrdiff_t or whatever we used as ptrdiff_t if that type doesn't
actually exist.

This commit was SVN r12212.

The following SVN revision numbers were found above:
  r12146 --> open-mpi/ompi@8852c00c36
2006-10-20 03:24:59 +00:00
Jeff Squyres
c9d244a298 Rename some OMPI_* macros to be OPAL_* macros.
This commit was SVN r11598.
2006-09-08 23:42:32 +00:00
Jeff Squyres
c068bc155a First steps towards IPv6 support. Mainly to support the guys working
on it, even though there's no other IPv6 code in the tree yet.

This commit was SVN r11561.
2006-09-08 00:10:40 +00:00
George Bosilca
07b8d3c72c On Windows we can now deliver Open MPI on several flavors:
- everything statically built (dynamically opened).
- OPAL, ORTE and OMPI static libraries and all the components
  as dynamic files(DLL).
- everything as dynamic files (DLL).

This commit was SVN r11461.
2006-08-28 04:19:42 +00:00
George Bosilca
522cae342b Don't keep a special case for Windows as it's wrong. The problem is that
the BOOL type predefined on Windows in C does not match the C++ bool type
for the same compiler. One is an int when the other is a char.
Make sure we check for bool for all non C++ compilers.

This commit was SVN r11429.
2006-08-25 23:16:49 +00:00
George Bosilca
4b28cd18e9 The master file for the Windows port. There are several big changes.
One of the most important is the IOVBASE_TYPE which should be used
all over the places for casting to and from the iov_base field of
the iovec struct. The reason is because windows does not support
any kind of implicit conversion (not even through void*). All
conversions should be EXPLICIT.

This commit was SVN r11328.
2006-08-22 19:28:47 +00:00
George Bosilca
6ef0acf99f The names of the defines should start with OPAL as they belong to the
OPAL layer.
We now support 64 bits Windows too.

This commit was SVN r11312.
2006-08-21 21:55:41 +00:00
George Bosilca
6afa4c6c64 Windows friendly version. We have to split the OMPI_DECLSPEC in at least 3
different macros, one for each project. Therefore, now we have OPAL_DECLSPEC,
ORTE_DECLSPEC and OMPI_DECLSPEC. Please use them based on the sub-project.

This commit was SVN r11270.
2006-08-20 15:54:04 +00:00
George Bosilca
0320551262 Update include path.
This commit was SVN r9156.
2006-02-27 02:15:53 +00:00
Brian Barrett
eafb3bc7ca *include opal_stdint.h, not ompi_stdint.h
This commit was SVN r8987.
2006-02-12 02:54:31 +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