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

48 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
f28095e632 Bunches of fixes for Fortran support:
- Fully support REAL*N, INTEGER*N, and COMPLEX*N in the MPI_Op
  reduction operations.
- Update ddt to fully support these types as well, to include using
  the results of sizes and alignments determined by configure
- Discover the goodness of m4 and consolidate a LOT of configure code
  (i.e., remove a lot of essentially duplicated code and
  m4-subroutine-ize it).  The big kicker was figuring out how to
  parameterize AC_DEFINE_UNQUOTED, which you can do if you use m4
  properly.
- If we don't support a given INTEGER*N, REAL*N, or COMPLEX*N, don't
  error.  Just set the right flags so that we don't support them in
  the MPI layer.

This commit was SVN r5788.
2005-05-19 23:56:02 +00:00
Jeff Squyres
fe2522f315 A bunch of changes to support MPI_INTEGER*x, MPI_REAL*x,
MPI_COMPLEX*x, and some optional C datatypes in MPI reduction
operations.  These types are not technically supported by the letter
of the MPI standard, but are implied by the spirit of it (and there
are definitely users that use them in real applications)

- Add checks in configure for back-end C types for MPI_INTEGER*x and
  MPI_REAL*x
- Create C data structs for MPI_COMPLEX*x
- Fixed typo for MPI_INTEGER8 in mpi.h
- Updated configure macros to create MPI_FORTRAN_INTEGER* defines, as
  opposed to MPI_FORTRAN_INT, which was causing [me] lots of confusion
  (between C "*_INT" names and Fortran "*_INT" names).  This caused
  some trivial updates in ddt, ompi_info, and the MPI layer to match.
- Update ompi_info to show whether we have each MPI_INTEGER*x,
  MPI_REAL*x, and MPI_COMPLEX*x
- Extended reduction operations for optional datatypes:
  - "C integer" now includes long long int, long long, and unsigned
    long long
  - "Fortran integer" now includes MPI_INTEGER*x
  - "Floating point" now includes MPI_REAL*x
  - "Complex" now includes MPI_COMPLEX*x

This commit was SVN r5511.
2005-04-27 10:23:06 +00:00
Brian Barrett
8b69a532b7 * the next (and hopefullly last!) ompi_config_bottom.h fixup for Windows.
Last night's fix completely disregarded building the DSO components,
  which need to have the dllimport flag set for all the libmpi stuff, and
  need to export their component structures.  Unfortunately needed to
  add another #define to deal with the components for windows, but
  it required the least amount of work for all the non-Windows people.

This commit was SVN r5461.
2005-04-20 01:30:06 +00:00
Josh Hursey
0c3bfad751 back out windows changes
This commit was SVN r5451.
2005-04-19 16:01:42 +00:00
Josh Hursey
14ada6ff91 Fixed up for Windows build...
This commit was SVN r5431.
2005-04-19 04:21:50 +00:00
Brian Barrett
0964152893 clean up the OMPI_BUILDING #define. Rather than being defined to 1 if
we are part of the source tree and not defined otherwise, we are going
with an always defined if ompi_config.h is included policy.  If
ompi_config.h is included before mpi.h or before OMPI_BUILDING is set,
it will set OMPI_BUILDING to 1 and enable all the internal code that
is in ompi_config_bottom.h.  Otherwise, it will only include the
system configuration data (enough for defining the C and C++ interfaces
to MPI, but not perturbing the user environment).

This should fix the problems with bool and the like that the Eclipse
folks were seeing.  It also cleans up some build system hacks that
we had along the way.

Also, don't use int64_t as the default size of MPI_Offset, because it
requires us including stdint.h in mpi.h, which is something we really
shouldn't be doing.

And finally, fix a ROMIO Makefile that didn't set -DOMPI_BUILDING=1,
as ROMIO includes mpi.h, but not ompi_config.h

This commit was SVN r5430.
2005-04-19 03:51:20 +00:00
Jeff Squyres
61f55f1011 Fix the problem with the nightly unit tests -- do *not* override
OMPI_ENABLE_DEBUG because that changes the size of struct's (e.g.,
ompi_object) in the unit tests as compared to what may have been
compiled in the library.

This commit was SVN r5373.
2005-04-15 13:32:18 +00:00
George Bosilca
aa421ffc45 Move the definition if INADDR_NONE in the unique file that use it. Anyway the
ompi_config_bottom.h was a bad place to have it as normally this file is included
before everything else so we always define our own INADDR_NONE generating
a lot of warnings on some OSes.

This commit was SVN r5198.
2005-04-07 02:18:41 +00:00
Jeff Squyres
71d423529a - Removed some useless C++ protection
- Added some protection to portions that should only be used when
  we're building OMPI (not, for example, when mpicc is being used to
  compile a user's MPI application)

This commit was SVN r5082.
2005-03-29 02:48:50 +00:00
Jeff Squyres
9d7ed5f7c0 Fix borked prior commit:
- INADDR, not IFADDR.  Duh.
- Accidentally removed another comment; restored.

This commit was SVN r5070.
2005-03-28 20:25:39 +00:00
Jeff Squyres
6f0b7d3cac A simpler way to do the same thing.
This commit was SVN r5063.
2005-03-28 15:42:02 +00:00
Jeff Squyres
3f5541349a Add UC copyright
This commit was SVN r5009.
2005-03-24 12:43:37 +00:00
Brian Barrett
aa70a35fea * Sync trunk to r4977 of the tim branch
This commit was SVN r4978.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r4977
2005-03-22 00:31:17 +00:00
Brian Barrett
0d82642b40 * Split thread support build conditionals into MPI threads and progress
threads (defaults to use MPI threads, disable progress threads).  This
  allows us to have MPI threaded support, but without progress threads
  and all that fun stuff.

This commit was SVN r4443.
2005-02-16 17:42:07 +00:00
Brian Barrett
b7c2c47494 Solaris portability fixes, round 1:
- Use fcntl.h, not sys/fcntl.h (man pages on every platform I could find
    say fcntl.h and solaris/AIX don't provide sys/fcntl.h)
  - Make timeradd macro available on platforms where sys/time.h exists but
    timeradd macro doesn't (Solaris)
  - Include util/printf.h from ompi_config_bottom.h so that ompi_asprintf
    and friends are always available.

This commit was SVN r4441.
2005-02-16 15:38:37 +00:00
Prabhanjan Kambadur
2439244f0c These are some changes which will enable dynamic builds to go through on Windows. Most of the changes are in adding/deleting windows symbol exporting things.
This commit was SVN r4377.
2005-02-10 19:08:35 +00:00
Jeff Squyres
76f2125c98 Fix some compiler warnings (specifically, from icc v8.0)
This commit was SVN r4093.
2005-01-21 13:54:38 +00:00
Prabhanjan Kambadur
9ac9f15537 These are the changes after the review with Jeff. Mostly are fixes for OOB and TCP
This commit was SVN r4070.
2005-01-20 00:03:23 +00:00
Jeff Squyres
616269a9be Add HLRS copyright
This commit was SVN r3665.
2004-11-28 20:09:25 +00:00
Jeff Squyres
0c05204c13 Arf -- didn't test the OMPI_DEBUG_ZERO with an optimized build, and it
caused the nightlies to fail.  Move the definition of OMPI_DEBUG_ZERO
up to ompi_config_bottom.h and now all is well.

This commit was SVN r3664.
2004-11-27 12:43:19 +00:00
Jeff Squyres
d39fbd7958 - Remove "ompi_config.h" from util/malloc.h. malloc.h is only ever
included by ompi_config_bottom.h, so it's redundant to include
  ompi_config.h in it.
- Add OMPI_DEBUG_ZERO macro for zeroing out memory while debugging so
  that valgrind (et al.) don't complain about uninitialized memory
  when we know it's safe.
- correct a comment in ompi_config_bottom.h to make it have the
  correct filename

This commit was SVN r3662.
2004-11-26 22:13:52 +00:00
Rainer Keller
ce215e607c Fix a small buglet for typedef'ing bool-types on systems/compilers
without this type.

This commit was SVN r3657.
2004-11-24 10:48:31 +00:00
Jeff Squyres
e9ed717748 First cut at copyrights: IU, UTK, and some OSU. LANL and HLRS still
pending.

This commit was SVN r3655.
2004-11-22 01:38:40 +00:00
Prabhanjan Kambadur
5cac9a3498 making some changes to ompi_config_bottom and also changing the logic for windows portion of ompi_empty_dir
This commit was SVN r3480.
2004-11-02 21:48:31 +00:00
Prabhanjan Kambadur
fe98e6e0ed some more changes which are required
This commit was SVN r3473.
2004-11-02 15:14:04 +00:00
Prabhanjan Kambadur
4d4bc1d3ee some oter stupid things i missed out on. changing BOOL to be defined only if we are building the library, not needed otherwise. moving OMPI_DECLSPEC to the top
This commit was SVN r3469.
2004-11-02 13:22:08 +00:00
Jeff Squyres
1a0a3428ea Check for __func__, per suggestion from Ranier (oops; thought I had
already committed this :D )

This commit was SVN r3442.
2004-10-29 19:14:11 +00:00
Prabhanjan Kambadur
e2e3bead65 fixing up small mistakes
This commit was SVN r3399.
2004-10-28 19:12:45 +00:00
Jeff Squyres
eb4267d6d2 George pointed out last night that I didn't take into account the fact
that the C compiler may support bool with no help from <stdbool.h>.
So add another configure test and adjust ompi_config_bottom.h as
appropriate.  Since the #if logic in ompi_config_bottom.h got a little
complicated w.r.t. bool, I indented to make the conditionals clear.

This commit was SVN r3291.
2004-10-22 20:30:59 +00:00
Prabhanjan Kambadur
4257467fec this is the big windows commit. there are more things which have gone into this than i can remember. but basically, we are looking for
1. header file and source file protections using #ifdef WIN32
2. new files and directories to support windows functionality
3. appropritate linkage symbols added (OMPI_DECLSPEC) for windows
4. some functions are unimplemented on the windows side. this is mostly
because there might not be need to implement it in windows land. eg., forking
a daemon off
5. Introduced locking mechanisms for windows

This commit was SVN r3286.
2004-10-22 16:06:05 +00:00
Jeff Squyres
303c38cde9 Fix for bug 1030 -- ensure C and C++ bool's are the same size and
alignment.  Right now, we only check for char, short, and int.  If we
ever run across a platform where one of those three don't work, we'll
need to extend ompi_config_bottom.h.  :-)

This commit was SVN r3271.
2004-10-21 19:57:00 +00:00
Prabhanjan Kambadur
dac14aaf94 committing the header file fixes for protection against C++ name mangling. This is a hge commit. Please make sure that your files are protected right. There is some redundan protection in that the protection has been added right at teh beginning and at teh end ion some cases even thught typedefs are not requred to be protected. But this was done in order to have teh minimal change to the code base
This commit was SVN r3246.
2004-10-20 22:31:03 +00:00
Brian Barrett
c360c8c490 * Make sure we get all the MAX/MIN values when using a C++ compiler so that
the nameserver includes are correct when using a C++ compiler

This commit was SVN r3196.
2004-10-18 16:08:35 +00:00
Jeff Squyres
2d5c0d1edc These declarations are repeated in src/util/printf.h, and apparently
everywhere in the tree that uses these functions includes that header
file.  So these are redundant.

This commit was SVN r3188.
2004-10-16 12:36:53 +00:00
Jeff Squyres
5686df5a37 - The declaration for ompi_mpi_param_check really didn't belong in
ompi_config_bottom.h -- it's already in src/mpi/runtime/params.h.
- Add /src/mpi/runtime/params.h to a small number of places.
- Remove some useless run-time checks in MPI fortran functions

This commit was SVN r3177.
2004-10-15 21:50:59 +00:00
Brian Barrett
d7528d1fd3 * remove the pre-ANSI C vararg code, only have the ANSI-C stdarg code
This commit was SVN r3138.
2004-10-14 19:39:21 +00:00
Jeff Squyres
8bef16d214 - some OS's #define malloc, calloc, free, realloc -- ensure to #undef
them when necessary
- we didn't have the re-definition for calloc

This commit was SVN r2863.
2004-09-27 17:15:06 +00:00
Jeff Squyres
95ce0f3f64 - Fix the #endif for cplusplus
- Revise the comment to be a little more accurate in its explanation
  :-)

This commit was SVN r2855.
2004-09-24 10:02:23 +00:00
Prabhanjan Kambadur
291d7bfcaf Including the weird definitions for windoze function exporting
This commit was SVN r2845.
2004-09-23 16:14:04 +00:00
David Daniel
5ce8144d91 Probably an unpopular change, but...
In order to get consistent behaviour on linux with various gcc versions,
I am defining _GNU_SOURCE in ompi_config.h and changing the definition
of asprintf, etc.

Problems:
1) autoconf was defining _GNU_SOURCE for its tests, but we were not
setting it
2) g++ sets it by default (I think)
3) some version of gcc set it by default

If somebody knows a consistent solution for these problems then we can
revert to not setting it.

This commit was SVN r2230.
2004-08-19 19:27:15 +00:00
David Daniel
e865b75241 fixes for Solaris
This commit was SVN r2155.
2004-08-15 23:54:30 +00:00
David Daniel
ac36e0fc27 Adding conditionals for portable (v)asprintf and (v)snprintf implementations
This commit was SVN r2026.
2004-08-10 22:41:17 +00:00
Jeff Squyres
a721849e84 While waiting for a lengthy compile, I noticed a bunch of old remnants
from the "LAM/MPI" -> "Open MPI" name change that didn't convert
properly.  So this commit fixes all instances of "OMPI/MPI" to "Open
MPI".

This commit was SVN r1924.
2004-08-06 14:30:18 +00:00
Jeff Squyres
2399ac3cf8 Check for case where we *have* <stdbool.h>, but it doesn't *work*
(e.g., Portland compilers don't have/know about <stdbool.h>, but
AC_CHECK_HEADERS will typically find the GNU/gcc <stdbool.h>).
Reviewed by Brian.

This commit was SVN r1889.
2004-08-05 11:12:25 +00:00
Jeff Squyres
b3a98bab00 Add some protection for redefining malloc/realloc/free -- we do not
want to do this in the C++ MPI bindings.

This commit was SVN r1713.
2004-07-14 15:13:32 +00:00
Jeff Squyres
a5a712b31f Lots of changes in this commit, mostly having to do with the first
real commit of the collectives.  MPI_SCAN and MPI_EXSCAN are still not
implemented, but lots of other things are in the critical path and
holding up other people, so it's ok to commit without them:

- better checks for sizes in configure, and add defaults for fortran
  sizes if we don't have a fortran compiler
- fix some logic that was accidentally broken for size checks for the
  file type offset_t
- add some C equivalent types for fortran's complex and double complex
  (for use in internal reduction/op functions)
- additionals and slight reorganization of ompi_mpi_init()
  ompi_mpi_finalize()
- fully implement all top-level MPI collective calls, including all
  param checking for both intra- and inter-communicators (woof)
- change the communicator_t type for stuff that we need in coll, and
  update all references throughout the code base to match
- all kinds of updates to the coll framework base
- next cut of the basic coll module -- has all intracommunicator
  collectives implemented except scan and exscan (see note above).
  All intercommunicator functions return ERR_NOT_IMPLEMENTED.
- MPI_Op is a fixed implementation -- not component-ized yet.  So
  there are generic C loops for all implementations.

This commit was SVN r1491.
2004-06-29 00:02:25 +00:00
Tim Woodall
abba2b038c - removed src/mem directory
- moved mem/free_list.h to class/ompi_free_list.h
- moved mem/malloc.h to util/malloc.h
- added src/mca/mpool component type

This commit was SVN r1274.
2004-06-15 19:07:45 +00:00
David Daniel
2f96ba71fe renaming files
This commit was SVN r1192.
2004-06-07 15:40:19 +00:00