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

27994 Коммитов

Автор SHA1 Сообщение Дата
Gilles Gouaillardet
5f1a967351 ompi/file: rename ompi_file_t's f_mutex into f_lock
in order to use a consistent name between ompi_file_t,
ompi_win_t and ompi_communicator_t

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-12-01 16:06:22 +09:00
Gilles Gouaillardet
a4755b694b odls/pspawn: record the pid of the spawn'ed process
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-12-01 15:00:50 +09:00
Ralph Castain
4225b89c47
Merge pull request #4556 from rhc54/topic/pspawn
Add a new posix_spawn component to the ODLS framework.
2017-11-30 20:23:23 -08:00
bosilca
5cb72aa568
Merge pull request #4552 from hjelmn/asm_cleanup2
Add atomic fetch-and-op and compare-exchange functions
2017-11-30 22:29:38 -05:00
Ralph Castain
b5bf0a7f1d Add a new posix_spawn component to the ODLS framework.
Only selectable when specifically requested via "-mca odls pspawn"

Note that there are several concerns:
  * we aren't getting SIGCHLD calls when the procs terminate
  * we aren't seeing the IO pipes close on termination, though
    we are getting output forwarded to mpirun
  * I haven't found a way to bind the child process prior to exec.
    If we want to use this method, we probably need someone to
    implement a cgroup component for the orte/rtc framework

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-30 18:01:31 -08:00
Nathan Hjelm
7893248c5a opal/asm: add fetch-and-op atomics
This commit adds support for fetch-and-op atomics. This is needed
because and and or are irreversible operations so there needs to be a
way to get the old value atomically. These are also the only semantics
supported by C11 (there is not atomic_op_fetch, just
atomic_fetch_op). The old op-and-fetch atomics have been defined in
terms of fetch-and-op.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-30 10:41:23 -07:00
Nathan Hjelm
1282e98a01 opal/asm: rename existing arithmetic atomic functions
This commit renames the arithmetic atomic operations in opal to
indicate that they return the new value not the old value. This naming
differentiates these routines from new functions that return the old
value.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-30 10:41:22 -07:00
Nathan Hjelm
9d0b3fe9f4 opal/asm: remove opal_atomic_bool_cmpset functions
This commit eliminates the old opal_atomic_bool_cmpset functions. They
have been replaced by the opal_atomic_compare_exchange_strong
functions.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-30 10:41:22 -07:00
Ralph Castain
0fcc996c41
Merge pull request #4532 from rhc54/topic/odls
Try adding local spawn threads by default to parallelize the fork/exec process.
2017-11-30 06:38:32 -08:00
Gilles Gouaillardet
b310add995
Merge pull request #4550 from ggouaillardet/topic/communicator_c_lock
fix communicator's c_lock usage
2017-11-30 15:58:20 +09:00
Gilles Gouaillardet
f1778d2778 communicator: remove the USE_MUTEX_FOR_COMMS macro
It should have always been #define'd in order to correctly handle the
multi-threaded case.

Also fix indentation in ompi/mpi/c/comm_get_errhandler.c

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-30 14:29:11 +09:00
Gilles Gouaillardet
7c3e675479 fix communicator's c_lock usage
- initialize c_lock in the ompi_communicator_t constructor
 - USE_OPAL_THREAD_[UN]LOCK(c_lock)
 - #ifdef USE_MUTEX_FOR_COMMS protect c_lock access

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-30 14:27:59 +09:00
Ralph Castain
335fc96f42 Remove debug
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-29 21:21:35 -08:00
Gilles Gouaillardet
8e17127258 plm/alps: fix orte_wait_cb() usage
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-30 13:49:22 +09:00
Ralph Castain
8f496b01b7 Try automatically adding local spawn threads to parallelize the fork/exec process to speed up the launch on large SMPs. Harvest the threads after initial spawn to minimize any impact on running jobs.
Change the determination of #spawn threads to be done on basis of #local procs in first job being spawned. Someone can look at an optimization that handles subsequent dynamic spawns that might be larger in size.

Leave the threads running, but blocked, for the life of the daemon, and use them to harvest the local procs as they terminate. This helps short-lived jobs in particular.

Add MCA params to set:
  * max number of spawn threads (default: 4)
  * set a specific number of spawn threads (default: -1, indicating no set number)
  * cutoff - minimum number of local procs before using spawn threads (default: 32)

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-29 19:54:00 -08:00
Nathan Hjelm
11bb8b09a0 opal/class: use new compare-and-swap functions
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-29 12:56:32 -07:00
Nathan Hjelm
84f63d0aca opal/asm: add opal_atomic_compare_exchange_strong functions
This commit adds a new set of compare-and-exchange functions. These
functions have a signature similar to the functions found in C11. The
old cmpset functions are now deprecated and defined in terms of the
new compare-and-exchange functions. All asm backends have been
updated.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-29 12:45:44 -07:00
Nathan Hjelm
45db3637af osc/rdma: bug fixes
This commit fixes the following bugs:

 - Allow a btl to be used for communication if it can communicate with
   all non-self peers and it supports global atomic visibility. In
   this case CPU atomics can be used for self and the btl for any
   other peer.

 - It was possible to get into a state where different threads of an
   MPI process could issue conflicting accumulate operations to a
   remote peer. To eliminate this race we now update the peer flags
   atomically.

 - Queue up and re-issue put operations that failed during a BTL
   callback. This can occur during an accumulate operation. This was
   an unhandled error case.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-29 12:43:58 -07:00
Nathan Hjelm
67e26b6e5a
Merge pull request #4482 from matcabral/osc_rdma_skip_mtls
osc/rdma: mca parameter to list MTLs that lower osc rdma priority
2017-11-29 09:34:33 -07:00
Nathan Hjelm
647b40f3f2
Merge pull request #4442 from bosilca/topic/ob1_pvar
Topic/ob1 pvar
2017-11-29 09:31:07 -07:00
Ralph Castain
bb100540ef
Merge pull request #4549 from rhc54/topic/dyn
Fix the hang in connect/accept operations
2017-11-29 06:39:29 -08:00
Josh Hursey
38aefd2ec4
Merge pull request #4439 from mattaezell/lsf_csm
Disable the LSF plm if CSM is detected
2017-11-29 07:43:16 -06:00
Ralph Castain
5e109fba6a Take the smallest change approach to fixing the hang on disconnect of connect/accept operations by replacing the call to pmix.disconnect with a simple pmix.fence as this is all OMPI currently requires
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-29 03:30:40 -08:00
Ralph Castain
14e24a3672
Merge pull request #4548 from rhc54/topic/pmixrte
Add a new OMPI rte component to support direct-launch using PMIx.
2017-11-28 16:42:28 -08:00
Ralph Castain
7ad6886a30 Add a new OMPI rte component to support direct-launch using PMIx.
Cleanup several places where abstraction violations crept into OMPI layer (direct reference of ORTE). Add some missing includes that were exposed by this change.

Note that this compiles, but I haven't tested it for execution yet. Handing it over to Noah Evans for completion

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-28 12:05:01 -08:00
Josh Hursey
7bbd24c868
Merge pull request #4517 from jjhursey/fix/ppc-asm-eieio
ppc/asm: Fix opal_atomic_wmb definition
2017-11-28 07:43:58 -06:00
Gilles Gouaillardet
3b4b3bb6f9 pmix/ext3x: add a missing cnctcbfunc field to ext3x_opalcaddy_t
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-28 16:11:08 +09:00
bosilca
c4c5df4d1c
Merge pull request #4476 from hjelmn/errhandler_fixes
ompi/errhandler: make set/get actually thread safe
2017-11-27 19:43:42 -05:00
Nathan Hjelm
6b68d1cfc8 ompi/errhandler: make set/get actually thread safe
The current versions of these functions have a fatal flaw. If a
errhandler set and free call is made by another thread while the
thread calling get is between the cmpset and retain then we will
retain an invalid object. Fixing this by just using locking. This is
not a critical path so this should be ok.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-11-27 15:14:17 -07:00
Jeff Squyres
d3a23f9518
Merge pull request #4537 from rainwoodman/patch-1
Mention --oversubscribe when application fails due to insufficient slots.
2017-11-27 09:57:54 -06:00
Yu Feng
6aaf62584b Mention --oversubscribe
The current error message when the number of slots is insufficient
(e.g. running mpirun -n 4 on a dual core machine) does not mention the
use of `--oversubscribe`.

In earlier version of Open MPI, the over-subscription was automatic
(albeit buggy?); but the important point was no error message was
printed and the application runs.  Mentioning the oversubscibe flag in
the message will ease up the transition to the current behaviour where
explicit request is required.

Also make a few other minor tweaks / cleanups to the
orte-rmaps-seq:alloc-error help message.

Signed-off-by: Yu Feng <rainwoodman@gmail.com>
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-11-27 10:14:13 -05:00
Ralph Castain
394508757a
Merge pull request #4531 from rhc54/topic/fds
Save one more file descriptor per process
2017-11-26 19:36:27 -08:00
Ralph Castain
1de0421e48 Provide a more robust way of checking for proct completion
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-26 10:39:53 -08:00
Ralph Castain
a25a7bcba7 Handle the case where stdout and stderr get merged into a file
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-26 08:18:34 -08:00
Ralph Castain
e3c308dfc8 Update the odls/alps component
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-25 19:51:07 -08:00
Ralph Castain
3906aaf41a Silence warnings
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-25 11:50:18 -08:00
Ralph Castain
30f23ac67a Save one more file descriptor per process by not opening one for stddiag
if PMIx (version > 1.x) is active since all diagnostic messages will instead flow thru
the PMIx connection. Unfortunately, PMIx v1 does not support this
feature, but we can remove the stddiag support once PMIx v1 slides out
of the support window

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-25 11:48:53 -08:00
Gilles Gouaillardet
e88767866e iof: optimize handling of stderr when iof_base_redirect_app_stderr_to_stdout is set
avoid creating a pipe for a task stderr when we know it will be redirected to stdout

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-24 13:20:03 +09:00
Gilles Gouaillardet
84e96522f2 iof: optimize handling of stdin
since some tasks migth end up having /dev/null as their stdin,
simply avoid pipe creation and destruction for these tasks.

From a pragmatic and MPI point of view, and unless explicitly required
otherwise, all MPI tasks but (the first) one end up with /dev/null
as their stdin.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-22 13:18:32 +09:00
Gilles Gouaillardet
47bf0d6f9d iof/base: do not assume fileno(stdin) is zero
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-11-22 11:45:13 +09:00
Edgar Gabriel
1a4df7a643
Merge pull request #4518 from edgargabriel/topic/disable-amode-overwrite
io/ompio: add a new option to disable amode overwriting
2017-11-21 09:16:35 -06:00
Joshua Hursey
4f0d43686e ppc/asm: Fix opal_atomic_wmb definition
* Fix typo in the `opal_atomic_wmb` declaration.
 * Fix lingering `eieio` reference in the XL assembly to be `lwsync`

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-11-20 09:51:12 -06:00
Edgar Gabriel
75ab006ec0 io/ompio: add a new option to disable amode overwriting
ompio has historically changed the WRONLY flag provided by the applicaiton
to RDWR to allow for the data sieving optimization within the two-phase I/O
fcoll component. This change did not have a performance impact
on regular UNIX file systems, but seems to hurt performance on NFS (and maybe Lustre?)

So provide an option that allows to keep the WRONLY option, and raise an error
if tha fcoll/two-phase would actually like to use the data sieving.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-11-17 13:13:38 -06:00
Ralph Castain
096edf9ec4
Merge pull request #4506 from wojciechwasko/wwasko_kindex_int_master
Make interface's kernel index an int instead of int16_t
2017-11-17 09:33:17 -08:00
Wojtek Wasko
276de13a1e Make interface's kernel index an int instead of int16_t
Sometimes, the ethernet interfaces can get quite high kernel indices. struct
ifreq (see netdevice(7)) defines ifr_ifindex to be int's. The OOB component
used int16_t internally for matching (in case of -mca oob_tcp_if_[in|ex]clude)
which meant that any interface index > 32767 would never be matched because the
integer would be truncated to int16_t upon return from the function. OOB would
then refuse to work because it didn't find any usable interfaces and MPI job
would abort.

Signed-off-by: Wojtek Wasko <wwasko@nvidia.com>
2017-11-15 04:32:26 -05:00
Jeff Squyres
97d0469719
Merge pull request #4500 from jsquyres/pr/pmix-fix
pmix: pack pointer to object (vs. pointer to pointer)
2017-11-13 14:19:50 -07:00
Jeff Squyres
c19822dad4 pmix: pack pointer to object (vs. pointer to pointer)
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-11-13 09:50:44 -08:00
Matias Cabral
d1869a725a
Merge pull request #4467 from matcabral/master
mtl/ofi: Set data and control progress options default values to FI_PROGRESS_UNSPEC
2017-11-13 07:35:39 -08:00
Ralph Castain
6eb3c124e1
Merge pull request #4498 from rhc54/topic/pmixup
Some minor cleanups of the DVM
2017-11-12 19:01:15 -08:00
Ralph Castain
4381b2c60f Add ability to multiply number of nodes when running scaling tests
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-12 16:38:37 -08:00