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

1855 Коммитов

Автор SHA1 Сообщение Дата
Sven Stork
d09863926c - fix dist target
This commit was SVN r11421.
2006-08-25 09:45:08 +00:00
George Bosilca
c8daf226b6 Export the RDMA OSC.
This commit was SVN r11417.
2006-08-24 21:17:31 +00:00
Brian Barrett
6e390155a1 * Add constants related to one-sided support that were missing from the
fortran include files

This commit was SVN r11416.
2006-08-24 21:14:05 +00:00
Jeff Squyres
17d313f6e1 It turns out that Fortran has some specific rules about copying
strings.  Here's one: no matter how much of the string you copy, the
destination string must be space-padded for the entire remaining area.
Specifically, even if you call MPI_INFO_GET and tell MPI to only copy
a max of N characters of the value into the result string, if the
Fortran string is M characters (where M > N), MPI must space-pad the
remaining (M-N) characters to be spaces.  So you're supposed to obey
the argument to MPI_INFO_GET... sorta.

Precedents:

 * http://www.ibiblio.org/pub/languages/fortran/ch2-13.html
 * LAM/MPI
 * Sun CT MPI

This commit was SVN r11412.
2006-08-24 19:11:39 +00:00
George Bosilca
6f4aa36dfc Add this header file in order to allow the export of the component structure.
This commit was SVN r11404.
2006-08-24 17:40:22 +00:00
Sami Ayyorgun
aa8cd63418 changed some barrier variables for shared-memory to volatile
This commit was SVN r11403.
2006-08-24 16:53:10 +00:00
Torsten Hoefler
6b22641669 added LibNBC (http://www.unixer.de/NBC) as collv1 (blocking) component.
I know it does not make much sense but one can play around with the
performance. Numbers are available at http://www.unixer.de/research/nbcoll/perf/.
This is the first step towards collv2. Next step includes the addition
of non-blocking functions to the MPI-Layer and the collv1 interface.

It implements all MPI-1 collective algorithms in a non-blocking manner.
However, the collv1 interface does not allow non-blocking collectives so
that all collectives are used blocking by the ompi-glue layer.

I wanted to add LibNBC as a separate subdirectory, but I could not
convince the buildsystem (and had not the time). So the component looks
pretty messy. It would be great if somebody could explain me how to move
all nbc*{c,h}, and {hb,dict}*{c,h} to a seperate subdirectory.

It's .ompi_ignored because I did not test it exhaustively yet.

This commit was SVN r11401.
2006-08-24 16:47:18 +00:00
George Bosilca
3f0a7cad9e The last patch for Windows support. Mostly casting and conversion to C++ friendly headers.
This commit was SVN r11400.
2006-08-24 16:38:08 +00:00
George Bosilca
b8f54ae381 The ompi_group_table is never referenced. So wipe it out.
This commit was SVN r11399.
2006-08-24 16:27:08 +00:00
Gleb Natapov
21e99cd334 init mtu parameter when no warn is set.
This commit was SVN r11388.
2006-08-24 10:42:42 +00:00
Jeff Squyres
918d1e018f Un-friggen' believable. The values for MPI_WIN_BASE, MPI_WIN_SIZE,
and MPI_WIN_DISP_UNIT were off by one from their C counterparts.

This fixes trac:304.

This commit was SVN r11385.

The following Trac tickets were found above:
  Ticket 304 --> https://svn.open-mpi.org/trac/ompi/ticket/304
2006-08-24 03:33:35 +00:00
George Bosilca
d6b6f465b6 Cast everything to make the microsoft C++ compiler happy.
This commit was SVN r11373.
2006-08-23 16:35:16 +00:00
George Bosilca
f8f2dd8e03 As class is a reserved keyword we are not supposed to have any variables
with this name.

This commit was SVN r11372.
2006-08-23 16:34:00 +00:00
Jeff Squyres
8b4b9b9a8e Oops -- in MPI_INFO_GET_NTHKEY, the key argument is an '''out'''
value, not an '''in''' value.  So the string needs to be converted
c2f, not f2c.

This commit was SVN r11367.
2006-08-23 14:43:47 +00:00
Jeff Squyres
fd9a94434d Update to r11332. This seems like a slightly safer fix.
This commit was SVN r11358.

The following SVN revision numbers were found above:
  r11332 --> open-mpi/ompi@4f984056ac
2006-08-23 13:46:05 +00:00
Jeff Squyres
523128100e A bunch of fixes for Fortran string issues. In general, ensure to
convert between fortran and C string representations properly.  In
doing so, we properly adhere to the MPI spec stating that MPI_Info
keys and values must be whitespace-trimmed when coming in from
Fortran.  Hence, this fixes bug #241.

This commit was SVN r11356.
2006-08-23 13:10:44 +00:00
George Bosilca
b621313653 Remove all references to the removed files.
This commit was SVN r11344.
2006-08-23 02:18:24 +00:00
George Bosilca
858dba5f13 These files are not usefull anymore.
This commit was SVN r11343.
2006-08-23 01:26:58 +00:00
Brian Barrett
4f984056ac MPI_STATUS_SIZE in Fortran is 5, so we need to jump by 5 integers instead
of 4 when we are finding the next MPI_STATUS in the array.

Refs trac:236

This commit was SVN r11332.

The following Trac tickets were found above:
  Ticket 236 --> https://svn.open-mpi.org/trac/ompi/ticket/236
2006-08-22 20:20:46 +00:00
Brian Barrett
1c4de419cc * fix Galen's typo ;)
This commit was SVN r11331.
2006-08-22 20:18:53 +00:00
Galen Shipman
73e9ef46fc use int32_t not size_t (ORTE interface change)..
This commit was SVN r11323.
2006-08-22 17:13:10 +00:00
Galen Shipman
fbf7e9cf1c use int32_t's not size_t's (interface change in ORTE)..
This commit was SVN r11322.
2006-08-22 16:26:36 +00:00
Galen Shipman
99d526a07c Add support for 1_0_0 source btl components
This commit was SVN r11321.
2006-08-22 16:25:36 +00:00
George Bosilca
6fc16516cc orte_std_cntr_t vs. size_t round 3. I back up this one as it
wasn't suppose to be committed (and because it's wrong).

This commit was SVN r11318.
2006-08-22 15:15:09 +00:00
George Bosilca
0417d27f46 orte_std_cntr_t vs. size_t round 2. Advantage for size_t ...
This commit was SVN r11317.
2006-08-22 14:58:31 +00:00
Jeff Squyres
fbb484dea2 MPI_COMM_GET_NAME had the compiler-added extra string length parameter
(but didn't use it), but MPI_TYPE_GET_NAME and MPI_WIN_GET_NAME did
not.

This commit changes all three functions to pass the compile-added
string length parameter to clear out the remainder of the string with
spaces (i.e., the rest of the string that was not set with the name).
This is what was done in LAM/MPI, and apparently what was done in
Sun's MPI, because the test that Rolf attached now passes.

Fixes trac:274.

This commit was SVN r11301.

The following Trac tickets were found above:
  Ticket 274 --> https://svn.open-mpi.org/trac/ompi/ticket/274
2006-08-21 19:35:33 +00:00
Ralph Castain
6d27fee3a2 Silence Cyrador...who had a valid complaint.
This commit was SVN r11282.
2006-08-21 14:26:11 +00:00
Brian Barrett
880730fcf6 * Make sure to add the FCFLAGS_f90 variable to FCFLAGS. This is the magic
that the compiler might need to inform the compiler that a .f90 extension
  means "this is Fortran 90 code".  Fortran compilers are so weird.

  refs trac:284

This commit was SVN r11280.

The following Trac tickets were found above:
  Ticket 284 --> https://svn.open-mpi.org/trac/ompi/ticket/284
2006-08-21 14:15:55 +00:00
Brian Barrett
75d32b4013 * It appears that AIX provides a mallopt, but not the options to disable
sbrk and the use of mmap().  So rather than checking just for mallopt(),
  we should also be checking for those defines when determining if we can
  disable giving memory back to the OS or not.

This commit was SVN r11279.
2006-08-21 14:00:30 +00:00
George Bosilca
392178b1a8 Move it in the right place.
This commit was SVN r11276.
2006-08-21 04:05:19 +00:00
George Bosilca
ebd7a49428 Create shared memory "files" on Windows. These "files" will be
allocated directly by the OS in the paging file (the HUGE file
that cannot be defragmented with any tools). Unlike UNIX, they
do not have physical existence as files.

This commit was SVN r11273.
2006-08-20 19:45:28 +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
9b4bab7d34 One step toward the create array completion.
This commit was SVN r11269.
2006-08-20 15:51:54 +00:00
Brian Barrett
1daa21e1e3 It appears that most versions of the IBM XL compiler (including the latest
releases on Linux and OS X) don't handle const_cast<> of 2-dimensional 
arrays properly.  If we're using one of the compilers that isn't friendly
to such casts, fall back to a standard C-style cast.

refs: #271

This commit was SVN r11263.
2006-08-19 22:55:59 +00:00
Brian Barrett
943e7dcfba * use a temporary to avoid passing pointers to size_t-sized structures into
the mca param functions, which expect poinrters to integers

This commit was SVN r11262.
2006-08-18 21:36:07 +00:00
Ralph Castain
6bf06d4602 Fix connect-accept by cleaning up two minor bugs.
This commit was SVN r11260.
2006-08-18 21:12:03 +00:00
Dan Lacher
f2526d60ed Minor fix for a dropped comma.
This commit was SVN r11259.
2006-08-18 17:55:57 +00:00
Galen Shipman
e5c594c211 More updates for the async error handler for btl's
In order to provide backwards compatability the framework versions are bumped
and the handler registeration function is at the end of the btl struct.
Testing done on sm, openib, and gm.. 

This commit was SVN r11256.
2006-08-17 22:02:01 +00:00
Brian Barrett
f1bfd174da * need to set SUCCESS when completing a request
This commit was SVN r11255.
2006-08-17 20:03:10 +00:00
Brian Barrett
f0afe38293 * Need to retain / release datatype and communicator so that the MPI layer
handles can be freed before communication completes.

This commit was SVN r11248.
2006-08-17 16:30:03 +00:00
Brian Barrett
31a51c73d9 * fix dumb typo
This commit was SVN r11246.
2006-08-17 15:57:49 +00:00
Brian Barrett
df84dbad00 * use the osc base debugging stream for all output, and do the whole
verbose MCA param thing instead of changing -1 to 0 and back in the
  output stream param.

This commit was SVN r11245.
2006-08-17 14:52:20 +00:00
Brian Barrett
f31bf10b98 If we're ANY_SOURCE, don't grab the ompi_proc to get the convertor by going
through the c_pml_procs, as it might be an intercommunicator and therefore
c_my_rank might not be a valid index.

Fixes trac:266.

This commit was SVN r11238.

The following Trac tickets were found above:
  Ticket 266 --> https://svn.open-mpi.org/trac/ompi/ticket/266
2006-08-16 22:35:53 +00:00
Galen Shipman
7473d04a9a Simple failover is working.. ;-)
This commit was SVN r11237.
2006-08-16 22:32:18 +00:00
Brian Barrett
292068b34b * check return status of module init
This commit was SVN r11235.
2006-08-16 21:27:57 +00:00
Galen Shipman
e809a442e7 add the error handler registration to OB1..
This commit was SVN r11234.
2006-08-16 20:56:22 +00:00
Brian Barrett
74e95bc65f * more fixes for ticket #264. We need to keep the original address around,
so use the req_buff field for keeping track of the bsend buffer and the
  req_addr field for the user buffer, the way the comments suggested we
  were doing it

This commit was SVN r11233.
2006-08-16 20:24:28 +00:00
Galen Shipman
3b49953ce2 Add error callback to the btl interface, this allows error to be delivered to
the upperlayer assynchronously although there are some issues with this.. such
as there are multiple consumers of the btl's.. who get's the

This commit was SVN r11232.
2006-08-16 20:21:38 +00:00
Brian Barrett
0f47949703 * partial fix for #264... We need to return an MPI_ERR_BUFFER if we've run
out of buffer space

This commit was SVN r11229.
2006-08-16 17:32:31 +00:00
Ralph Castain
8c7f0ed9ae Change the SOH to the new State Monitoring and Reporting (SMR) framework. New API's will be appearing in the new framework shortly - this just gets the name change into the system.
Other changes:

1. Remove the old xcpu components as they are not functional.

2. Fix a "bug" in orterun whereby we called dump_aborted_procs even when we normally terminated. There is still some kind of bug in this procedure, however, as we appear to be calling the orterun job_state_callback function every time a process terminates (instead of only once when they have all terminated). I'll continue digging into that one.

This will require an autogen/configure, I'm afraid.

This commit was SVN r11228.
2006-08-16 16:35:09 +00:00
Brian Barrett
6d414f2d44 * use the MTL-specific output stream for all error messages
* use OPAL_OUTPUT_VERBOSE rather than printfs for debugging messages

This commit was SVN r11227.
2006-08-16 16:28:58 +00:00
Brian Barrett
3d75d828d3 * Work on ticket #259 -- Add MCA parameters to allow for tuning of the
usual suspects in the CM PML

This commit was SVN r11225.
2006-08-16 14:57:13 +00:00
Brian Barrett
139348647a * remove odd character
This commit was SVN r11212.
2006-08-15 23:58:00 +00:00
Brian Barrett
dc74a6a8e1 * implement iprobe for the MX MTL
This commit was SVN r11211.
2006-08-15 22:16:50 +00:00
Galen Shipman
259b9f04b9 GM needs ack+csum by default for PML DR..
This commit was SVN r11210.
2006-08-15 22:15:22 +00:00
Brian Barrett
0d218c6bdc * implement cancel for MX
This commit was SVN r11209.
2006-08-15 21:59:37 +00:00
Galen Shipman
84e7b90a19 Fix DR PML after the great MTL crusade.. Added a bit of debugging while I was
in there trying to track things down.. 

This commit was SVN r11208.
2006-08-15 21:44:55 +00:00
Brian Barrett
1cf4d0bd18 * Start of fix for #258 -- implement cancel so that we pass down to the
MTL layer.  Needed to include more knowledge of which fragment was
  which since both thin and heavy requests can be canceled

This commit was SVN r11207.
2006-08-15 21:12:03 +00:00
Ralph Castain
5dfd54c778 With the branch to 1.2 made....
Clean up the remainder of the size_t references in the runtime itself. Convert to orte_std_cntr_t wherever it makes sense (only avoid those places where the actual memory size is referenced).

Remove the obsolete oob barrier function (we actually obsoleted it a long time ago - just never bothered to clean it up).

I have done my best to go through all the components and catch everything, even if I couldn't test compile them since I wasn't on that type of system. Still, I cannot guarantee that problems won't show up when you test this on specific systems. Usually, these will just show as "warning: comparison between signed and unsigned" notes which are easily fixed (just change a size_t to orte_std_cntr_t).

In some places, people didn't use size_t, but instead used some other variant (e.g., I found several places with uint32_t). I tried to catch all of them, but...

Once we get all the instances caught and fixed, this should once and for all resolve many of the heterogeneity problems.

This commit was SVN r11204.
2006-08-15 19:54:10 +00:00
David Daniel
59f2d86c36 * Move Gleb's rcache work from the gleb-rcache branch to the trunk
This commit was SVN r11198.
2006-08-15 18:40:08 +00:00
Brian Barrett
cdffc3158d * only set threads if not running at thread single
This commit was SVN r11193.
2006-08-15 15:55:53 +00:00
Sven Stork
556d73085d - Introduce the info key "mpool" to specify which mpool to use for the
allocation. This is necessary to detect if the user requests a specific
  mpool for the allocationi. Searching the key values for a specific mpool
  name does not work for the case that the user provides an info object
  without mpool specific information (see Ticket #254).
- In the case that the user provides a info object without requesting a
  specific mpool we use malloc to allocate buffer instead of returning
  NULL (fix for Ticket #254 )

This commit was SVN r11188.
2006-08-15 09:21:40 +00:00
Ralph Castain
d2912f03e0 Cleanup a historical naming convention problem. Move the socket_errno definitions to the OPAL layer and change the name accordingly. This cleans up some interrelationship issues as well as removing a name confusion.
This commit was SVN r11186.
2006-08-14 20:14:44 +00:00
Jeff Squyres
474564a6b1 Bring over all the work from the /tmp/ib-hw-detect branch. In
addition to my design and testing, it was conceptually approved by
Gil, Gleb, Pasha, Brad, and Galen.  Functionally [probably somewhat
lightly] tested by Galen.  We may still have to shake out some bugs
during the next few months, but it seems to be working for all the
cases that I can throw at it.

Here's a summary of the changes from that branch: 

* Move MCA parameter registration to a new file (btl_openib_mca.c):
   * Properly check the retun status of registering MCA params
   * Check for valid values of MCA parameters
   * Make help strings better
   * Otherwise, the only default value of an MCA param that was
     changed was max_btls; it went from 4 to -1 (meaning: use all
     available)
 * Properly prototyped internal functions in _component.c
   * Made a bunch of functions static that didn't need to be public
   * Renamed to remove "mca_" prefix from static functions
   * Call new MCA param registration function
   * Call new INI file read/lookup/finalize functions
   * Updated a bunch of macros to be "BTL_" instead of "ORTE_"
   * Be a little more consistent with return values
   * Handle -1 for the max_btls MCA param
   * Fixed a free() that should have been an OBJ_RELEASE()
   * Some re-indenting
 * Added INI-file parsing
   * New flex file: btl_openib_ini.l
   * New default HCA params .ini file (probably to be expanded over
     time by other HCA vendors)
   * Added more show_help messages for parsing problems
   * Read in INI files and cache the values for later lookup
   * When component opens an HCA, lookup to see if any corresponding
     values were found in the INI files (ID'ed by the HCA vendor_id
     and vendor_part_id)
   * Added btl_openib_verbose MCA param that shows what the INI-file
     stuff does (e.g., shows which MTU your HCA ends up using)
   * Added btl_openib_hca_param_files as a colon-delimited list of INI
     files to check for values during startup (in order,
     left-to-right, just like the MCA base directory param).
   * MTU is currently the only value supported in this framework.
   * It is not a fatal error if we don't find params for the HCA in
     the INI file(s).  Instead, just print a warning.  New MCA param
     btl_openib_warn_no_hca_params_found can be used to disable
     printing the warning.
 * Add MTU to peer negotiation when making a connection
   * Exchange maximum MTU; select the lesser of the two

This commit was SVN r11182.
2006-08-14 19:30:37 +00:00
Brian Barrett
dd6fa1da2a * Fix for ticket #242, print a friendly error message if we can't reach
a particular peer.  Will now fail during MPI_INIT.  Printing of the
  error messages about no endpoints can be turned off.

This commit was SVN r11181.
2006-08-14 19:17:36 +00:00
Brian Barrett
24de93e2d4 * fix some compile errors with having OB1 direct called
This commit was SVN r11170.
2006-08-14 15:43:03 +00:00
Donald Kerr
ba1688dff2 Removing component level lock from mca_btl_udapl_endpoint_finish_eager() routine because it is already locked before entry. Will be evaluating entire lock scheme but this one was blocking as it was.
This commit was SVN r11161.
2006-08-11 18:46:06 +00:00
Ralph Castain
62e70e6b3a Enable the use of "prefix" for comm_spawn child processes. With this patch:
1. comm_spawn processes by default will inherit the "--prefix" from their parent job. Thus, the "--prefix" provided on the command line will be propagated automatically to any children.

2. application programs can override the default by providing their own "ompi_prefix" in the MPI_Info parameter passed to comm_spawn

This commit was SVN r11143.
2006-08-09 20:48:51 +00:00
Donald Kerr
f50aad2721 making basic udapl btl available by removing the .ompi_ignore and .ompi_unignore files
This commit was SVN r11134.
2006-08-08 19:19:54 +00:00
Galen Shipman
f7015abb92 set the inline_max to something.. doh..
This commit was SVN r11133.
2006-08-08 17:24:12 +00:00
Galen Shipman
c93711cfdb checking for max_inline_data == 0 as an error condition is not valid,, so
don't do it.. 

This commit was SVN r11132.
2006-08-08 16:53:47 +00:00
Jeff Squyres
c198fd2fd5 Remove some unused variables / compiler warnings.
This commit was SVN r11118.
2006-08-05 10:43:54 +00:00
Jeff Squyres
b6c6d9a2b7 Bring over r10877 and r10881 from the /tmp/tbird branch:
r10877:
add warm up connection option.. of course this only warms up the first
eager btl but this should be adequate for now..

r10881:
Consulted with Galen and did a few things:

- Fix the algorithm to actually make the connections that we want
- Rename the MCA param to mpi_preconnect_all
- Cleanup the code a bit:
  - move the logic to a separate .c file
  - check return codes properly

This commit was SVN r11114.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r10877
  r10877
  r10881
  r10881
2006-08-04 14:41:31 +00:00
Brian Barrett
9f28258b3f * squelch stupid compiler warning
This commit was SVN r11111.
2006-08-03 14:42:05 +00:00
Brian Barrett
65fedbe3be * followup to r10972... Even if MPI_PROC_NULL is given, we should do the
full argument checking (allowing that MPI_PROC_NULL is legal, of course).
  Only after the argument checking do we shortcut.  Fixes trac:237, which
  was caused by moving the MPI_PROC_NULL test in MPI_Bsend_init, 
  but not allowing for MPI_PROC_NULL when checking rank.

This commit was SVN r11108.

The following SVN revision numbers were found above:
  r10972 --> open-mpi/ompi@31c66d92aa

The following Trac tickets were found above:
  Ticket 237 --> https://svn.open-mpi.org/trac/ompi/ticket/237
2006-08-03 04:44:03 +00:00
Brian Barrett
f98d4cd706 * this is now safe to use
This commit was SVN r11105.
2006-08-03 00:20:02 +00:00
Brian Barrett
4176e61049 * Add support for building the F90 bindings library as a shared library
on almost all platforms (except OS X... sigh...).  This is the merge 
  of r10846 - 10894 from the tmp/f90-shared branch to the trunk.

This commit was SVN r11103.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r10846
2006-08-03 00:17:31 +00:00
Brian Barrett
0ba0a60ada * Merge in new version of the pt2pt one-sided communication component,
implemented entirely on top of the PML.  This allows us to have a
  one-sided interface even when we are using the CM PML and MTLs for
  point-to-point transport (and therefore not using the BML/BTLs)
* Old pt2pt component was renamed "rdma", as it will soon be having
  real RDMA support added to it.

Work was done in a temporary branch.  Commit is the result of the
merge command:

  svn merge -r10862:11099 https://svn.open-mpi.org/svn/ompi/tmp/bwb-osc-pt2pt

This commit was SVN r11100.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r10862
  r11099
2006-08-03 00:10:19 +00:00
Brian Barrett
a21769bbfb * careful with the opal_output when no components are selected
This commit was SVN r11093.
2006-08-02 21:13:33 +00:00
Brian Barrett
bc16f462b9 * print framework and component name during load errors
* return a failure from mtl select code if we don't have a
  component that can run

This commit was SVN r11092.
2006-08-02 20:59:58 +00:00
Brian Barrett
9c30aefff5 * constant is always defined -- use #if, not #ifdef
This commit was SVN r11089.
2006-08-02 18:37:41 +00:00
Brian Barrett
a84e557815 Add new loop mode OPAL_EVLOOP_ONELOOP that behaved like OPAL_EVLOOP_ONCE
did pre-libevent update.  The problem is that the behavior of 
OPAL_EVLOOP_ONCE was changed by the OMPI team, which them broke things
during the update, so it had to be reverted to the old meaning of
loop until one event occurs.  OPAL_EVLOOP_ONELOOP will go through the
event loop once (like EVLOOP_NONBLOCK) but will pause in the event
library for a bit (like EVLOOP_ONCE).

fixes trac:234

This commit was SVN r11081.

The following Trac tickets were found above:
  Ticket 234 --> https://svn.open-mpi.org/trac/ompi/ticket/234
2006-08-01 22:23:57 +00:00
Jeff Squyres
7784f1a818 Fix a problem noted by Chris Hennes that MPI_INFO_SET would mistakenly
disallow setting long info values.

This commit was SVN r11074.
2006-08-01 16:07:56 +00:00
Rainer Keller
07ccd84fcf - Get to compile with --enable-progress-thread
This commit was SVN r11069.
2006-07-31 22:40:37 +00:00
Galen Shipman
fb9210463f clarify assignment..
This commit was SVN r11065.
2006-07-31 20:54:54 +00:00
Galen Shipman
ce0b8d9b48 cleanup of cq/srq sizing..
This commit was SVN r11061.
2006-07-31 17:24:39 +00:00
Jeff Squyres
520147f209 Clean up the Fortran MPI sentinel values per problem reported on the
users mailing list:

  http://www.open-mpi.org/community/lists/users/2006/07/1680.php

Warning: this log message is not for the weak.  Read at your own
risk.

The problem was that we had several variables in Fortran common blocks
of various types, but their C counterparts were all of a type
equivalent to a fortran double complex.  This didn't seem to matter
for the compilers that we tested, but we never tested static builds
(which is where this problem seems to occur, at least with the Intel
compiler: the linker compilains that the variable in the common block
in the user's .o file was of one size/alignment but the one in the C
library was a different size/alignment).

So this patch fixes the sizes/types of the Fortran common block
variables and their corresponding C instantiations to be of the same
sizes/types. 

But wait, there's more.

We recently introduced a fix for the OSX linker where some C versions
of the fortran common block variables (e.g.,
_ompi_fortran_status_ignore) were not being found when linking
ompi_info (!).  Further research shows that the code path for
ompi_info to require ompi_fortran_status_ignore is, unfortunately,
necessary (a quirk of how various components pull in different
portions of the code base -- nothing in ompi_info itself requires
fortran or MPI knowledge, of course).

Hence, the real problem was that there was no code path from ompi_info
to the portion of the code base where the C globals corresponding to
the Fortran common block variables were instantiated.  This is because
the OSX linker does not automatically pull in .o files that only
contain unintialized global variables; the OSX linker typically only
pulls in a .o file from a library if it either has a function that is
used or have a global variable that is initialized (that's the short
version; lots of details and corner cases omitted).  Hence, we changed
the global C variables corresponding to the fortran common blocks to
be initialized, thereby causing the OSX linker to pull them in
automatically -- problem solved.  At the same time, we moved the
constants to another .c file with a function, just for good measure.

However, this didn't really solve the problem:

1. The function in the file with the C versions of the fortran common
   block variables (ompi/mpi/f77/test_constants_f.c) did not have a
   code path that was reachable from ompi_info, so the only reason
   that the constants were found (on OSX) was because they were
   initialized in the global scope (i.e., causing the OSX compiler to
   pull in that .o file).

2. Initializing these variable in the global scope causes problems for
   some linkers where -- once all the size/type problems mentioned
   above were fixed -- the alignments of fortran common blocks and C
   global variables do not match (even though the types of the Fortran
   and C variables match -- wow!).  Hence, initializing the C
   variables would not necessarily match the alignment of what Fortran
   expected, and the linker would issue a warning (i.e., the alignment
   warnings referenced in the original post).

The solution is two-fold:

1. Move the Fortran variables from test_constants_f.c to
   ompi/mpi/runtime/ompi_mpi_init.c where there are other global
   constants that *are* initialized (that had nothing to do with
   fortran, so the alignment issues described above are not a factor),
   and therefore all linkers (including the OSX linker) will pull in
   this .o file and find all the symbols that it needs.

2. Do not initialize the C variables corresponding to the Fortran
   common blocks in the global scope.  Indeed, never initialize them
   at all (because we never need their *values* - we only check for
   their *locations*).  Since nothing is ever written to these
   variables (particularly in the global scope), the linker does not
   see any alignment differences during initialization, but does make
   both the C and Fortran variables have the same addresses (this
   method has been working in LAM/MPI for over a decade).

There were some comments here in the OMPI code base and in the LAM
code base that stated/implied that C variables corresponding to
Fortran common blocks had to have the same alignment as the Fortran
common blocks (i.e., 16).  There were attempts in both code bases to
ensure that this was true.  However, the attempts were wrong (in both
code bases), and I have now read enough Fortran compiler documentation
to convince myself that matching alignments is not required (indeed,
it's beyond our control).  As long as C variables corresponding to
Fortran common blocks are not initialized in the global scope, the
linker will "figure it out" and adjust the alignment to whatever is
required (i.e., the greater of the alignments).  Specifically (to
counter comments that no longer exist in the OMPI code base but still
exist in the LAM code base):

- there is no need to make attempts to specially align C variables
  corresponding to Fortran common blocks
- the types and sizes of C variables corresponding to Fortran common
  blocks should match, but do not need to be on any particular
  alignment 

Finally, as a side effect of this effort, I found a bunch of
inconsistencies with the intent of status/array_of_statuses
parameters.  For all the functions that I modified they should be
"out" (not inout).

This commit was SVN r11057.
2006-07-31 15:07:09 +00:00
Galen Shipman
c9e0eda190 Initialize the completion queue to a reasonable size based on maximum number
of send/receives outstanding.

Use ibv_cq_resize if available after initial creation of completion queue if
cq_size is too small (based on number of peers). 

This commit was SVN r11053.
2006-07-30 00:58:40 +00:00
Jeff Squyres
7f372b4e1f No functional changes -- only re-indent some portions of the code to
make it consistent with the indenting in the rest of the file
(otherwise it was quite difficult to understand -- saw this while I
was reviewing 11039).

This commit was SVN r11042.
2006-07-28 15:47:16 +00:00
Donald Kerr
2e5e01a8df Remove dependency on known port range and allow udapl to provide the port number.
This commit was SVN r11040.
2006-07-28 13:58:21 +00:00
David Daniel
45894aecee Adding support for MPI_Comm_spawn() to use the 'host' key in an MPI_Info
object if provided.

The associated value is a comma-separated list of hosts -- which must be
in the initial allocation -- and is used to populate the application
context map.

This commit was SVN r11039.
2006-07-27 23:45:33 +00:00
Donald Kerr
fcb932a6d9 Workaround for bug in Solaris udapl library where dat_evd_dequeue does not dequeue DAT_CONNECTION_REQUEST_EVENT.
This commit was SVN r11032.
2006-07-27 16:13:46 +00:00
Gleb Natapov
72575d81d2 Create separate pool for control messages. It is unlimited, but the maximum number of element that are allocated from it is limited by number of connections.
This commit was SVN r11028.
2006-07-27 14:09:30 +00:00
Brian Barrett
6b00c8ed99 * add listing of which backtrace component got compiled in
This commit was SVN r11025.
2006-07-27 03:48:12 +00:00
Brian Barrett
7ea33eac02 Merge in rest of event library update branch, updating the event library to
libevent-1.1a.

svn merge -r10917:11006 https://svn.open-mpi.org/svn/ompi/tmp/libevent-update

This commit was SVN r11022.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r10917
  r11006
2006-07-27 01:51:18 +00:00
Brian Barrett
07514ccf42 * don't install $(headers) and $(nodist_headers) by default, and definitely
not in include_HEADERS.  Fixes bug #222.

This commit was SVN r11014.
2006-07-26 21:20:41 +00:00
Rolf vandeVaart
45719b7de9 Submitted by: Rolf vandeVaart
Reviewed by: Jeff Squyres

Fix for ticket #220.  Missing a few C++ methods.
 MPI::Datatype::Create_indexed_block
 MPI::Datatype::Create_resize
 MPI::Datatype::Get_true_extent

This commit was SVN r11010.
2006-07-26 20:27:14 +00:00
Jeff Squyres
77e0c7b383 Remove compiler warning. Remove this when CM cancel is fully implemented.
This commit was SVN r10986.
2006-07-25 21:46:04 +00:00
Rainer Keller
ee27f7e2c7 - As according to MPI-1.2, sec 3.2.5, p22, single request
functions MPI_Test, MPI_Testany, MPI_Wait, MPI_Waitany
   should not reset the status.MPI_ERROR as passed by user.
 - This needed implementing the MPI_Waitsome and MPI_Testsome.

This commit was SVN r10980.
2006-07-25 15:29:37 +00:00
Rainer Keller
31c66d92aa Minor fixes to match standard -- and run strict test of mpi_test_suite:
- bsend_init: use *request after error-checking
 - Always reset the status->cancelled
 - cancel, wait: need to check *request for MPI_REQUEST_NULL, not
   NULL...
   (actually ompi_request_wait handles MPI_PROC_NULL, so no need
   to check&set of status_empty in wait.c)

This commit was SVN r10972.
2006-07-24 16:59:01 +00:00