1
1

1508 Коммитов

Автор SHA1 Сообщение Дата
Rolf vandeVaart
f22f76a6ff Add byte swapping macro for failover control message per jsquyres review.
This commit was SVN r24266.
2011-01-19 19:58:35 +00:00
Rolf vandeVaart
e75b86d3ab Fix some issues from jsquyres review.
1. Use asprintf instead of snprintf
2. Return remote_proc where possible.
3. Remove dead code.
4. Fix two comment typos.

This commit was SVN r24265.
2011-01-19 16:09:17 +00:00
Ethan Mallove
82054cb02c Include <stdlib.h> instead of <malloc.h>. This avoids a compiler error
on some systems caused by the definition of malloc in
opal_config_bottom.h getting expanded in the system malloc.h when
OPAL_ENABLE_MEM_DEBUG is set to 1.

This commit was SVN r24210.
2011-01-06 18:16:36 +00:00
Jeff Squyres
58445f3775 After being hit by "why is openib not working?" ''again'', add a
verbose statement that shows up when you --mca btl_base_verbose 100.
It clearly states that the openib BTL disqualifies itself when
MPI_THREAD_MULTIPLE is used.

This commit was SVN r24209.
2011-01-05 22:01:15 +00:00
Josh Hursey
bbfdf04a81 Fix a couple of 'unused variable' warnings, and one return value warning.
{{{
base/paffinity_base_service.c: In function ‘opal_paffinity_base_cset2mapstr’:
base/paffinity_base_service.c:623: warning: unused variable ‘range_last’
base/paffinity_base_service.c:623: warning: unused variable ‘range_first’
base/paffinity_base_service.c:622: warning: unused variable ‘count’
base/paffinity_base_service.c:622: warning: unused variable ‘m’
}}}

{{{
connect/btl_openib_connect_oob.c: In function ‘init_ud_qp’:
connect/btl_openib_connect_oob.c:1111: warning: control reaches end of non-void function
connect/btl_openib_connect_oob.c: In function ‘init_device’:
connect/btl_openib_connect_oob.c:1235: warning: unused variable ‘i’
connect/btl_openib_connect_oob.c: In function ‘get_pathrecord_sl’:
connect/btl_openib_connect_oob.c:1323: warning: unused variable ‘i’
}}}

This commit was SVN r24196.
2010-12-30 15:37:50 +00:00
Doron Shoham
834625cc51 Currently the service lever is passed as static parameter (ib_service_level), but the service level is possibly dynamic and if so the only way to get a proper value is to ask the SA.
New mca parameter is added (ib_path_rec_service_level) - positive value means that we should get the SL from the SA.

This is usable for torus topologies where different SL value is used for different endpoints.

A cache is kept of ib queue pairs used to communicate with the SA for a particular device and port and path record SL values retrieved from that SA.

The interaction with the cache assumes that there are no recursive calls to these routines. This must be solved either by code flow, by using higher level locks, or by adding a locking mechanism to these routines along with some method for avoiding deadlock.

This code use a UD queue pair to talk to the SA, and not need to chmod /dev/infiniband/umad* for use by normal users.  

The request to the SA is a SubnAdmGet(), not a SubnAdmGetTable().
In the future we might add a support of a SubnAdmGetTable(), but it will require implementing RMPP (Reliable Multi-Packet Transaction Protocol) and I'm not sure we want to do that.

This patched is based on the work of David McMillen <davem@systemfabricworks.com>.

This commit was SVN r24195.
2010-12-30 08:20:24 +00:00
Doron Shoham
bfe611d3bd This patch fixes bugs #2627 (1.5.2) and #2623 (1.4.2) - Sending large messages over RDMA fails.
The patch includes the following:
 *  Add new mca parameter - btl_openib_max_hw_msg_size - Maximum size (in bytes) of a single fragment of a long message when using the RDMA protocols (must be > 0 and <= hw capabilities).
 *  If btl_openib_max_hw_msg_size is larger than the maximum hw limitation print error message.
 *  Change the default openib flags to include only PUT and not GET.
 *  Print error message if user choose manually GET flag in openib btl.
 *  In prepare_dst: limit the message size to be the minimum of both endpoint's hw_limitation and the user limitation (if requested).

This commit was SVN r24191.
2010-12-23 11:48:43 +00:00
Jeff Squyres
b113b1a382 Add the btl_tcp_if_seq MCA parameter. From the help string:
If specified, a comma-delimited list of TCP interfaces.  Interfaces
  will be assigned, one to each MPI process, in a round-robin fashion
  on each server.  For example, if the list is "eth0,eth1" and four
  MPI processes are run on a single server, then local ranks 0 and 2
  will use eth0 and local ranks 1 and 3 will use eth1.

This feature is only useful for environments with virtual ethernet
interfaces on the same network.  For example, if eth0 and eth1 are
virtual interfaces to the same NIC on the same subnet, and if the NIC
provides different hardware resources to eth0 and eth1 (not just
different kernel resources), some HOL blocking and congestion issues
can be eased in a modest fashion.

This commit was SVN r24181.
2010-12-16 00:54:32 +00:00
Samuel Gutierrez
7d8d7769ee remove unneeded include in sm btl.
This commit was SVN r24165.
2010-12-13 17:30:47 +00:00
Shiqing Fan
f43862420c Convert the bad dos line endings to unix style for all windows related files.
This commit was SVN r24137.
2010-12-02 12:08:08 +00:00
Samuel Gutierrez
5dbb688feb Oops! Remove unneeded memory barrier.
This commit was SVN r24096.
2010-11-29 16:10:44 +00:00
Samuel Gutierrez
74cff0e2a5 Update memory barriers in shared memory (sm) BTL. Fixes periodic segmentation faults when using Intel 10.0.025 or PGI 9.0-3. See #2619 for more details. Thanks Brian and George!
This commit was SVN r24095.
2010-11-29 15:57:54 +00:00
Eugene Loh
fcf1d993b8 Clarify in ompi/mca/btl/base that eager limits include header.
This commit was SVN r24085.
2010-11-24 03:21:33 +00:00
Jeff Squyres
e4744b4ed5 Per http://www.open-mpi.org/community/lists/devel/2010/11/8671.php,
change a bunch of OMPI_<foo> names to OPAL_<foo>.

This commit was SVN r24046.
2010-11-12 23:22:11 +00:00
Rolf vandeVaart
c74df90729 Fix compile warnings for unused functions.
This commit was SVN r24033.
2010-11-10 21:04:32 +00:00
Rolf vandeVaart
da9c936ba0 Fix cut and paste error. Checking the wrong flags.
This commit was SVN r24029.
2010-11-10 19:09:47 +00:00
Rolf vandeVaart
50f8de7ab0 Fix up the debug functions.
This commit was SVN r24015.
2010-11-09 15:28:21 +00:00
Rolf vandeVaart
c23b26a66f Add a function to debug messages stuck in queues.
Change all tabs to spaces.

This commit was SVN r23974.
2010-11-01 14:23:34 +00:00
Ralph Castain
9ea2b196ce Convert the opal_event framework to use direct function calls instead of hiding functions behind function pointers. Eliminate the opal_object_t abstraction of libevent's event struct so it can be directly passed to the libevent functions.
Note: the ompi_check_libfca.m4 file had to be modified to avoid it stomping on global CPPFLAGS and the like. The file was also relocated to the ompi/config directory as it pertains solely to an ompi-layer component.

Forgive the mid-day configure change, but I know Shiqing is working the windows issues and don't want to cause him unnecessary redo work.

This commit was SVN r23966.
2010-10-28 15:22:46 +00:00
Rolf vandeVaart
4cb414e0cd Fix a place where I did not error out frags.
This commit was SVN r23961.
2010-10-27 17:21:08 +00:00
Jeff Squyres
2ddd485ef1 Fix SCTP's use of events.
This commit was SVN r23947.
2010-10-26 13:13:02 +00:00
Ralph Castain
86c7365e8e Clean up a few initialization issues - don't think these are impacting the shared memory situation as it didn't fix the problem.
Setup the event API to support multiple bases in preparation for splitting the OMPI and ORTE events. Holding here pending shared memory resolution.

This commit was SVN r23943.
2010-10-26 02:41:42 +00:00
Ralph Castain
fceabb2498 Update libevent to the 2.0 series, currently at 2.0.7rc. We will update to their final release when it becomes available. Currently known errors exist in unused portions of the libevent code. This revision passes the IBM test suite on a Linux machine and on a standalone Mac.
This is a fairly intrusive change, but outside of the moving of opal/event to opal/mca/event, the only changes involved (a) changing all calls to opal_event functions to reflect the new framework instead, and (b) ensuring that all opal_event_t objects are properly constructed since they are now true opal_objects.

Note: Shiqing has just returned from vacation and has not yet had a chance to complete the Windows integration. Thus, this commit almost certainly breaks Windows support on the trunk. However, I want this to have a chance to soak for as long as possible before I become less available a week from today (going to be at a class for 5 days, and thus will only be sparingly available) so we can find and fix any problems.

Biggest change is moving the libevent code from opal/event to a new opal/mca/event framework. This was done to make it much easier to update libevent in the future. New versions can be inserted as a new component and tested in parallel with the current version until validated, then we can remove the earlier version if we so choose. This is a statically built framework ala installdirs, so only one component will build at a time. There is no selection logic - the sole compiled component simply loads its function pointers into the opal_event struct.

I have gone thru the code base and converted all the libevent calls I could find. However, I cannot compile nor test every environment. It is therefore quite likely that errors remain in the system. Please keep an eye open for two things:

1. compile-time errors: these will be obvious as calls to the old functions (e.g., opal_evtimer_new) must be replaced by the new framework APIs (e.g., opal_event.evtimer_new)

2. run-time errors: these will likely show up as segfaults due to missing constructors on opal_event_t objects. It appears that it became a typical practice for people to "init" an opal_event_t by simply using memset to zero it out. This will no longer work - you must either OBJ_NEW or OBJ_CONSTRUCT an opal_event_t. I tried to catch these cases, but may have missed some. Believe me, you'll know when you hit it.

There is also the issue of the new libevent "no recursion" behavior. As I described on a recent email, we will have to discuss this and figure out what, if anything, we need to do.

This commit was SVN r23925.
2010-10-24 18:35:54 +00:00
Rolf vandeVaart
364fcd8975 Should not overwrite des_context. Leftover from debugging.
This commit was SVN r23912.
2010-10-19 12:40:30 +00:00
Rolf vandeVaart
e9a7fea42d Fix up some of the failover code in the openib BTL.
Need to use MCA_BTL_IB_FAILED state to signel failure,
not MCA_BTL_IB_CLOSED.

This commit was SVN r23883.
2010-10-11 17:38:27 +00:00
Rolf vandeVaart
a91bd44463 Do not hand a function into this macro as the
function will get called twice.

This commit was SVN r23824.
2010-10-01 18:59:15 +00:00
Jeff Squyres
73bcc4a36b Fix mistake that came in via the ompi-agen tree in r23764. The mistake wasn't part of the core autogen upgrade; it was an additional 'bonus' cleanup. Oops. The mistake will always create a set of directories under installdir, even if you do not --with-devel-headers. The set of directories will be empty, but still -- they should not be there at all. This commit fixes that -- the directories are not created at all if you do not --with-devel-headers
This commit was SVN r23801.

The following SVN revision numbers were found above:
  r23764 --> open-mpi/ompi@40a2bfa238
2010-09-24 22:53:28 +00:00
Steve Wise
9862132836 Add T4 device IDs to openib btl params ini file.
This commit was SVN r23791.
2010-09-22 18:16:53 +00:00
Ralph Castain
40a2bfa238 WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues.
This merges the branch containing the revamped build system based around converting autogen from a bash script to a Perl program. Jeff has provided emails explaining the features contained in the change.

Please note that configure requirements on components HAVE CHANGED. For example. a configure.params file is no longer required in each component directory. See Jeff's emails for an explanation.

This commit was SVN r23764.
2010-09-17 23:04:06 +00:00
George Bosilca
8e9d9e136d Update the GM bandwidth.
This commit was SVN r23734.
2010-09-08 21:50:56 +00:00
Rolf vandeVaart
c8d6672453 Set default udapl bandwidth to more realistic value.
This commit was SVN r23728.
2010-09-08 14:38:16 +00:00
Nadia Derbey
e265dc51e5 Added Bull vendor id for ConnectX card
This commit was SVN r23715.
2010-09-03 14:13:19 +00:00
Jeff Squyres
b9ac24eadd Based on
http://www.open-mpi.org/community/lists/devel/2010/09/8455.php, rever
this patch.  George, Brice, and Scott can decide what they want to do
here.  

This commit was SVN r23714.
2010-09-03 13:48:36 +00:00
Jeff Squyres
2b2b29a6d4 For some reason, the MX btl sets btl_bandwidth in megabits/s instead
of megabytes/s. So we get crazy btl_weights in case of heterogeneous
multirail. And --mca btl_mx_bandwidth <width> cannot work around the
problem (it probably doesn't help because it's overriden by the
runtime link width detection anyway?).

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>

This commit was SVN r23712.
2010-09-03 12:03:06 +00:00
Jeff Squyres
ce91a8572d Twice the code for half the price! :-)
Somehow, there's an entire 2nd (identical) copy of the sm btl
configure.m4 in here -- this commit removes the duplicate copy,
leaving only 1 copy of each relevant m4 macro.

Thanks to Ralph for spotting it!

This commit was SVN r23675.
2010-08-27 01:24:55 +00:00
Rainer Keller
7c85144ac6 - Hmm, these mca parameters indeeed are registered twice ,-]
Thanks, Jeff!

   This should be added to CMR:v1.5:#2527

This commit was SVN r23589.
2010-08-10 21:11:59 +00:00
Josh Hursey
e12ca48cd9 A number of C/R enhancements per RFC below:
http://www.open-mpi.org/community/lists/devel/2010/07/8240.php

Documentation:
  http://osl.iu.edu/research/ft/

Major Changes: 
-------------- 
 * Added C/R-enabled Debugging support. 
   Enabled with the --enable-crdebug flag. See the following website for more information: 
   http://osl.iu.edu/research/ft/crdebug/ 
 * Added Stable Storage (SStore) framework for checkpoint storage 
   * 'central' component does a direct to central storage save 
   * 'stage' component stages checkpoints to central storage while the application continues execution. 
     * 'stage' supports offline compression of checkpoints before moving (sstore_stage_compress) 
     * 'stage' supports local caching of checkpoints to improve automatic recovery (sstore_stage_caching) 
 * Added Compression (compress) framework to support 
 * Add two new ErrMgr recovery policies 
   * {{{crmig}}} C/R Process Migration 
   * {{{autor}}} C/R Automatic Recovery 
 * Added the {{{ompi-migrate}}} command line tool to support the {{{crmig}}} ErrMgr component 
 * Added CR MPI Ext functions (enable them with {{{--enable-mpi-ext=cr}}} configure option) 
   * {{{OMPI_CR_Checkpoint}}} (Fixes trac:2342) 
   * {{{OMPI_CR_Restart}}} 
   * {{{OMPI_CR_Migrate}}} (may need some more work for mapping rules) 
   * {{{OMPI_CR_INC_register_callback}}} (Fixes trac:2192) 
   * {{{OMPI_CR_Quiesce_start}}} 
   * {{{OMPI_CR_Quiesce_checkpoint}}} 
   * {{{OMPI_CR_Quiesce_end}}} 
   * {{{OMPI_CR_self_register_checkpoint_callback}}} 
   * {{{OMPI_CR_self_register_restart_callback}}} 
   * {{{OMPI_CR_self_register_continue_callback}}} 
 * The ErrMgr predicted_fault() interface has been changed to take an opal_list_t of ErrMgr defined types. This will allow us to better support a wider range of fault prediction services in the future. 
 * Add a progress meter to: 
   * FileM rsh (filem_rsh_process_meter) 
   * SnapC full (snapc_full_progress_meter) 
   * SStore stage (sstore_stage_progress_meter) 
 * Added 2 new command line options to ompi-restart 
   * --showme : Display the full command line that would have been exec'ed. 
   * --mpirun_opts : Command line options to pass directly to mpirun. (Fixes trac:2413) 
 * Deprecated some MCA params: 
   * crs_base_snapshot_dir deprecated, use sstore_stage_local_snapshot_dir 
   * snapc_base_global_snapshot_dir deprecated, use sstore_base_global_snapshot_dir 
   * snapc_base_global_shared deprecated, use sstore_stage_global_is_shared 
   * snapc_base_store_in_place deprecated, replaced with different components of SStore 
   * snapc_base_global_snapshot_ref deprecated, use sstore_base_global_snapshot_ref 
   * snapc_base_establish_global_snapshot_dir deprecated, never well supported 
   * snapc_full_skip_filem deprecated, use sstore_stage_skip_filem 

Minor Changes: 
-------------- 
 * Fixes trac:1924 : {{{ompi-restart}}} now recognizes path prefixed checkpoint handles and does the right thing. 
 * Fixes trac:2097 : {{{ompi-info}}} should now report all available CRS components 
 * Fixes trac:2161 : Manual checkpoint movement. A user can 'mv' a checkpoint directory from the original location to another and still restart from it. 
 * Fixes trac:2208 : Honor various TMPDIR varaibles instead of forcing {{{/tmp}}} 
 * Move {{{ompi_cr_continue_like_restart}}} to {{{orte_cr_continue_like_restart}}} to be more flexible in where this should be set. 
 * opal_crs_base_metadata_write* functions have been moved to SStore to support a wider range of metadata handling functionality. 
 * Cleanup the CRS framework and components to work with the SStore framework. 
 * Cleanup the SnapC framework and components to work with the SStore framework (cleans up these code paths considerably). 
 * Add 'quiesce' hook to CRCP for a future enhancement. 
 * We now require a BLCR version that supports {{{cr_request_file()}}} or {{{cr_request_checkpoint()}}} in order to make the code more maintainable. Note that {{{cr_request_file}}} has been deprecated since 0.7.0, so we prefer to use {{{cr_request_checkpoint()}}}. 
 * Add optional application level INC callbacks (registered through the CR MPI Ext interface). 
 * Increase the {{{opal_cr_thread_sleep_wait}}} parameter to 1000 microseconds to make the C/R thread less aggressive. 
 * {{{opal-restart}}} now looks for cache directories before falling back on stable storage when asked. 
 * {{{opal-restart}}} also support local decompression before restarting 
 * {{{orte-checkpoint}}} now uses the SStore framework to work with the metadata 
 * {{{orte-restart}}} now uses the SStore framework to work with the metadata 
 * Remove the {{{orte-restart}}} preload option. This was removed since the user only needs to select the 'stage' component in order to support this functionality. 
 * Since the '-am' parameter is saved in the metadata, {{{ompi-restart}}} no longer hard codes {{{-am ft-enable-cr}}}. 
 * Fix {{{hnp}}} ErrMgr so that if a previous component in the stack has 'fixed' the problem, then it should be skipped. 
 * Make sure to decrement the number of 'num_local_procs' in the orted when one goes away. 
 * odls now checks the SStore framework to see if it needs to load any checkpoint files before launching (to support 'stage'). This separates the SStore logic from the --preload-[binary|files] options. 
 * Add unique IDs to the named pipes established between the orted and the app in SnapC. This is to better support migration and automatic recovery activities. 
 * Improve the checks for 'already checkpointing' error path. 
 * A a recovery output timer, to show how long it takes to restart a job 
 * Do a better job of cleaning up the old session directory on restart. 
 * Add a local module to the autor and crmig ErrMgr components. These small modules prevent the 'orted' component from attempting a local recovery (Which does not work for MPI apps at the moment) 
 * Add a fix for bounding the checkpointable region between MPI_Init and MPI_Finalize. 

This commit was SVN r23587.

The following Trac tickets were found above:
  Ticket 1924 --> https://svn.open-mpi.org/trac/ompi/ticket/1924
  Ticket 2097 --> https://svn.open-mpi.org/trac/ompi/ticket/2097
  Ticket 2161 --> https://svn.open-mpi.org/trac/ompi/ticket/2161
  Ticket 2192 --> https://svn.open-mpi.org/trac/ompi/ticket/2192
  Ticket 2208 --> https://svn.open-mpi.org/trac/ompi/ticket/2208
  Ticket 2342 --> https://svn.open-mpi.org/trac/ompi/ticket/2342
  Ticket 2413 --> https://svn.open-mpi.org/trac/ompi/ticket/2413
2010-08-10 20:51:11 +00:00
Rainer Keller
2ee01042c9 - Spelling fixes and line breaks in the parameter descriptions.
Please cmr:v1.5

This commit was SVN r23578.
2010-08-09 16:10:31 +00:00
Ralph Castain
586f5b8bf5 Add missing includes per Greg Koenig
This commit was SVN r23546.
2010-08-03 17:30:59 +00:00
Jeff Squyres
3031b59cfe Change to use the new opal_fd_*() functions.
This commit was SVN r23451.
2010-07-20 19:54:17 +00:00
Jeff Squyres
e736281adf Add an extra pair of (), just for defensive programming.
This commit was SVN r23444.
2010-07-20 12:23:00 +00:00
Nadia Derbey
837fb29fab Wrong event_type value passed in to show_help when getting xrc async events
This commit was SVN r23442.
2010-07-20 06:37:17 +00:00
Christopher Yeoh
cfea0db3a2 removes spurious compilation warning
This commit was SVN r23441.
2010-07-20 06:32:36 +00:00
Donald Kerr
f79c89e0e9 help maintain order established, and defined, during mca_btl_openib_add_procs()
This commit was SVN r23425.
2010-07-16 13:13:37 +00:00
Shiqing Fan
30c9f9c097 A few more files need to be excluded from windows build source.
This commit was SVN r23413.
2010-07-14 11:25:30 +00:00
Rolf vandeVaart
b7a27ab36a Add support for openib BTL failover to be used with bfo PML.
By default, feature is configured out so no effect on 
normal operation.

This commit was SVN r23412.
2010-07-14 10:08:19 +00:00
Shiqing Fan
5b37e2922c Use semicolon as the separator for Windows, as colon is normally part of the windows path.
This commit was SVN r23411.
2010-07-14 09:12:10 +00:00
Shiqing Fan
b904d4826f Get rid of a warning of using void pointer in arithmetic.
This commit was SVN r23393.
2010-07-13 21:43:38 +00:00
Rolf vandeVaart
fb19872806 Two new flag definitions needed by the new PML.
This commit was SVN r23386.
2010-07-13 11:30:43 +00:00
Rolf vandeVaart
b4af9c0efc Fix casts so trunk compiles
This commit was SVN r23381.
2010-07-13 01:52:22 +00:00