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

1125 Коммитов

Автор SHA1 Сообщение Дата
Shiqing Fan
f82092566f We don't have inttypes.h on Windows, and some types are redefined.
This commit was SVN r18010.
2008-03-28 17:33:54 +00:00
Shiqing Fan
aaf2730fab Winsock2.h also has definition for timeval and so on, it conflicts with our own definitions.
This commit was SVN r18009.
2008-03-28 17:30:33 +00:00
Jeff Squyres
6ea36061cf Fix typo found by Pak.
This commit was SVN r18000.
2008-03-27 23:04:17 +00:00
Jeff Squyres
c06f7c3992 Fixes trac:1254: ensure that evport.c is in the distribution tarball.
This commit was SVN r17989.

The following Trac tickets were found above:
  Ticket 1254 --> https://svn.open-mpi.org/trac/ompi/ticket/1254
2008-03-27 16:40:55 +00:00
Sharon Melamed
afa98f92e8 Changed the for loop to a while loop so I could
release the edge without conflicting with get next.

This commit was SVN r17979.
2008-03-26 14:45:45 +00:00
Jeff Squyres
33c09b30c2 Patch from George: ensure that we don't overwrite timer_linux_happy
improperly when checking the host type.

This commit was SVN r17975.
2008-03-26 11:22:57 +00:00
George Bosilca
4a5431ef11 Remove the event-config.h file, it is never used.
Correct the include logic that protect the headers. It's amazing
that this didn't bite us yet ...

This commit was SVN r17971.
2008-03-26 03:33:43 +00:00
George Bosilca
64bc580c78 Use evutil_timercmp instead of timercmp to take advantage of the
fallback installed in evutil.h.

This commit was SVN r17968.
2008-03-25 23:54:30 +00:00
George Bosilca
2e46a53b0a Avoid strcpy if its not really required.
This commit was SVN r17962.
2008-03-25 22:40:20 +00:00
George Bosilca
028c7391d3 Coverty fix: Replace strcpy by strncpy.
This commit was SVN r17961.
2008-03-25 22:39:24 +00:00
George Bosilca
6717b2dc75 Add the Solaris evport to the list of available event subsystems.
This commit was SVN r17958.
2008-03-25 18:00:40 +00:00
Jeff Squyres
763218e754 Fix #1253: default libevent to use select/poll and only use the other
mechanisms (such as epoll) if someone (ompi_mpi_init()) requests
otherwise.  See big comment in opal/event/event.c for a full
explanation.

This commit was SVN r17956.
2008-03-25 17:18:17 +00:00
George Bosilca
03c10e2a85 Add the Solaris evport support.
This commit was SVN r17954.
2008-03-25 16:44:27 +00:00
George Bosilca
9222ea0d0a Cast the uintptr_t to int when playing with fds.
This commit was SVN r17925.
2008-03-23 18:16:29 +00:00
Jeff Squyres
8239e40607 Add header for OS X.
This commit was SVN r17924.
2008-03-23 12:57:57 +00:00
Jeff Squyres
314ab2c6e7 Update internal libevent to upstream (v1.4.2-rc + OMPI changes).
Greatly reduce the number of "foo" -> "opal_foo" symbol renames in the
libevent source, and instead greatly expand the event_rename.h file
that uses preprocessor macros to make all public symbols be
"opal_foo".

This commit was SVN r17923.
2008-03-23 12:33:04 +00:00
Jeff Squyres
dee561d29e Per recent off-list discussions about the build system, I have done
some cleanups and standardizations in the various */tools/*/ 
Makefile.am files.  This commit:

 * Somewhat simplify the tool Makefile.am's 
 * Makes the tool Makefile.am's consistent with each other (do similar
   actions in similar ways)
 * Update the tool Makefile.am's to remove old kruft that was required
   by older versions of AM (trunk requires AM >=1.10)

This commit was SVN r17921.
2008-03-22 02:04:05 +00:00
Jeff Squyres
05a7b1ed55 Remove svn:executable from these files.
This commit was SVN r17918.
2008-03-21 21:16:11 +00:00
Jeff Squyres
a4ec8a9d53 Spring cleaning -- no one is using this stuff; remove it from the tree.
This commit was SVN r17913.
2008-03-21 17:14:42 +00:00
Jeff Squyres
e0fb3957cb Patch from Brian:
* The opal_sys_timer_get_cycles() call was implemented for
   Sparc v9 using inline assembly, but not in the assembly files.
   This would only currently matter on Linux Sparc systems using
   a compiler that didn't support inline assembly (not many of
   those), but it should be there for completion.
 * The linux timer component would always build on non-Alpha
   platforms, rather than only building on platforms where
   opal_sys_timer_get_cycles() was implemented.  This would
   only matter on a very narrow set of platforms that we don't
   really support, but still, it could be more right.  We now
   only build the component on platforms where we have the
   assembly call to get the cycle counter.
 * Added a comment to opal/sys/timer.h to note that the linux
   timer component needed to be updated if another platform was
   added.

This should be harmless to commit.  It will only really change
behaviors on platforms we don't have assembly support for, which
currently won't make it through configure.  It really only matters
when (if?) we support atomic operations through libatomic_ops.

This commit was SVN r17887.
2008-03-20 00:29:36 +00:00
George Bosilca
3997639ec6 Hide what should be hidden, and expose the others. Plus some indentation.
This commit was SVN r17856.
2008-03-18 03:00:08 +00:00
Jeff Squyres
f443644bfe From Brian B.:
This commit lowers the priority of the darwin backtrace component
below that of the ''execinfo'' and ''stackprint'' components, which
will cause OS X Leopard to use the ''execinfo'' component.  execinfo
utilizes a public API for printing the stacktrace.  The ''darwin''
component uses some evil hacks and a not-so supported package from
Apple to print the stack trace.  

This commit was SVN r17840.
2008-03-17 13:39:25 +00:00
Jeff Squyres
9b18b0e9c6 Fix visibility symbols on OS X
This commit was SVN r17838.
2008-03-17 13:18:12 +00:00
George Bosilca
210631962c Add two convenience functions in order to make sure we get these
environment variables in a consistent manner. These functions
retrieve the user and the temporary directories (based on the
system).

This commit was SVN r17815.
2008-03-13 17:56:44 +00:00
Jon Mason
2e8a316ae6 opal_evtimer_initialized is missing the opening '('
This commit was SVN r17814.
2008-03-12 20:33:22 +00:00
Sharon Melamed
4a8e2a2648 Renove status check from carto initiation.
This commit was SVN r17812.
2008-03-12 08:55:28 +00:00
George Bosilca
4267f2b967 This symbol have to be visible.
This commit was SVN r17793.
2008-03-08 23:53:17 +00:00
Rainer Keller
32dcd9e551 - Adding #include <stdbool.h> with protection in r17488 and r17504
seemed to be the right thing(tm), but broke the Sun Studio C++
   compiler under Linux (ticket 747).

   This patch should allow inclusion into C and C++ from other header
   files without problems.

This commit was SVN r17792.

The following SVN revision numbers were found above:
  r17488 --> open-mpi/ompi@d53131f261
  r17504 --> open-mpi/ompi@b22e8e7567
2008-03-08 12:53:10 +00:00
Josh Hursey
aaff245271 A couple verbose additions. Poll the event engine while waiting for the
named pipe.

This commit was SVN r17787.
2008-03-07 21:10:14 +00:00
Jeff Squyres
b2ed2b95aa Fix filename so that the help file can be found.
This commit was SVN r17759.
2008-03-06 14:44:47 +00:00
Rolf vandeVaart
91af56db00 Fix a few typos so this compiles on Solaris. Remove some trailing spaces.
This commit was SVN r17746.
2008-03-05 20:16:00 +00:00
Aurelien Bouteiller
c280b81e40 Revert the last patch. Still some warning should be issued on ia32 architectures. Looking for a fix.
This commit was SVN r17745.
2008-03-05 17:20:11 +00:00
Josh Hursey
612ebdc2ac Cleanup some symbol visability issues.
This commit was SVN r17733.
2008-03-05 13:59:25 +00:00
Josh Hursey
3b4073e32c This commit fixes the checkpoint/restart functionality on the trunk. Included in this commit are:
* Extension to the ESS framework to support C/R
 * Fixed support for {{{snapc_base_establish_global_snapshot_dir}}}
 * Fixed FileM support
 * Misc. minor code modifications

There are some outstanding visability issues that I want to fix next.

This commit was SVN r17725.
2008-03-05 04:57:23 +00:00
Jeff Squyres
ea5c0cb4a2 Now that the nightly tarball has safely been made, let's try this
commit again.  Remove the svn:ignore from problematic directories and
try a merge from /tmp-public/plpa-merge-area2.

This commit was SVN r17718.
2008-03-05 02:45:15 +00:00
Jeff Squyres
8189fcc7d5 Back out r17702; it went very badly.
This commit was SVN r17704.

The following SVN revision numbers were found above:
  r17702 --> open-mpi/ompi@3df754ebd7
2008-03-05 00:42:39 +00:00
Jeff Squyres
3df754ebd7 Bring over PLPA v1.1 from /tmp-public/plpa-v1.1 branch.
This commit was SVN r17702.
2008-03-05 00:16:49 +00:00
Aurelien Bouteiller
284115208c Try to blindly solve warning about size_t printf format, as I can't reproduce the warning on my machines.
This commit was SVN r17701.
2008-03-04 22:30:35 +00:00
Tim Prins
824c298abf Move the carto finalize from the util finalize to the main finalize where it belongs. Otherwise, the modules are unloaded by the mca before we try to do carto_finalize, and bad things happen.
This commit was SVN r17665.
2008-02-29 12:49:04 +00:00
Tim Prins
84b2099fe8 Remove the now-unused orte_value_array. As this is the last 'class' split between orte and ompi, remove the big comment about the split in ompi_bitmap.
Also, update some properties (source files should not be executeable...), and remove a couple unneeded inclusions of orte_proc_table.h

This commit was SVN r17655.
2008-02-28 21:39:42 +00:00
Tim Prins
2e1bda6d23 Remove the now-unused arithmatic interface to the dss
This commit was SVN r17654.
2008-02-28 21:36:51 +00:00
Ralph Castain
8d819cf3d3 Move carto open/close/finalize to opal layer so that ORTE can get access to topo info. This will be used to support a topo grpcomm that optimizes communications in non-uniform topologies like RR.
This commit was SVN r17652.
2008-02-28 21:04:30 +00:00
Ralph Castain
5e6928d710 Cleanup recursions in ORTE caused by processing recv'd messages that can cause the system to take action resulting in receipt of another message.
Basically, the method employed here is to have a recv create a zero-time timer event that causes the event library to execute a function that processes the message once the recv returns. Thus, any action taken as a result of processing the message occur outside of a recv.

Created two new macros to assist:

ORTE_MESSAGE_EVENT: creates the zero-time event, passing info in a new orte_message_event_t object

ORTE_PROGRESSED_WAIT: while waiting for specified conditions, just calls progress so messages can be recv'd.

Also fixed the failed_launch function as we no longer block in the orted callback function. Updated the error messages to reflect revision. No change in API to this function, but PLM "owners" may want to check their internal error messages to avoid duplication and excessive output.

This has been tested on Mac, TM, and SLURM.

This commit was SVN r17647.
2008-02-28 19:58:32 +00:00
George Bosilca
9d421bea2a Replace all occurences of orte_pointer_array by opal_pointer_array. Remove the
implementation of orte_pointer_array.

This commit was SVN r17636.
2008-02-28 05:32:23 +00:00
George Bosilca
f256dd6010 Don't free the node2_name it is not yet set at this point.
This commit was SVN r17634.
2008-02-28 05:17:20 +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
Aurelien Bouteiller
6ea23283a8 Added a PRIsize_t constant to help printing size_t without having to cast them to long long explicitely everywhere.
This commit was SVN r17626.
2008-02-27 19:38:14 +00:00
Josh Hursey
5e0d17ec99 Forgot a case in which we should check is the checkpoint is ready during the
threaded CR builds. MTT caught this by running the IU FT CR test 'inflight'
which under certian timing scenarios will trigger this.

This commit was SVN r17538.
2008-02-21 13:34:27 +00:00
Josh Hursey
a169575ab2 A quick fix for opal only apps (really this time)
This commit was SVN r17537.
2008-02-20 22:33:42 +00:00
Josh Hursey
ad9fbf2a92 a fix for opal only apps
This commit was SVN r17536.
2008-02-20 21:17:08 +00:00
Josh Hursey
99144db970 Improve checkpoint/restart support by allowing a checkpoint to progress when the process is *not* in the MPI library. This involves creating a separate thread for polling for a checkpoint request. This thread is active when the MPI process is not in the MPI library, and paused when the MPI process is in the library.
Some MPI C interface files saw some spacing changes to conform to the coding standards of Open MPI.

Changed MPI C interface files to use {{{OPAL_CR_ENTER_LIBRARY()}}} and {{{OPAL_CR_EXIT_LIBRARY()}}} instead of just {{{OPAL_CR_TEST_CHECKPOINT_READY()}}}. This will allow the checkpoint/restart system more flexibility in how it is to behave.

Fixed the configure check for {{{--enable-ft-thread}}} so it has a know dependance on {{{--enable-mpi-thread}}} (and/or {{{--enable-progress-thread}}}).

Added a line for Checkpoint/Restart support to {{{ompi_info}}}.

Added some options to choose at runtime whether or not to use the checkpoint polling thread. By default, if the user asked for it to be compiled in, then it is used. But some users will want the ability to toggle its use at runtime.

There are still some places for improvement, but the feature works correctly. As always with Checkpoint/Restart, it is compiled out unless explicitly asked for at configure time. Further, if it was configured in, then it is not used unless explicitly asked for by the user at runtime.

This commit was SVN r17516.
2008-02-19 22:15:52 +00:00
Rainer Keller
b22e8e7567 - Need stdbool.h if included in userland
This commit was SVN r17504.
2008-02-19 00:39:48 +00:00
Rainer Keller
d53131f261 - Need stdbool.h if included in userland; additionally protect stdbool / stdarg.h
This commit was SVN r17488.
2008-02-18 08:11:57 +00:00
Aurelien Bouteiller
e7aaf6aa67 Patch to introduce PRI printf constants on architecture that do not provide C99 inttypes.h. Mainly usefull on windows, but might also prove helpful to deal with all the size_t and other size changing datatypes that used to be casted long long in printf/opal_output to avoid warnings.
This commit was SVN r17451.
2008-02-14 03:31:49 +00:00
Josh Hursey
95c31388e1 It was observed that the component constraint logic is currently only used
by the checkpoint/restart feature. Other constraints could be enforced here,
but at the moment it is only the checkpointable constraint.

So this commit just removes this logic from non-c/r builds. If someone 
wanted to add a new constraint in the future then there is a comment in
the code that directs them a bit.

This commit was SVN r17447.
2008-02-13 19:26:25 +00:00
Sharon Melamed
5b2dab2439 Reverted commit # r17443
This commit was SVN r17446.

The following SVN revision numbers were found above:
  r17443 --> open-mpi/ompi@88ce5a2b73
2008-02-13 14:07:12 +00:00
Sharon Melamed
88ce5a2b73 Replaced PLPA to the latest PLPA (plpa-1.1a3r123)
This commit was SVN r17443.
2008-02-13 13:09:11 +00:00
Rainer Keller
9cd2c6f48b - Instead of calling RUNNING_ON_VALGRIND,
implement specific function, thereby
   removing bogus requirement on valgrind/valgrind.h
   dough...
 - Call specific function runindebugger() before
   doing expensive checks on each component of struct.
 - Get rid of void* warnings..

This commit was SVN r17438.
2008-02-12 20:37:51 +00:00
Rainer Keller
7621800477 - Fix and add comments -- output full name for pd
- Protect argument in macro...

This commit was SVN r17434.
2008-02-12 16:59:59 +00:00
Rainer Keller
b20f434306 - really minor fix in comment.
This commit was SVN r17433.
2008-02-12 16:54:27 +00:00
Shiqing Fan
f5792bbda5 merging the memchecker into trunk.
This commit was SVN r17424.
2008-02-12 08:46:27 +00:00
Sharon Melamed
51f8308c68 Added Bi-Directional connection in the carto file.
This commit was SVN r17393.
2008-02-07 09:51:19 +00:00
Sharon Melamed
c9f80caf7c fixed a printing bug in case the carto file is not found.
This commit was SVN r17392.
2008-02-07 09:02:23 +00:00
Sharon Melamed
98e8de264d Wraped the carto API in carto_base_wrapers.c
This commit was SVN r17380.
2008-02-05 19:29:16 +00:00
Sharon Melamed
9ef46de2f5 added proper wraping to the paffinity new APIs
This commit was SVN r17379.
2008-02-05 17:37:17 +00:00
Pak Lui
6900fe36c2 Restore the solaris paffinity with an older but working implementation with processor_bind() instead of the pset_*() implementation that is commented out. There's also a fix for allowing some Sun platforms which have non-contiguous CPU IDs
to do processor binding.

This commit was SVN r17309.
2008-01-29 16:09:56 +00:00
Ralph Castain
71378305ed The static-components.h file should never be under svn control - it is dynamically generated during build. Update properties to ignore that file.
Update properties to ignore the carto_file_lex.c file since that is also dynamically generated.

Update the build-hgignore.pl to properly disregard DS_Store files

This commit was SVN r17301.
2008-01-29 14:18:00 +00:00
Sharon Melamed
3374d56739 This file was added to the carto tree by mistake.
this file is supposed to be generated by lex.

This commit was SVN r17257.
2008-01-27 09:09:55 +00:00
George Bosilca
fc4bb9c87e Update the generated file. This one was generated using a very recent
version of flex (2.5.33).

This commit was SVN r17253.
2008-01-26 20:22:57 +00:00
George Bosilca
7dddbe5e29 Protect the system headers.
This commit was SVN r17252.
2008-01-26 18:54:27 +00:00
Jeff Squyres
3f94d6a494 Properly qualify the filename. #$%@#%#@!!!
This commit was SVN r17229.
2008-01-25 12:04:35 +00:00
George Bosilca
ddcfc78f52 Add the missing header to the header list.
This commit was SVN r17222.
2008-01-25 02:28:16 +00:00
George Bosilca
f7e8fda58b Remove the dependencies on the libopen-pal.
Add the visibility attributes.

This commit was SVN r17220.
2008-01-25 00:33:55 +00:00
George Bosilca
7b1132b623 Remove some warnings about uninitialized variables (the code was correct but
the compilers are not yet that smart).
Add the dependency to output.h in order to be able to use opal_output.

This commit was SVN r17195.
2008-01-24 00:39:24 +00:00
Sharon Melamed
025b68becf Move the carto framework to the trunk.
This commit was SVN r17177.
2008-01-23 09:20:34 +00:00
Sharon Melamed
526a12620d Expanded the paffinity interface. Added:
map_to_processor_id,
map_to_socket_core,
max_processor_id,
max_socket,
max_core.

In OS other then Linux, those functions will return OPAL_ERR_NOT_SUPPORTED.
--This Line, and those below, will be ignored--

M    paffinity/linux/paffinity_linux_module.c
M    paffinity/paffinity.h
M    paffinity/base/base.h
M    paffinity/base/paffinity_base_wrappers.c
M    paffinity/windows/paffinity_windows_module.c
M    paffinity/solaris/paffinity_solaris_module.c

This commit was SVN r17173.
2008-01-22 07:22:24 +00:00
Adrian Knoth
601fb4389d Cosmetics for r17150. Closes trac:1201
This commit was SVN r17151.

The following SVN revision numbers were found above:
  r17150 --> open-mpi/ompi@4b50f02126

The following Trac tickets were found above:
  Ticket 1201 --> https://svn.open-mpi.org/trac/ompi/ticket/1201
2008-01-17 12:29:12 +00:00
Adrian Knoth
4b50f02126 Only free res iff it's been allocated before. Re #1201
This patch fixes the segfault, so closing the ticket might be possible.
It's a very conservative patch. Perhaps the freeaddrinfo spec says that
it will never allocate res in case of errors, but for now, I neither
have the spec nor the will to rely on it.

This commit was SVN r17150.
2008-01-17 10:01:52 +00:00
Jeff Squyres
cc3805d861 Because opal_list is used in the C++ bindings, where not having
"const" in the argument creates [correct] warnings (because __FILE__
is a (const char*)).  Plus, opal_object.cls_init_file_name is already
(const char*).

This commit was SVN r17145.
2008-01-15 23:50:30 +00:00
George Bosilca
7b0e295057 Fix a small memory leak.
This commit was SVN r17095.
2008-01-09 20:37:02 +00:00
Gleb Natapov
09de1da7ee Undefine MORECORE_CANNOT_TRIM. We don't call free() from the callback any more.
This commit was SVN r17065.
2008-01-08 10:08:35 +00:00
George Bosilca
3d387bdab9 Add defines for the INT16 min and max value.
This commit was SVN r17052.
2008-01-04 23:09:31 +00:00
Jeff Squyres
95fa693273 In r17007, ompi_pointer_array.c the logic from the
ompi_pointer_array.c:ompi_pointer_array_set_item() was slightly
changed such that the "find the next open slot when the requested
index was already open" logic was no longer right -- since the new
lowest_free value is not set until ''after'' we look for the next open
slot, we need to start searching for the new lowest_free slot at the
(index+1) position (not the index position).

This commit was SVN r17021.

The following SVN revision numbers were found above:
  r17007 --> open-mpi/ompi@906e8bf1d1
2007-12-21 20:19:55 +00:00
Ralph Castain
401dc49686 Cleanup compiler warnings about comparing signed and unsigned values
This commit was SVN r17011.
2007-12-21 14:22:27 +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
Jeff Squyres
a1b0914037 Fix prototypes for platforms that fall back to the inline C versions
of opal_atomic_[add|sub]_[32|64].

This commit was SVN r17005.
2007-12-20 22:13:25 +00:00
Ethan Mallove
2b48f42637 Mark XLC atomics as non-inline.
This commit was SVN r16989.
2007-12-18 16:18:49 +00:00
Jeff Squyres
213b5d5c6e Per long threads on the mailing list and much confusion discussion
about linkers, have all OPAL, ORTE, and OMPI components '''not'' link
against the OPAL, ORTE, or OMPI libraries.

See ttp://www.open-mpi.org/community/lists/users/2007/10/4220.php for
details (or https://svn.open-mpi.org/trac/ompi/wiki/Linkers for a
better-formatted version of the same info).

This commit was SVN r16968.
2007-12-15 13:32:02 +00:00
Ethan Mallove
a20a1a806a Rework of r16807. For opal atomics:
* Conditionalize around `static inline` using
   `OPAL_HAVE_INLINE_ATOMIC*` macros
 * Remove redundant `opal_atomic*` prototypes (they 
   belong in the top-level `sys/atomic.h`

This commit was SVN r16957.

The following SVN revision numbers were found above:
  r16807 --> open-mpi/ompi@b7c885247a
2007-12-14 15:11:35 +00:00
Jon Mason
d77c2430c0 Fix minor spelling error
This commit was SVN r16936.
2007-12-11 20:11:03 +00:00
Terry Dontje
351117a254 This commit fixes trac:747
This commit was SVN r16892.

The following Trac tickets were found above:
  Ticket 747 --> https://svn.open-mpi.org/trac/ompi/ticket/747
2007-12-07 15:56:07 +00:00
Jeff Squyres
00131df353 Fix typo in incorrect variable name; only noticed now because someone
actually compiled on a system without syslog support (Brian B.).  :-)

This commit was SVN r16863.
2007-12-06 11:36:44 +00:00
Ethan Mallove
58bcf14f8b Back r16807 out of sys/atomic.h.
This commit was SVN r16825.

The following SVN revision numbers were found above:
  r16807 --> open-mpi/ompi@b7c885247a
2007-12-03 19:32:43 +00:00
Josh Hursey
27c9016b93 sleep -> usleep so we can be a bit more eager when waiting for events to finish.
Still working on solutions that do not involve sleeping, but this will do for
now.

This commit was SVN r16824.
2007-12-03 19:27:32 +00:00
Ethan Mallove
b7c885247a * Typo: change __volatile to __volatile__. Some compilers
(e.g., gcc) are indifferent about this, while others are more
   particular (e.g., Sun Studio 12).
 * Typo: `asms.s` to `asm.s`
 * Eliminate "foo is multiply-defined" linker errors on
   Solaris by making the declarations in `opal/sys/atomic.h` agree
   with their corresponding definitions (use `static inline` in *both*
   places).

This commit was SVN r16807.
2007-11-30 17:59:12 +00:00
Josh Hursey
bbef304f04 Convert the runtime version checks to be configure time checks (As they should
have been from the start).

This should fix the nightly build.

This commit was SVN r16706.
2007-11-09 06:13:40 +00:00
Josh Hursey
287ca882d3 Only process a checkpoint request from BLCR if this process was the one
requesting it. This commit adds a bit of error checking to keep us from
participating in a checkpoint that we did not initiate and therefore are
not ready for.

Thanks to Paul Hargrove and Eric Roman for their help with this.

This commit was SVN r16694.
2007-11-08 14:37:11 +00:00
Jeff Squyres
714b409595 Fix an uninitialized variable in the error case. Thanks to Ake
Sandgren for pointing out the mistake.

This commit was SVN r16682.
2007-11-07 01:52:23 +00:00
Rainer Keller
37c1b6a67e - As with rev16656, value is not modified.
Get rid of compiler warning from g++ - trunk

This commit was SVN r16670.
2007-11-06 10:56:06 +00:00
Rainer Keller
9045c5a6f1 - Value pointed to is not modified (file-name / FILE-macro),
getting rid of compiler-warning when compiled with trunk of g++:
   when doing --enable-debug:
  ../../../../orte/class/orte_pointer_array.h:128: warning: deprecated
  conversion from string constant to 'char*'

This commit was SVN r16656.
2007-11-05 13:03:35 +00:00
Ethan Mallove
005652c9d4 * Embed ident strings into the Open MPI libraries using one of the following
methods (in order of precedence):
  1. #pragma ident <ident string> (e.g., Intel and Sun)
  1. #ident <ident string> (e.g., GCC)
  1. static const char ident[] = <ident string> (all others)
By default, the ident string used is the standard Open MPI version string. Only
the following libraries will get the embedded version strings (e.g., DSOs will
not):
  * libmpi.so
  * libmpi_cxx.so
  * libmpi_f77.so
  * libopen-pal.so
  * libopen-rte.so
* Added two new configure options:
  * `--with-package-name="STRING"` (defaults to "Open MPI username@hostname
    Distribution"). `STRING` is displayed by `ompi_info` next to the "Package"
    heading.
  * `--with-ident-string="STRING"` (defaults to the standard Open MPI version
    string - e.g., X.Y.Zr######). `%VERSION%` will expand to the Open MPI
    version string if it is supplied to this configure option.

This commit was SVN r16644.
2007-11-03 02:40:22 +00:00
Jeff Squyres
dd27622814 Fix fd leak noted by Paul Hargrove.
http://www.open-mpi.org/community/lists/devel/2007/10/2493.php

This commit was SVN r16564.
2007-10-25 16:03:21 +00:00
Josh Hursey
0bf61a1b84 Move in some accumulated small features and minor bug fixes for C/R support.
{{{
svn merge -r 16447:16475 https://svn.open-mpi.org/svn/ompi/tmp/jjh-fgs .
}}}

This commit was SVN r16478.
2007-10-17 13:47:36 +00:00
Tim Prins
12d3ad4c5c remove unused and outdated opal message buffer code
This commit was SVN r16436.
2007-10-11 22:09:01 +00:00
Josh Hursey
06a30e7f3a Add a quick check to make sure the BLCR being used has a working cr_request.
If it doesn (version < 0.6.0) then fallback to fork/exec of cr_checkpoint
command.

This commit was SVN r16400.
2007-10-09 13:51:28 +00:00
Josh Hursey
7437f37e96 This commit contains the following:
* Fix some missing includes in a few places.
 * Add the cr_request() functionality to the BLCR CRS component.
   We are now dependent upon the 0.6.* series of BLCR.
 * Made the CR notification mechanism a registered function.
   This way we can have an OPAL-only version and it can be replaced at
   runtime with the ORTE version.
 * Add a 'opal_cr_allow_opal_only' parameter that will enable OPAL-only
   CR functionality when the user wants it. Default: Disabled.
 * Fix the placement of a checkpoint request check in MPI_Init
 * Pull the OPAL notification mechanism into the SnapC framework.
   * We no longer fork/exec the 'opal-checkpoint' command for local
   checkpointing, the Local coordinator in the orted does this directly.
   * The Local and Application coordinator talk together bypassing the OPAL
   notifiation mechanism.
   * Optimized the Local <-> App Coordinator communication.
   * Improved the structure used to track vpid_snapshots in the local coord.
 * Fix a race condition in which an application under heavy communication load
   may produce an inconsistent global checkpoint.

This commit was SVN r16389.
2007-10-08 20:53:02 +00:00
Torsten Hoefler
e985812e1f fixing a comment to be more detailed about opal_output_open
functionality ...

This commit was SVN r16370.
2007-10-06 17:33:57 +00:00
Ralph Castain
54b2cf747e These changes were mostly captured in a prior RFC (except for #2 below) and are aimed specifically at improving startup performance and setting up the remaining modifications described in that RFC.
The commit has been tested for C/R and Cray operations, and on Odin (SLURM, rsh) and RoadRunner (TM). I tried to update all environments, but obviously could not test them. I know that Windows needs some work, and have highlighted what is know to be needed in the odls process component.

This represents a lot of work by Brian, Tim P, Josh, and myself, with much advice from Jeff and others. For posterity, I have appended a copy of the email describing the work that was done:

As we have repeatedly noted, the modex operation in MPI_Init is the single greatest consumer of time during startup. To-date, we have executed that operation as an ORTE stage gate that held the process until a startup message containing all required modex (and OOB contact info - see #3 below) info could be sent to it. Each process would send its data to the HNP's registry, which assembled and sent the message when all processes had reported in.

In addition, ORTE had taken responsibility for monitoring process status as it progressed through a series of "stage gates". The process reported its status at each gate, and ORTE would then send a "release" message once all procs had reported in.

The incoming changes revamp these procedures in three ways:

1. eliminating the ORTE stage gate system and cleanly delineating responsibility between the OMPI and ORTE layers for MPI init/finalize. The modex stage gate (STG1) has been replaced by a collective operation in the modex itself that performs an allgather on the required modex info. The allgather is implemented using the orte_grpcomm framework since the BTL's are not active at that point. At the moment, the grpcomm framework only has a "basic" component analogous to OMPI's "basic" coll framework - I would recommend that the MPI team create additional, more advanced components to improve performance of this step.

The other stage gates have been replaced by orte_grpcomm barrier functions. We tried to use MPI barriers instead (since the BTL's are active at that point), but - as we discussed on the telecon - these are not currently true barriers so the job would hang when we fell through while messages were still in process. Note that the grpcomm barrier doesn't actually resolve that problem, but Brian has pointed out that we are unlikely to ever see it violated. Again, you might want to spend a little time on an advanced barrier algorithm as the one in "basic" is very simplistic.

Summarizing this change: ORTE no longer tracks process state nor has direct responsibility for synchronizing jobs. This is now done via collective operations within the MPI layer, albeit using ORTE collective communication services. I -strongly- urge the MPI team to implement advanced collective algorithms to improve the performance of this critical procedure.


2. reducing the volume of data exchanged during modex. Data in the modex consisted of the process name, the name of the node where that process is located (expressed as a string), plus a string representation of all contact info. The nodename was required in order for the modex to determine if the process was local or not - in addition, some people like to have it to print pretty error messages when a connection failed.

The size of this data has been reduced in three ways:

(a) reducing the size of the process name itself. The process name consisted of two 32-bit fields for the jobid and vpid. This is far larger than any current system, or system likely to exist in the near future, can support. Accordingly, the default size of these fields has been reduced to 16-bits, which means you can have 32k procs in each of 32k jobs. Since the daemons must have a vpid, and we require one daemon/node, this also restricts the default configuration to 32k nodes.

To support any future "mega-clusters", a configuration option --enable-jumbo-apps has been added. This option increases the jobid and vpid field sizes to 32-bits. Someday, if necessary, someone can add yet another option to increase them to 64-bits, I suppose.

(b) replacing the string nodename with an integer nodeid. Since we have one daemon/node, the nodeid corresponds to the local daemon's vpid. This replaces an often lengthy string with only 2 (or at most 4) bytes, a substantial reduction.

(c) when the mca param requesting that nodenames be sent to support pretty error messages, a second mca param is now used to request FQDN - otherwise, the domain name is stripped (by default) from the message to save space. If someone wants to combine those into a single param somehow (perhaps with an argument?), they are welcome to do so - I didn't want to alter what people are already using.

While these may seem like small savings, they actually amount to a significant impact when aggregated across the entire modex operation. Since every proc must receive the modex data regardless of the collective used to send it, just reducing the size of the process name removes nearly 400MBytes of communication from a 32k proc job (admittedly, much of this comm may occur in parallel). So it does add up pretty quickly.


3. routing RML messages to reduce connections. The default messaging system remains point-to-point - i.e., each proc opens a socket to every proc it communicates with and sends its messages directly. A new option uses the orteds as routers - i.e., each proc only opens a single socket to its local orted. All messages are sent from the proc to the orted, which forwards the message to the orted on the node where the intended recipient proc is located - that orted then forwards the message to its local proc (the recipient). This greatly reduces the connection storm we have encountered during startup.

It also has the benefit of removing the sharing of every proc's OOB contact with every other proc. The orted routing tables are populated during launch since every orted gets a map of where every proc is being placed. Each proc, therefore, only needs to know the contact info for its local daemon, which is passed in via the environment when the proc is fork/exec'd by the daemon. This alone removes ~50 bytes/process of communication that was in the current STG1 startup message - so for our 32k proc job, this saves us roughly 32k*50 = 1.6MBytes sent to 32k procs = 51GBytes of messaging.

Note that you can use the new routing method by specifying -mca routed tree - if you so desire. This mode will become the default at some point in the future.


There are a few minor additional changes in the commit that I'll just note in passing:

* propagation of command line mca params to the orteds - fixes ticket #1073. See note there for details.

* requiring of "finalize" prior to "exit" for MPI procs - fixes ticket #1144. See note there for details.

* cleanup of some stale header files

This commit was SVN r16364.
2007-10-05 19:48:23 +00:00
Josh Hursey
e10f476c87 Bring over the jjh-filem branch which contains a non-blocking FileM interface
and implementation. This has shown drastic performance benefit when
transferring Many files at roughly the same time.

I tested this for many different filem operations and everything was working
fine. Let me know if you have any problems with this functionality.

Some Notes:
 - opal-checkpoint now has a 'quiet' flag to keep it from being too verbose.

 - FileM RSH component is fully non-blocking.

 - FileM RSH component has incomming connection throttling since by default
   ssh only allows 10 concurrent scp connections to any single host. This
   default can be adjusted via an MCA parameter.
    {{{-mca filem_rsh_max_incomming 10}}}

 - There is an MCA parameter for max outgoing connections, but it is currently
   not implemented. If someone needs it then it should not be hard to implement.
    {{{-mca filem_rsh_max_outgoing 10}}}

 - Changed the FileM request structure so that it is a bit more explicit and
   flexible.

 - Moved the 'preload-binary' and 'preload-files' functionality into odls/base
   allowing for code reuse in the 'process' and 'default' ODLS components.

 - Fixed a bug in the process name resolution which broke the 'preload-*'
   functionality due to GPR table structure changes.

 - The FileM RSH component might be able to see even more speedup from using a
   thread pool to operate on the work_pool structures, but that is for future
   work.

 - Added a 'opal-show-help' file to ODLS Base

This commit was SVN r16252.
2007-09-27 13:13:29 +00:00
Tim Prins
e25bb7f187 Some platforms (such as FreeBSD) need libutil.h included for openpty.
Thanks to Karol Mroz for pointing this out.

This commit was SVN r16163.
2007-09-19 21:59:22 +00:00
George Bosilca
d1364c53de Don't allocate the temporary buffer on the stack. It get way too much
space.

This commit was SVN r16127.
2007-09-14 02:09:38 +00:00
George Bosilca
2c8c75ef94 Coverty blame list:
- Remove memory leaks
 - uninitialized return

This commit was SVN r16126.
2007-09-14 02:08:37 +00:00
George Bosilca
921d79c2b8 Remove few memory leaks. Close the files where we're done with them.
This commit was SVN r16125.
2007-09-14 02:06:26 +00:00
George Bosilca
41ed50f901 Use secure version of strncpy and srtncat. Release the temporary
resources on error.

This commit was SVN r16124.
2007-09-14 02:04:34 +00:00
George Bosilca
61989cc4d4 Don't hardcode the length, there is an argument for that. Don't
do the NULL check as we already know thaty tmp cannot be NULL.

This commit was SVN r16123.
2007-09-14 02:02:03 +00:00
Josh Hursey
b4735c9719 Remove an old workaround in which we had to 'mv' the checkpoint file after it
was taken form the $CWD to the storage directory. Now we just store directly
to the storage directory which can reduce NFS traffic if working in that mode.

A slight performance boost, but at the point you are using NFS you are paying
a penalty anyway. Now you just don't have to pay it twice :)

This commit was SVN r16099.
2007-09-12 15:03:21 +00:00
Gleb Natapov
140dce7614 Fix ABA problem in atomic_lifo code. This is temporary solution for now. We
are looking for a better one.

This commit was SVN r16091.
2007-09-11 15:40:30 +00:00
Shiqing Fan
a389e61330 - Add some type casts, required by MS compiler.
This commit was SVN r16085.
2007-09-11 09:32:11 +00:00
Gleb Natapov
febdade113 Make non threaded OPAL_ATOMIC_CMPSET macros work correctly.
This commit was SVN r16071.
2007-09-09 08:00:16 +00:00
Jeff Squyres
3653bfcbe7 This function returns void.
This commit was SVN r15934.
2007-08-20 13:12:38 +00:00
Brian Barrett
2b8af283de Add ability to completely turn off MPI one-sided support, so that users
can experiment with using ROMIO directly.

This commit was SVN r15922.
2007-08-18 21:35:51 +00:00
Josh Hursey
729c63cf9d Fix invalid MCA 'base' names so they appear in ompi_info.
A subset of this patch needs to be applied to v1.2

Refs trac:928

This commit was SVN r15918.

The following Trac tickets were found above:
  Ticket 928 --> https://svn.open-mpi.org/trac/ompi/ticket/928
2007-08-18 03:05:45 +00:00
Brian Barrett
2d4918b09d Support versions of the Libtool 2.1a snapshots after the lt_dladvise code
was brought in.  This supercedes the GLOBL patch that we had been using
with Libtool 2.1a versions prior to the lt_dladvise code.  Autogen
tries to figure out which version you're on, so either will now work with
the trunk.

This commit was SVN r15903.
2007-08-17 04:08:23 +00:00
Brian Barrett
20fe0952f7 compare should compare the framework names as well. Fixes a potential bug in
the modex component compare code (thanks to Tim P. for finding the problem)

This commit was SVN r15885.
2007-08-16 16:51:41 +00:00
Adrian Knoth
3115816733 Poor off-by-one line error. This now really builds on kFreeBSD.
Re #1105

This commit was SVN r15842.
2007-08-13 19:00:18 +00:00
Tim Prins
188771901d Fix typo.
This commit was SVN r15802.
2007-08-08 14:37:50 +00:00
Sven Stork
f22ab47f84 - one more required symbol
This commit was SVN r15801.
2007-08-08 13:02:10 +00:00
Sven Stork
3c753a4cf7 - export required symbol
This commit was SVN r15800.
2007-08-08 12:57:53 +00:00
Brian Barrett
a48f07b1d9 If we don't have event ops, we don't have a current_base, so don't dereference
the pointer (fixes a segfault Josh was seeing).

This commit was SVN r15796.
2007-08-07 17:09:54 +00:00
Sven Stork
3a640603a4 - remove wrong va_end
This commit was SVN r15789.
2007-08-07 13:32:05 +00:00
Sven Stork
5e257fadbd - add missing va_end
This commit was SVN r15788.
2007-08-07 12:25:20 +00:00
George Bosilca
31dfa5592e Few clean-ups, few indentations. Nothing really important.
This commit was SVN r15767.
2007-08-04 00:44:23 +00:00
George Bosilca
629bacbb07 Don't include the atomic header file, if we're building a non threaded version.
This commit was SVN r15766.
2007-08-04 00:43:15 +00:00
George Bosilca
e2f6d69669 Only use one va_list, as it seems that only one is allowed.
This commit was SVN r15765.
2007-08-04 00:41:26 +00:00
Josh Hursey
6248b2bb51 Whoops. Make sure to include the opal_output header.
This commit was SVN r15755.
2007-08-03 19:20:23 +00:00
Josh Hursey
dc9644a2c2 Add a bit of error output so the user can figure out what
went wrong when we cannot create a directory.

This commit was SVN r15754.
2007-08-03 19:08:48 +00:00
Brian Barrett
951755f9fb no need to call gethostname twice to determine if a process is local
This commit was SVN r15742.
2007-08-02 16:25:25 +00:00
Gleb Natapov
dd8b0c925f Add OPAL_ATOMIC_CMPSET macros that became non atomic with only one threaded.
This commit was SVN r15720.
2007-08-01 12:13:34 +00:00
Gleb Natapov
072ebf0fb3 Add new opal_argv_split_with_empty() function. opal_argv_split() function
doesn't include empty string in the argv array if there are two delimiters
in a row in an input string.

This commit was SVN r15718.
2007-08-01 12:08:11 +00:00
George Bosilca
d52d21fae8 Don't forget to include the header file in the sources list.
This commit was SVN r15711.
2007-07-31 18:40:31 +00:00
Shiqing Fan
0f468f3668 - Remove the solution and project files, will commit them later.
This commit was SVN r15705.
2007-07-31 17:07:02 +00:00
Sven Stork
4c5836c2ee - add missing va_end found by coverity
This commit was SVN r15689.
2007-07-30 16:08:18 +00:00
Sven Stork
71915f269c - more coverity fixes
- use stncpy
  - comapring NULL against an array which is staically inside
    the structure will allways be true

This commit was SVN r15684.
2007-07-30 15:19:54 +00:00
Shiqing Fan
4d7b349cdb - Add VC8 solution and project files.
- If one wants to use this solution, remember to unload the project 'orte-restart' which is currently not working for Windows.

This commit was SVN r15680.
2007-07-30 11:05:34 +00:00
Josh Hursey
fb90a75fc9 A fix so that 'self' only compiles if --enable-dlopen (common case).
This is because internally 'self' uses dlopen to look at the application
running to determine if it can/should be used or not.

This commit was SVN r15673.
2007-07-29 17:40:17 +00:00
George Bosilca
8350ba19db Add protections against the shlwapi.h header file.
This commit was SVN r15597.
2007-07-25 03:49:31 +00:00
George Bosilca
0158806e4c Add the missing return.
This commit was SVN r15596.
2007-07-25 03:48:04 +00:00
Adrian Knoth
e6345aeac6 Fixes for building on kFreeBSD. Re #1105
This commit was SVN r15592.
2007-07-24 23:19:45 +00:00
Brian Barrett
de2c4deeda Fix deadlock in thread case exposed by ORTE message model -- if we are
in a callback from the event library and post an RML receive, we'll
deadlock because the event library wouldn't be entered until the
event library was not already entered.  Now just protect data structures
(which we were basically already doing) instead of code, like good
threading people ;).

This commit was SVN r15585.
2007-07-24 19:10:19 +00:00
Brian Barrett
c3be7376c5 * Mark some of the structures passed into the if and net code as const when
they actually are const.
  * Remove some dead code from the no IP support case
  * Add doxygen comment for opal_net_get_port()

This commit was SVN r15547.
2007-07-22 19:19:01 +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
Josh Hursey
6026929490 Fix compiler error on Cray by adding in the std io/lib headers.
This commit was SVN r15515.
2007-07-19 18:26:10 +00:00
Jeff Squyres
7ae4a22ed5 Wow. How did that one get through?
This commit was SVN r15514.
2007-07-19 17:18:10 +00:00
Brian Barrett
6427c9f92a oops, need a return statement there...
This commit was SVN r15509.
2007-07-19 16:21:11 +00:00
Brian Barrett
52ee1cb5da fix missing ; in solaris functions
This commit was SVN r15505.
2007-07-19 15:15:41 +00:00
Ralph Castain
ccdb834574 Fix a couple of compile errors. Also, we need to ensure that we only attempt to call destructors on tsd keys that were defined.
This commit was SVN r15501.
2007-07-19 12:56:41 +00:00
Jeff Squyres
7c52a0ce17 Help track down when NULL is passed to %s for OPAL replacements of
asprintf and friends.  This is not a failsafe; there are many cases
where this check will not be used.  But at least it's something...

This commit was SVN r15500.
2007-07-19 12:28:43 +00:00
Brian Barrett
5c1c3cdf1c remove debugging output
This commit was SVN r15497.
2007-07-18 21:57:58 +00:00
Brian Barrett
8a7b6656b3 Reference count calls to the util access as well as the main initialized
code

This commit was SVN r15495.
2007-07-18 20:28:19 +00:00
Brian Barrett
916397f358 Use thread specific data and static buffers for the return type of
opal_net_get_hostname() rather than malloc, because no one was freeing
the buffer and the common use case was for printfs, where calling
free is a pain.

This commit was SVN r15494.
2007-07-18 20:25:01 +00:00
Brian Barrett
c5d0066c27 add ability to have thread-specific data on windows, pthreads, solaris threads,
and non-threaded builds

This commit was SVN r15492.
2007-07-18 20:23:45 +00:00
Sven Stork
a6d04c60b4 - the use_component function is always present independent of OMPI_WANT_LIBLTDL
This commit was SVN r15481.
2007-07-18 14:25:51 +00:00
Sven Stork
92fce998fe - the use_component function is always present independent of OMPI_WANT_LIBLTDL
This commit was SVN r15480.
2007-07-18 14:19:24 +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
George Bosilca
e3ad495e7b Remove an unused variable.
This commit was SVN r15473.
2007-07-17 22:34:59 +00:00
Sven Stork
73f1d800cf - Make the component select with static build working.
Remove the matching logic out of dynamic path into an
  extra function. Add the corresponing check to the static
  component path.

This commit was SVN r15458.
2007-07-17 12:06:51 +00:00
Camille Coti
59dc6b95f3 Modifications in the way user-specified modules are loaded. Once we get the list of filenames from the libtool, we add the statically defined ones and then based on the include/exclude string we only keep the ones requested by the user. If no include/exclude was provided, we keep [as expected] everything. Once we have the list of whatever is requested we open them. Therefore, as an example, if the user specify "--mca pml ob1" we will never try to load/open/init DR nor CM.
There are several interesting things:
1. less NFS traffic [as we potentially access less files]
2. faster loading time [in case the user tune it's execution environment]
3. (1) + (2) -> faster startup time [at least everything which do not depend on the network]
4. MX bug will go away if the pml is specified.
5. No useless BTL will be opened, which will solve few others issues.

This commit was SVN r15402.
2007-07-13 14:54:01 +00:00
Josh Hursey
73273397f5 Quiet a warning on the Cray systems in which mkfifo does not work.
Thanks to Lisa Glendenning for mentioning this, and Brian for following
up with me on it.

This commit was SVN r15392.
2007-07-12 20:30:09 +00:00
Pak Lui
2aec8c527e fix a small leak. strdup used twice on retval.
This commit was SVN r15357.
2007-07-11 14:00:29 +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
1701013dd0 The real Windows solution. This generate one more dependence when
building on Windows (to the shlwapi.lib).

This commit was SVN r15267.
2007-07-02 18:11:14 +00:00
Jeff Squyres
c796d84d61 * Integrate man pages contributed by Dirk Eddelbuettel
* Make orted.1 man page be non-descriptive because it's really an
   internal command.
 * Re-work the opal_wrapper man page logic a bit so that we can have a
   real opal_wrapper.1 installed that says "don't look here -- look at
   mpicc (etc.)"

This commit was SVN r15264.
2007-07-02 15:27:39 +00:00
George Bosilca
610d7a0d2c A Windows specific solution around the real path function.
This commit was SVN r15263.
2007-07-02 14:55:10 +00:00
Adrian Knoth
83c7aab185 Removed annoying debug output
This commit was SVN r15262.
2007-07-02 13:17:27 +00:00
George Bosilca
0bf7463c6f This one was nice ... and it didn't even trigger a compile warning.
Update the copyright.

This commit was SVN r15256.
2007-07-01 17:59:46 +00:00
George Bosilca
b9251eb442 On Windows accept networked path (i.e. starting with \\). Add a new function
opal_find_absolute_path which take as argument a executable name and return
the absolute path if possible.

This commit was SVN r15255.
2007-07-01 17:53:19 +00:00
George Bosilca
003d1b8665 On windows make sure we add the initial path separator only if we are
creating a relative path. Use BEGIN_C_DECLS and END_C_DECLS on some
header files.

This commit was SVN r15254.
2007-07-01 17:51:34 +00:00
Brian Barrett
9687f70aea Add solaris condition variables
This commit was SVN r15225.
2007-06-27 16:48:30 +00:00
Brian Barrett
04c0fcccf0 fix silly warning with the Sun compilers
This commit was SVN r15224.
2007-06-27 15:47:47 +00:00
Brian Barrett
6b3cd84403 Fix issue Dan found -- we don't expand out the extra pre-processor, compiler
or linker flags.  Which makes the whole wrapper-extra-*flags thing slightly
less useful than perhaps it should be.

This commit was SVN r15222.
2007-06-27 14:17:57 +00:00
Josh Hursey
f88aa6c273 This commit cleans up the AMCA parameter implementation a bit.
* Remove the 'opal_mca_base_param_use_amca_sets' global variable
* Harness the fact that you can (read should) call the cmd_line functions
  before initializing opal_init_util(). This pushes the MCA/GMCA/AMCA
  command line options into the environment before OPAL inits and starts
  to use these values. By putting the cmd_line parse before opal_init_util
  in orterun and orted we only parse the *MCA parameter files once, and 
  correctly (alleviating the need to 'recache' the files on init.)
* Small bits of cleanup.

This commit was SVN r15219.
2007-06-27 01:03:31 +00:00
Josh Hursey
dada472c13 some additional debugging output
This commit was SVN r15218.
2007-06-27 00:54:18 +00:00
Sven Stork
813d4dc175 - let the mvapi btl and the rest of the world use our posix_memalign function.
This commit was SVN r15202.
2007-06-26 14:45:20 +00:00
Brian Barrett
249ddf8fff Only print warning message about condition variable useage if the MCA
param says we should  Also, check for != 0, rather than == 1, as there
are way too many double locks, but they'll get warned when we do the
double lock.  No need to warn again, in a meaningless way.

Originally part of r15167, reverted with r15172.

This commit was SVN r15173.

The following SVN revision numbers were found above:
  r15167 --> open-mpi/ompi@faa401dc47
  r15172 --> open-mpi/ompi@5f16251808
2007-06-22 15:28:12 +00:00
Brian Barrett
5f16251808 revert r15167. I don't know what I was thinking, but it was most definitely
"not right".

This commit was SVN r15172.

The following SVN revision numbers were found above:
  r15167 --> open-mpi/ompi@faa401dc47
2007-06-22 15:25:39 +00:00
Brian Barrett
faa401dc47 * Need to OBJ_RELEASE, not OBJ_DESTRUCT things that were created with
OBJ_NEW
  * Need to single when the passive unlock has left an expose epoch for
    the win_free case
  * Clean up some debugging output
  * fix missing variable initialization

This commit was SVN r15167.
2007-06-21 22:08:30 +00:00
Jeff Squyres
022bd30558 Back out r15158 because it apparently breaks with recent versions of
flex (which, incidentally, emit ''more'' warnings than earlier
versions).  Grumble.

This commit was SVN r15166.

The following SVN revision numbers were found above:
  r15158 --> open-mpi/ompi@57d09c10f7
2007-06-21 21:14:10 +00:00
Jeff Squyres
57d09c10f7 Avoid some compiler warnings that come up ''every day'' in MTT (and
have been for eons): make a symbol be used in a dumb but harmless way.

This commit was SVN r15158.
2007-06-21 15:42:06 +00:00
Shiqing Fan
66d9f8e516 Add braces.
This commit was SVN r15155.
2007-06-21 07:53:47 +00:00
Shiqing Fan
228d2b4996 Check if it's valid event handle. This will get rid of run time exception.
This commit was SVN r15154.
2007-06-21 07:49:11 +00:00
Josh Hursey
bfa8401c0c Fix some thread warnings that caught me being dumb with locks. :[
This commit was SVN r15146.
2007-06-20 14:18:33 +00:00
Jeff Squyres
57486f0b69 Re-enable threaded builds. Need to protect usage of mutex->m_*
variables to only use them a) when debugging, and b) when we don't
have real thread support.

This commit was SVN r15099.
2007-06-15 14:26:23 +00:00
Jeff Squyres
7e379aff10 Fixes trac:1057.
Ensure that the AM_CONDITIONALs are ''always'' run, even if we
--enable-mca-no-build the paffinity/linux component.

This commit was SVN r15095.

The following Trac tickets were found above:
  Ticket 1057 --> https://svn.open-mpi.org/trac/ompi/ticket/1057
2007-06-15 11:36:22 +00:00
George Bosilca
17f9893448 Add some attributes.
This commit was SVN r15094.
2007-06-15 05:07:49 +00:00
George Bosilca
8c5b63768c A working version of the mutex_trylock for Windows.
This commit was SVN r15084.
2007-06-14 22:28:28 +00:00
Ethan Mallove
a09aebc30b Fix typo. Change mutex_destory to mutex_destroy.
This commit was SVN r15083.
2007-06-14 19:02:37 +00:00
George Bosilca
b33086b941 Check for the right function. This is always supposed to
fails on anything than Windows.

This commit was SVN r15072.
2007-06-14 07:03:26 +00:00
George Bosilca
be179cea79 Windows component allowing to get the paths from the registry.
This commit was SVN r15071.
2007-06-14 06:47:03 +00:00
George Bosilca
76ff70e672 Allow a threaded build on Windows.
This commit was SVN r15070.
2007-06-14 04:52:37 +00:00
George Bosilca
c70566dfe7 Remove unused variables.
This commit was SVN r15029.
2007-06-12 22:50:43 +00:00
George Bosilca
286606d4c3 Allow access to the system wide registry (supposedly updated by
the administrator) as well as to the user registry.

This commit was SVN r15028.
2007-06-12 22:49:54 +00:00
George Bosilca
c2a18b0741 Update the Windows paffinity component.
This commit was SVN r15027.
2007-06-12 22:48:33 +00:00
Brian Barrett
84d1512fba Add the potential for doing some basic error checking on mutexes during
single threaded builds.  In its default configuration, all this does
is ensure that there's at least a good chance of threads building
based on non-threaded development (since the variable names will be
checked).  There is also code to make sure that a "mutex" is never
"double locked" when using the conditional macro mutex operations.
This is off by default because there are a number of places in both
ORTE and OMPI where this alarm spews mega bytes of errors on a
simple test.  So we have some work to do on our path towards
thread support.

Also removed the macro versions of the non-conditional thread locks,
as the only places they were used, the author of the code intended
to use the conditional thread locks.  So now you have upper-case
macros for conditional thread locks and lowercase functions for
non-conditional locks.  Simple, right? :).

This commit was SVN r15011.
2007-06-12 16:25:26 +00:00
Jeff Squyres
6d8de7f1a9 Remove some unnecessary kruft (this -I flag is now directly in the one
Makefile.am that needs it).

This commit was SVN r14983.
2007-06-11 11:19:26 +00:00
Jeff Squyres
af0d875302 Fix linux component for static builds.
This commit was SVN r14952.
2007-06-07 12:47:40 +00:00
Jeff Squyres
f3ee5fc3ec This component should be ok now.
This commit was SVN r14944.
2007-06-07 01:00:03 +00:00
Jeff Squyres
84e3a02064 Fix for not being able to build on systems other than Linux: move
AM_CONDITIONAL's outside of conditional logic so that they are always
executed.

This commit was SVN r14943.
2007-06-07 00:59:39 +00:00
Jeff Squyres
fdef72cf62 This component seems to be working now; removing the .ompi_ignore.
This commit was SVN r14918.
2007-06-06 18:43:46 +00:00
Jeff Squyres
2e0b1b442f * Fix up some version numbers
* Re-add module finalize function support

This commit was SVN r14917.
2007-06-06 18:36:04 +00:00
Jeff Squyres
d8b06a2eff Bump framework version number up to 1.1.0, therefore [mostly]
re-enabling compilation of this component.

However, it still won't compile because this component provides a
module finalize function which apparently somehow got dropped from the
paffinity base.  Support for the paffinity module finalize function
needs to be re-added.

This commit was SVN r14915.
2007-06-06 17:46:04 +00:00
Brian Barrett
e3d7167792 The linux paffinity component doesn't properly set AM_CONDITIONALs when
not building.  Disable until someone can fix.

This commit was SVN r14911.
2007-06-06 15:34:15 +00:00
Jeff Squyres
b9f8b83442 MTT shows that the Solaris component build is borked. Fixing...
This commit was SVN r14908.
2007-06-06 15:00:09 +00:00
Brian Barrett
b4ffc97195 fix memory leak when doing regex code
This commit was SVN r14906.
2007-06-06 14:40:28 +00:00
Jeff Squyres
cc3c75572e Remove the .ompi_* files -- it all seems to work ok now.
This commit was SVN r14899.
2007-06-06 11:31:39 +00:00
Brian Barrett
5e2d9bec39 allow regular expressions in compiler arguments for the multi-lib support
This commit was SVN r14897.
2007-06-06 03:42:17 +00:00
Jeff Squyres
a61ed0596a More fixes for revamped linux paffinity component:
* Enable VPATH builds to work (slight tweak of r14895 -- mainly
   because I already had it done when George committed :-) )
 * Enable "make dist" to work properly for PLPA included mode
 * Update plpa.h.in
 * Update svn:ignore

Took relevant changes back to the main PLPA SVN as well.

This commit was SVN r14896.

The following SVN revision numbers were found above:
  r14895 --> open-mpi/ompi@bb7b04e875
2007-06-06 02:26:47 +00:00
George Bosilca
bb7b04e875 Make it compile even with VPATH.
This commit was SVN r14895.
2007-06-06 02:06:44 +00:00
Jeff Squyres
0bf6946654 Add .ompi_ignore -- VPATH builds are broken and let's not bork the
nightly tarballs...

This commit was SVN r14893.
2007-06-06 00:57:35 +00:00
George Bosilca
d3aaf2be05 Add missgin file. Now autogen works [at least].
This commit was SVN r14892.
2007-06-06 00:16:22 +00:00
Bill D'Amico
9b5f73976d Bring Portable Linux Processor Affinity into trunk.
Changes paffinity interface to use a cpu mask for available/preferred cpus
rather than the current coarse grained paffinity that lets the OS choose
which processor.

Macros for setting and clearing masks are provided.

Solaris and windows changes have not been made. Solaris subdirectory has some
suggested changes - however the relevant man pages for the Solaris 10 APIs
have some ambiguity regarding order in which one create and sets a processor
set. As we did not have access to a solaris 10 machine we could not test to
see the correct way to do the work under solaris.

This commit was SVN r14887.
2007-06-05 22:07:30 +00:00
Tim Prins
f3e13f7231 Need one additional space for the case that the path is relative
This commit was SVN r14870.
2007-06-05 14:50:15 +00:00
Brian Barrett
508da4e959 OS X apparently really doesn't like shared libraries with unresolvable
symbols in them and environ is defined only in the final application
(probably in crt1.o).  Apple provides a function for getting at the
environment, so use that instead if it's available.

This commit was SVN r14857.
2007-06-05 03:03:59 +00:00
Shiqing Fan
9b6af19371 opal_cr is disabled on Windows, but we don't want to stop the program here, make it continue to run.
This commit was SVN r14847.
2007-06-04 12:34:02 +00:00
Shiqing Fan
03fa831c34 Get rid of structure rlimit only on Windows, which doesn't provide such structure definition.
This commit was SVN r14846.
2007-06-04 12:27:40 +00:00
Shiqing Fan
90b99e5344 Make select work for MS Windows.
This commit was SVN r14845.
2007-06-04 10:53:04 +00:00
Brian Barrett
34fea87819 * Only need to to the opal_progress_event_users_increment() once between
OPAL and ORTE.  Since we now do opal_progress_init(), we do it
    there.  Fixes a performance issue introduced in r14773.
  * While trying to find the above, notived that we did the reference
    counting for the init in init_util and for finalize in fini.  That
    isn't right, so make them both in the non-util versions.

This commit was SVN r14830.

The following SVN revision numbers were found above:
  r14773 --> open-mpi/ompi@1e678c3f55
2007-06-01 02:43:46 +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
Josh Hursey
1e678c3f55 per conversation with Ralph and Jeff take out the opal_init_only logic.
This commit moves the initalization/finalization of opal_event and opal_progress
to opal_init/finalize. These were previously init/final in ORTE which is an
abstraction violation. After talking about it we concluded that there are no
ordering issues that require these to be init/final in ORTE instead of OPAL.

I ran the IBM test suite against this commit and it didn't turn up any new
failures so I think it is good to go.

Let us know if this causes problems.

This commit was SVN r14773.
2007-05-24 21:54:58 +00:00
Rainer Keller
a665b7a20d - Getting rid of "missing initializer" warnings
This commit was SVN r14766.
2007-05-24 19:19:52 +00:00
Rainer Keller
0e2a335297 - When not debugging, do not initialize a unused mutexattr.
This commit was SVN r14761.
2007-05-24 18:54:22 +00:00
Josh Hursey
caea631032 Fix a compiler error when not building with ipv6 support.
This commit was SVN r14743.
2007-05-23 21:53:00 +00:00
Adrian Knoth
b2219710d4 Cosmetics. Changed function name in error output.
This commit was SVN r14724.
2007-05-23 10:05:18 +00:00
Brian Barrett
0e9e0c518a Fix a couple more progress thread related issues...
This commit was SVN r14708.
2007-05-21 16:06:14 +00:00
Brian Barrett
6b4264f178 * forgot to fix the BSD and Sun cases for finding IPv6 addresses
This commit was SVN r14688.
2007-05-17 16:21:44 +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
22af6d38e6 - UNexport symbols that shouldn't be needed outside the libraries
- replace #if/#endif with BEGIN/END_C_DECLS
- reformating

This commit was SVN r14669.
2007-05-16 15:46:52 +00:00
Sven Stork
a97e65e7f7 - export mmap/munmap so the memory manager can intercept this calls
This commit was SVN r14665.
2007-05-16 13:40:33 +00:00
Brian Barrett
21e00f6f0c Clean up a couple of configure things:
* Require Autoconf 2.60 or higher and remove some cruft
    required for AC 2.59 or the AC 2.59 / AC 2.60 mix
  * Remove a bunch of now unnecessary AC_SUBST calls
  * Use the libtool-provided variables for the -I and
    library to use when compiling against ltdl

Fixes trac:1000

This commit was SVN r14652.

The following Trac tickets were found above:
  Ticket 1000 --> https://svn.open-mpi.org/trac/ompi/ticket/1000
2007-05-15 04:23:48 +00:00
Rich Graham
dc06f174ae fix dummy functions to match the function prototype
This commit was SVN r14624.
2007-05-09 04:46:21 +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
Rolf vandeVaart
c48dde66ac Change the __const qualifier to const. This change was needed
because the Sun Studio compiler did not recognize __const.

This commit fixes trac:1011.

This commit was SVN r14558.

The following Trac tickets were found above:
  Ticket 1011 --> https://svn.open-mpi.org/trac/ompi/ticket/1011
2007-05-01 17:45:37 +00:00
George Bosilca
bb481273a6 Typos.
This commit was SVN r14546.
2007-04-28 19:15:53 +00:00
George Bosilca
abe6ddfd04 Remove dead code.
This commit was SVN r14545.
2007-04-28 19:15:02 +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
Rainer Keller
6f9251ed39 - Small fixes by PGI -Minform=inform
This commit was SVN r14524.
2007-04-26 08:16:07 +00:00
Rainer Keller
9c3838d1a0 - Make definition available within C as well.
This commit was SVN r14523.
2007-04-26 08:06:00 +00:00
Jeff Squyres
c331ed7bda Fix "make dist" by adding ipv6compat.h into the headers list.
This commit was SVN r14522.
2007-04-26 02:33:02 +00:00
Brian Barrett
4b8bb70afb A couple cleanups for the IPv6 support:
- make opal_sockaddr2str() take a sockaddr_storage instead of a sockaddr_in6
    so that it works for IPv4 and IPv6 addresses, and remove a whole bunch
    of #ifs in the OOOB code.
  - Fix a compiler warning in the TCP BTL due to run-time determined
    array size by making it a dynamicly allocated array.
  - Fix the unpacking code of IPv4 addresses when using IPv6 support, so
    that the address is in the correct location (instead of in an IPv6
    structure, use an IPv4 structure).  Refs trac:1005.

This commit was SVN r14514.

The following Trac tickets were found above:
  Ticket 1005 --> https://svn.open-mpi.org/trac/ompi/ticket/1005
2007-04-25 19:08:07 +00:00
Adrian Knoth
d01125f051 Typo.
This commit was SVN r14513.
2007-04-25 18:19:34 +00:00
Adrian Knoth
d1ce39de4f Move mca_btl_tcp_addr_isipv4public to opal_addr_isipv4public
This commit was SVN r14512.
2007-04-25 18:06:06 +00:00