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

3072 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
c621d1e622 libfabric: don't LIBADD the common library in the static case
Adding the libfabric common library in the --disable-dlopen case will
result in duplicate symbols.
2014-12-18 11:04:08 -08:00
Jeff Squyres
140bb3d421 hwloc configure: fix typo -- add missing $
Arrgh!  Missed a "$" in the last commit, making the test always
false.
2014-12-18 10:25:43 -08:00
Jeff Squyres
be6d46490f hwloc: only add CPPFLAGS if hwloc is actually being built
As pointed out by @ggouaillardet, we were adding some unnecessary -I
flags to CPPFLAFGS when --without-hwloc was being used.  This commit
slightly updates the hwloc191 component configury to only add such
things when the component is, in fact, going to be
compiled/installed.
2014-12-18 08:56:49 -08:00
Jeff Squyres
c205c70f39 usnic libfabric: remove useless "config.h" includes
This change was also committed upstream in libfabric.
2014-12-18 08:47:59 -08:00
Jeff Squyres
269d7f9713 openib: don't use opal_using_threads() in component_init
Use the flag that was passed in, instead.
2014-12-17 15:08:43 -08:00
Jeff Squyres
c1b43b6753 libfabric: the LIBADD should be unconditional
The LIBADD for the common libfabric library does not belong down in
the providers; it needs to be set when the libfabric core itself
decides to build.
2014-12-17 14:02:08 -08:00
Jeff Squyres
f1a5d3a90d configury: propagate a libtool shared lib version for libfabric 2014-12-17 13:36:01 -08:00
Jeff Squyres
d6f059f538 configury: add some descriptive output messages in configure
Ensure that the ofi MTL and the usnic BTL have good descriptive output
messages in configure.
2014-12-17 13:36:01 -08:00
Jeff Squyres
6edc19d78d libfabric: ensure that shell variables are initialized
Ensure that the <provider>_happy shell variables are initialized to
0.  Without this, the --without-libfabric case would leave them
initialized, resulting in "test: -eq operator expecting a value" kinds
of errors.
2014-12-17 13:36:01 -08:00
Rolf vandeVaart
f55de452ab Change the way we register the sm memory pool with CUDA. Rather than just registering local free lists, register the entire pool as the local process does not know which memory the remote processes are using for free lists. Fixes performance problem we were seeing with copying out of memory (since host piece was not pinned). 2014-12-17 14:21:34 -05:00
George Bosilca
830df07202 Fix the indentation. 2014-12-16 16:07:42 -05:00
George Bosilca
146ab96e29 These variables are now unnecessary. 2014-12-16 16:05:00 -05:00
Aurélien Bouteiller
ee3b090316 The fallback case when yama is not installed was not correct in CMA vader 2014-12-16 14:39:14 -05:00
Aurélien Bouteiller
0bf860ef02 indentation 2014-12-16 14:22:26 -05:00
Jeff Squyres
95da4a5a0e usnic: no longer use opal_using_threads()
Instead, use the flag that is passed in.
2014-12-16 08:49:01 -08:00
Artem Polyakov
01601f3284 Merge pull request #305 from artpol84/timing
Timing framework improvement
2014-12-16 15:13:48 +06:00
George Bosilca
357daa834e Stay on the safe side: Only one thread is allowed
to handle an event_base.
2014-12-15 23:19:51 -05:00
George Bosilca
2fec570fe7 There is no need to keep track of these events. They are scheduled
as triggers in libevent, so one bookkepping should be enough.
2014-12-15 22:35:29 -05:00
George Bosilca
46baab350c The event is automatically deleted by default. 2014-12-15 21:59:20 -05:00
George Bosilca
b01abfa0d7 Don't over-do it! 2014-12-15 21:33:32 -05:00
George Bosilca
f87a4b691b Solve another handshake problem, where one threads was calling del_event
while cleaning up after receiving a zero byte on the connect socket
(localyy started connection), while another was trying to accept a
new connection from the same peer. Create a zero-timed event and
delocalize the accept into a timer_event.
Add support for registering an error callback, that can be used when a
connection is discovered as failed during the initialization process.
2014-12-15 20:27:32 -05:00
George Bosilca
e20413c885 Rearrange the code to remove a compiler complaint about
the missing return from a non-void function.
2014-12-15 15:42:57 -05:00
Ralph Castain
573a574a3c Remove an unused dstore type that was redundant with another one. Define a corresponding PMIX_NODE_ID type (contains the vpid of the daemon hosting the proc) and ensure that the PMIx server includes that info in its process map 2014-12-15 12:11:13 -08:00
Mike Dubman
2fbe87defe Merge pull request #314 from miked-mellanox/topic/fix_opal_path_nfs
add support for autofs and make check pass. jenkins: check,src_rpm
2014-12-15 20:52:52 +02:00
Ralph Castain
9658256a98 Restore the passing of the complete job map to the local proc on first get_attr so the info can be used by the MPI layer without continual calls back to the server. We'll find a more memory efficient method later. 2014-12-13 18:44:09 -08:00
Mike Dubman
42f3fa0d1e OPAL: add support for autofs magic type 2014-12-13 20:27:47 +02:00
Jeff Squyres
9e6b157cb6 opal: minor update to guess_strlen
This is a minor update to
open-mpi/ompi@c52601f0c5.

If we have vsnprintf(), we might as well not have the rest of the
guess_strlen() routine.  Also document the nifty trick/behavior of
vsnprintf() that enables this shortcut (it was new to me!).
2014-12-13 08:09:34 -05:00
George Bosilca
2edbe16c47 Add the necessary infrastructure to allow the dumping of all TCP
informations related to an endpoint (status and all pending fragments).
Do some minor space cleanup.
2014-12-13 01:59:55 -05:00
George Bosilca
5b8616d890 Fix the race condition in endpoint connection initialization. The race
was quite subtle, and only happened on the process with the smallest
guid (as this process will tear down the connection created locally and
replace it with the result of accept). If multiple threads are active in
the system, the deadlock occurs during the recv event deletion as one
thread will hold the recv event lock of the endpoint and try to access
the TCP event base lock, while the other thread will hold the TCP event
base lock while trying to access the recv event lock (in case data is
available on the socket).

The proposed solution let the event callback fail to process the data,
preventing the deadlock and allowing the other thread to always complete
it's job. As the event is not execute the same triggered will trigger
again at the next opportunity, so this solution introduce a minimal
delay in the connection establishement.
2014-12-13 01:45:00 -05:00
Ralph Castain
c52601f0c5 It looks like the guess_len function in our local printf.c has some questionable code in it. Now that we are checking in configure for vsnprintf, take advantage of that check to use the far simpler method if it is available. Given that we no longer support such ancient systems where this might not be available, one suspects the other questionable code may no longer be required - but set that aside for another day. 2014-12-12 17:47:17 -08:00
Ralph Castain
bffb2b7a4b Correct some issues with variables used before being set 2014-12-12 17:23:32 -08:00
Ralph Castain
0630680f36 Two cleanups required for transfer to 1.8.4:
* Use %d format for the topo signature as some systems apparently have problems with %u
* Use correct variable in show_help message
2014-12-12 17:23:32 -08:00
Howard Pritchard
6cf258638a mpool/udreg: minor comment improvement 2014-12-12 14:05:18 -07:00
Nathan Hjelm
38d66272c5 btl/vader: fix compile on SGI UV 2014-12-12 09:09:01 -07:00
Jeff Squyres
e4b3c6f1c4 libfabric psm: fix (void*) dereference
Committed upstream to libfabric as well.
2014-12-11 20:12:13 -08:00
Jeff Squyres
0f28233b35 libfabric: don't use __thread
There's no real reason that this routine should use thread local
storage.  Plus, __thread appears to be a GCC extension.
2014-12-11 14:10:48 -08:00
Rolf vandeVaart
9ee8e1dcf4 With PGI compile we need stdarg.h for va_list define 2014-12-11 16:14:57 -05:00
Jeff Squyres
4551cab6f1 help messages: fix obvious typos 2014-12-11 12:23:33 -08:00
Nathan Hjelm
7e5af9cecf opal_lifo: fix potential race condition when using 128-bit atomics
On x86_64 reading a 128-bit value requires multiple instructions.
Under some conditions if the counted pointer counter is read before
the item pointer the fifo can be left in an inconsistent state. This
commit forces the read of the counter to always be read first.

The fifo does not appear to suffer from the same race.
2014-12-10 12:51:44 -07:00
rolfv
f471b09ae9 Add support for CUDA Unified memory. Basically, add a new flag and disable some
optimizations when that flag is detected.  Lightly reviewed by bosilca.
2014-12-10 05:46:00 -08:00
Artem Polyakov
8ffad75a0a Introduce timing interval measurement facility in timing framework 2014-12-10 16:47:49 +06:00
Nathan Hjelm
52ed5a9bf8 opal_lifo: fix one more potential issue with the new 128-bit lifo atomics
It is possible the compiler can reorder the read of the head item and
the head itself. This could lead to a situation where the item
returned was not really the head item.
2014-12-09 21:48:14 -07:00
Nathan Hjelm
a40fe8311f opal_lifo: add missing memory barriers in 128-bit atomic functions 2014-12-09 19:50:08 -07:00
Jeff Squyres
e6c8bfc201 libfabric: Gah -- also remove the "pragma pop" line
Thanks to Nathan for pointing out that I missed snipping one line in
2f9c69f016 (I removed the trailing
comment, but not the trailing pragma -- oops!).
2014-12-09 14:03:39 -08:00
Jeff Squyres
2f9c69f016 libfabric: use correct C99 notation for var-length array
Nathan pointed out the correct C99 way to notate a variable-length
array in a struct.  This change has now been accepted upstream in
libfabric.
2014-12-09 13:33:15 -08:00
Nathan Hjelm
d0da29351f opal_progress: fix sched_yield check 2014-12-09 14:14:20 -07:00
Jeff Squyres
cd0a54d76f usnic: short term fix to enable builds on non-libfabric platforms
This isn't quite the Right fix yet, because it doesn't address usnic
for external libfabric builds.  I'll fix that separately / later.
2014-12-09 09:19:26 -08:00
Nathan Hjelm
b2b7ecc7c4 Merge pull request #300 from hjelmn/topic/atomic_lifo_fifo
Add opal_fifo_t class and rename opal_atomic_lifo_t to opal_lifo_t
2014-12-09 10:54:50 -06:00
Jeff Squyres
c40fd09d2a libfabric: fix providers to conditionally add libs/flags
Only allow the usnic and PSM providers to add CPPFLAGS and LIBADD
flags when they are going to be built.
2014-12-09 07:15:25 -08:00
Jeff Squyres
45d6f29a27 Merge pull request #310 from yburette/master
libfabric: add optional PSM provider.
2014-12-09 06:39:34 -08:00
Jeff Squyres
6e24a1eb85 usnic: update for libfabric API change
Use FI_ADDR_UNSPEC for posting a receive from an unspecified source.
2014-12-09 06:06:52 -08:00
Jeff Squyres
f5a07f651c libfabric: Open MPI addition to stem a flood of warnings
Add a pragma to not warn about zero-length arrays.  This needs to be
addressed upstream, but for now, do it here.
2014-12-09 06:04:37 -08:00
Jeff Squyres
f331f48796 libfabric: update embedded libfabric to 934a714
Update the embedded copy of libfabric to the github ofiwg/libfabric
repo hash 934a714ca85f1a30a1e384a7d5f714ee962dc253.
2014-12-09 06:03:51 -08:00
Jeff Squyres
09d03a154b libfabric: fix some typos in the usnic configury 2014-12-09 05:52:24 -08:00
Ralph Castain
18d9fdfd8d Restore full topology comparison to support inventory monitoring 2014-12-09 01:33:06 -08:00
Ralph Castain
9b2f8cd840 Add the processor architecture to the topology signature 2014-12-09 01:17:00 -08:00
Howard Pritchard
3a14c8eeff fix build for cray xc
Recent addition of libfabric embdded broke build on Cray XC/XE.
This commit fixes this problem.
2014-12-08 22:21:13 -08:00
Yohann Burette
f90a7b51d2 libfabric: add optional PSM provider. 2014-12-08 16:49:41 -08:00
Ralph Castain
bb529ebd8e Revise the way we handle hetero nodes as users are finding this (a) a significant surprise, and (b) confusing as to when it is required. So try to automate it a bit by creating a topology "signature" that mpirun can share on the cmd line with the remote daemons, thus allowing them to check to see if they match. This isn't comprehensive of course - for now, it only checks the number of each type of hwloc object on the node. This is good enough to pickup major differences (e.g., where we have different numbers of sockets or assigned core bindings).
Retain the hetero-nodes flag for those cases where the user *knows* that there are differences and our automated system isn't good enough to see it.

Will obviously require further refinement as we find out which variances it can detect, and which it cannot.
2014-12-08 15:38:14 -08:00
Yohann Burette
f33a9afd22 libfabric: fix typo in Makefile.am 2014-12-08 13:19:43 -08:00
Jeff Squyres
ac8e9d103c libfabric: need to make AM_CONDITIONALs always be run
Ensure that the usnic-specific AM_CONDITIONAL for the embedded
libfabric is always run.
2014-12-08 11:51:26 -08:00
Jeff Squyres
d64881f040 psm_am.h: add missing file from libfabric snapshot
This is just about to be fixed upstream, but "make dist" was not
including this file in the libfabric tarball.
2014-12-08 11:39:08 -08:00
Jeff Squyres
d02756cdbb libfabric: various configury updates
1. Ensure to override CFLAGS properly.  Move the setting of CFLAGS outside the AM_CONDITIONAL so that Automake doesn't get confused (because CFLAGS is already set inside an AM_CONDITIONAL -- moving it outside the conditional ensure that this local CFLAGS override trumps all other CFLAGS overrides).
2. Only build libfabric on Linux. Add a little more configury to ensure that we only try to build libfabric on Linux.
3. Remove a dead/unused file
4. Fix typo in condition check
5. Use "false", not "/bin/false"
2014-12-08 11:39:07 -08:00
Jeff Squyres
92818d1fa5 usnic: remove SVN-style $Id$ tokens (and #idents)
This commit is also upstream in libfabric.
2014-12-08 11:39:07 -08:00
Jeff Squyres
9547345b18 usnic: fix show_help message
Rename a few symbols to use libfabric-friendly names.  Fix a show_help
message when fi_av_insert times out.
2014-12-08 11:39:07 -08:00
Jeff Squyres
8e49cc754f usnic: update to latest libfabric API changes 2014-12-08 11:37:37 -08:00
Jeff Squyres
c4e8d67515 libfabric: sync to upstream libfabric github
Bring down the latest from the libfabric github, as of
9d051567c8eb7adc2af89516f94c7d0539152948.
2014-12-08 11:37:37 -08:00
Jeff Squyres
7a96b58882 common verbs: remove usnic-specific code
Now that the usnic BTL uses libfabric, we can remove the
usnic-specific code from opal/mca/common/verbs.
2014-12-08 11:37:37 -08:00
Jeff Squyres
984982790a usnic: convert from verbs to libfabric (yay!)
This commit represents the conversion of the usnic BTL from verbs to
libfabric.

For the moment, libfabric is embedded in Open MPI (currently in the
usnic BTL).  This is because the libfabric API is still changing, and
also has not yet been released.  Ultimately, this embedded copy of
libfabric will likely disappear and the usnic BTL will rely on an
external installation of libfabric.

New configure options:

* --with-libfabric: will cause configure to fail if libfabric support
    cannot be built
* --without-libfabric: will prevent libfabric support from being built
* --with-libfabric=DIR: use an external libfabric installation
* --with-libfabric-libdir=LIBDIR: when paired with --with-libfabric=DIR,
    use LIBDIR for the libfabric installation library dir

The --with-libnl3[-libdir] arguments are now gone.
2014-12-08 11:37:37 -08:00
Nathan Hjelm
113b6bbdca opal_stdint.h: fix GCC diagnostic pragma 2014-12-05 07:19:14 -07:00
Gilles Gouaillardet
32bac600f7 opal: fix a warning caused by the introduction of opal_int128_t type 2014-12-05 12:14:31 +09:00
Nathan Hjelm
d1114ec17a Add opal_fifo_t class
This commit adds a new class: opal_fifo.h. The new class has atomic, non-atomic,
and opal_using_threads() conditoned routines. It should be used when first-in
first-out is required and should perform much better than using locks and an
opal_list_t. Like with opal_lifo_t there are two versions of the atomic
implementation: 128-bit compare-and-swap, and spin-locked. More implementations
can be added later (LL/SC comes to mind).

This commit also adds a unit test for the opal_fifo_t class. This test verifies
the fifo implementation when using multiple threads.
2014-12-04 15:30:02 -07:00
Nathan Hjelm
20c6eb5237 Rename opal_atomic_lifo_t to opal_lifo_t and improve interface
- Rename opal_atomic_lifo_t to opal_lifo_t to reflect both atomic and
   non-atomic usage. Added new routines (opal_lifo_*_st) for non-atomic
   usage as well as routines conditioned off opal_using_threads(). The
   atomic versions are always thread safe and the non-atomic are always
   not thread safe.

 - Add a new atomic lifo implementation that makes use of 128-bit
   compare-and-swap. The new implementation should scale better with
   larger numbers of threads.

 - Add threading unit test for opal_lifo_t.
2014-12-04 15:30:02 -07:00
Nathan Hjelm
a0083ceab4 Adjust cmpxchg16b clobber list 2014-12-04 15:29:28 -07:00
Nathan Hjelm
fe787512d8 Add support for __sync builtin compare and swap on 128-bit values 2014-12-04 09:23:51 -07:00
Nathan Hjelm
250f749602 Fix return type of opal_atomic_cmpset_128.
The return type will be opal_int128_t after the fetching atomics
changes but for now it is int.
2014-12-04 09:23:51 -07:00
Nathan Hjelm
b1632dfb3c Define opal_int128_t type if a 128-bit integer is available.
There currently is no standard support for 128-bit integer types. Any use
of the __int128 and int128_t types can lead to warnings from the compiler
when using -Wpedantic. Additionally, some compilers may support __int128
and other may support int128_t. This commit addresses both issues by
defining opal_int128_t if there is a supported 128-bit type. In the
case of GCC a pragma has been added to suppress warnings about __int128
not being a standard C type.
2014-12-04 09:23:51 -07:00
Nathan Hjelm
b2b58b31a2 Add support for 128-bit compare and swap on x86_64 when available.
A 128-bit compare-and-swap will enable a better atomic lifo implementation
that uses the pointer + counter method to avoid ABA issues. This commit
adds configury to check for the instruction (cmpxchg16b) and adds an
implementation that uses the __int128 type available in C99.
2014-12-04 08:53:28 -07:00
George Bosilca
04a4cbd77a Fix the clock_gettime monotonic timer. Thanks to Gilles for the
first sketch of the patch.
2014-12-04 00:20:56 -05:00
Jeff Squyres
983bd49f11 opal_timer_require_monotinic: change to bool / level 5 2014-12-03 17:09:43 -08:00
Jeff Squyres
8880b070b8 Merge pull request #295 from jsquyres/topic/bosilca-accurate-timers
Topic/bosilca accurate timers
2014-12-03 19:46:14 -05:00
Jeff Squyres
cf35e0c28c timers: fix 32 bit compile of timer 2014-12-03 16:43:33 -08:00
Howard Pritchard
c67afadcfc Merge pull request #289 from hppritcha/topic/remove_pmi
Topic/remove pmi
2014-12-03 16:58:35 -07:00
Nathan Hjelm
f989fe27b8 btl/vader: workaround to make jenkins happy 2014-12-03 15:51:58 -07:00
Todd Kordenbrock
c0c680bccb Portals4 BTL: Do not disqualify if a peer does not put Portals4 BTL modex info
If OPAL_MODEX_RECV() returns OPAL_ERR_NOT_FOUND, the peer didn't
send any Portals4 BTL info.  This is not a fatal error.  Instead of
disqualifying the Portals4 BTL just ignore that peer.

@jsquyres reported this in #194.
2014-12-03 14:22:10 -06:00
Howard Pritchard
c75dccede1 pmix/cray: remove finalize call from comp close
The finalize call in component close method is
no longer being matched by an equivalent init call,
so remove this call in the close method.
2014-12-03 09:44:18 -07:00
Ralph Castain
d9b23c1054 Increment the init_count in the Slurm pmix components so they correctly respond to calls to pmix.initialized 2014-12-02 20:20:29 -08:00
Ralph Castain
cb15cc06e1 Minor changes per Jeff's request on PR for 1.8.4 2014-12-02 19:54:10 -08:00
George Bosilca
e640673372 Refactor the datatype engine to reduce the critical path for the most
trivial (and thus used) datatype usages. Make the gaps_contiguous
pack and unpack functions similar.
2014-12-02 16:23:41 +09:00
George Bosilca
a35d2b9fb5 Update copyrights and mark ia32 timers as non-monotonic. 2014-12-01 14:03:54 -08:00
George Bosilca
5277fd5aa2 Various cleanups. 2014-12-01 14:03:47 -08:00
George Bosilca
00300f464d Add support for clock_gettime on Linux. Allow the user to
request a monotonic timer via MCA parameters.
2014-12-01 14:03:40 -08:00
Ralph Castain
960ef34988 Ensure the LSF ras adds the hosts to the allocation. Correctly handle the semi-colon vs comma situation in hwloc slot_lists 2014-11-30 14:37:37 -08:00
Ralph Castain
3f9d9ae8b6 Provide tighter LSF integration by correctly handling scenarios where the user has asked LSF to assign bindings. Fix a couple of typos in lex parser definitions. Tell hostfile parser to ignore binding designations in hostfiles. Add an attribute to indicate that cpusets were provided as physical cpu ids.
Once validated, a version of this will be backported to the v1.8.4 release.
2014-11-30 11:50:31 -08:00
George Bosilca
0b0c7ea28b Fix a subtle bug in the convertor where the lb of the datatype
can be added twice (for partially packed datatypes). Thanks to
the Fujitsu's MPI development team for the bug report and the
patch.
2014-11-29 19:46:02 -05:00
George Bosilca
dee243c58d ompi_proc_finalize has an interesting side effect. A proc is
inserted in the ompi_proc_list as soon as it is created and it
is removed only upon the call to the destructor. In ompi_proc_finalize
we loop over all procs in ompi_proc_finalize and release them once.
However, as a proc is not removed from this list right away, we
decrease the ref count for each proc until it reach zero and the
proc is finally removed. Thus, we cannot clean the BML/BTL after
the call the ompi_proc_finalize.
A quick fix is to delay the call to ompi_proc_finalize until all
other frameworks have been finalized, and then the behavior
depicted above will give the expected outcome.
2014-11-28 18:26:36 -05:00
George Bosilca
6772b07792 Only use RDTSCP if supported by the processor.
Conflicts:
	opal/include/opal/sys/amd64/timer.h
2014-11-27 11:29:47 -05:00
George Bosilca
82920b77d3 Use RDTSC by now. 2014-11-26 16:59:57 -05:00
bosilca
8cae899a42 Merge pull request #285 from bosilca/master
Reenable high accuracy timers
2014-11-25 17:09:34 -05:00
Gilles Gouaillardet
578fe41788 fix hangs introduced by previous commit a6744b8177 2014-11-25 17:50:44 +09:00
Gilles Gouaillardet
a6744b8177 fix misc memory leaks specific to the master 2014-11-25 13:52:10 +09:00
Gilles Gouaillardet
0e3b5bf000 add opal_hash_table_get_{first,next}_key_ptr 2014-11-25 11:32:43 +09:00
George Bosilca
fb44b03f67 The use of cpuid destroys the content of %eax and %edx,
so they must be saved before.
2014-11-24 17:40:53 -05:00
George Bosilca
261684858f Improved support for OSX timers. 2014-11-24 17:15:49 -05:00
George Bosilca
b7fa0e312f Cleanup the clobber list. 2014-11-24 16:35:51 -05:00
George Bosilca
1877dfd0df On Darwin make sure the field we expect to be 0 is indeed 0. 2014-11-24 14:16:36 -05:00
George Bosilca
b5574c1b4f Per Dave suggestion add a serializing instruction bundled
together with RDTSC. It is still not perfect, but hopefully
much better than before.
2014-11-24 14:15:25 -05:00
George Bosilca
766cfece36 Remove useless header. 2014-11-24 00:57:54 -05:00
George Bosilca
5f49a11b29 Minor cleanups. 2014-11-24 00:44:50 -05:00
George Bosilca
18a916fced Cleanup the AMD64 timer function. 2014-11-23 23:58:39 -05:00
George Bosilca
e27759956f Allow the use of the optimized used timers 2014-11-23 23:51:13 -05:00
George Bosilca
324e43909d Enable CUDA support on Mac OS X. 2014-11-20 13:51:10 -06:00
Gilles Gouaillardet
758f7ab768 Revert "btl/vader: use FRAG_ALLOC_USER when single_copy_mechanism is VADER_NONE"
as discussed with @hjelmn in open-mpi/ompi-release#86

This reverts commit d2d7f39a4b.
2014-11-20 16:04:55 +09:00
Nathan Hjelm
1b564f62bd Revert "Merge pull request #275 from hjelmn/btlmod"
This reverts commit ccaecf0fd6, reversing
changes made to 6a19bf85dd.
2014-11-19 23:22:43 -07:00
Nathan Hjelm
b1f9569b7d Revert "btl/openib: fix warnings"
This reverts commit 6e6c786b49.
2014-11-19 23:16:16 -07:00
Nathan Hjelm
6e6c786b49 btl/openib: fix warnings 2014-11-19 15:57:01 -07:00
Nathan Hjelm
ccaecf0fd6 Merge pull request #275 from hjelmn/btlmod
Updated the btl interface. Please update your components.
2014-11-19 15:01:40 -07:00
Ralph Castain
6a19bf85dd Add a little debug 2014-11-19 13:45:00 -08:00
Ralph Castain
27be73c6fb Allow callers to dstore.open to not request a specific list of desired components, but just take the highest priority one that is available 2014-11-19 13:31:31 -08:00
Nathan Hjelm
2b579610f2 btl/openib: fix compilation issues with XRC 2014-11-19 11:44:48 -07:00
Nathan Hjelm
2a382c2ec1 add btl comment 2014-11-19 11:33:04 -07:00
Nathan Hjelm
bf7daac388 btl/openib: add atomic operation support 2014-11-19 11:33:04 -07:00
Nathan Hjelm
45d1fac8af ugni thread safety fixes 2014-11-19 11:33:03 -07:00
Nathan Hjelm
5e7c77c576 btl/ugni: add support for atomic operations 2014-11-19 11:33:03 -07:00
Nathan Hjelm
90554d0f95 btl/openib: misc cleanup (tabs, etc) and put credit code into a common place (was duplicated in the send and sendi paths) 2014-11-19 11:33:03 -07:00
Nathan Hjelm
4122067236 btl/openib: fix message coalescing 2014-11-19 11:33:03 -07:00
Nathan Hjelm
38e9611930 btl/openib: fix recieve queue source detection 2014-11-19 11:33:03 -07:00
Nathan Hjelm
7c43b566d2 more openib updates 2014-11-19 11:33:03 -07:00
Nathan Hjelm
3ea10476a4 btl/sm fix compilation when not using CMA or KNEM 2014-11-19 11:33:03 -07:00
Nathan Hjelm
4ccb20b097 btl: fix warning about enum type and modify btl_sendi to allow the
value NULL for the descriptor

The send inline optimization uses the btl_sendi function to achieve
lower latency and higher message rates. The problem is the btl_sendi
function was allowed to return a descriptor to the caller. This is fine
for some paths but not ok for the send inline optimization. To fix
this the btl now must be able to handle descriptor = NULL.
2014-11-19 11:33:03 -07:00
Nathan Hjelm
2a70238f4d First crack at adding atomic operation support 2014-11-19 11:33:03 -07:00
Nathan Hjelm
249e5e009f Fix knem support in both sm and vader 2014-11-19 11:33:02 -07:00
Nathan Hjelm
e03956e099 Update the scif and openib btls for the new btl interface
Other changes:
 - Remove the registration argument from prepare_src since it no
   longer is meant for RDMA buffers.

 - Additional cleanup and bugfixes.
2014-11-19 11:33:02 -07:00
Nathan Hjelm
ec33374339 btl: remove des_remote/des_remote_count from the mca_btl_base_descriptor_t
structure

This structure member was originally used to specify the remote segment
for an RDMA operation. Since the new btl interface no longer uses
desriptors for RDMA this member no longer has a purpose. In addition
to removing these members the local segment information has been
renamed to des_segments/des_segment_count.
2014-11-19 11:33:02 -07:00
Nathan Hjelm
b75bb8aea7 Update pml for btl changes 2014-11-19 11:33:02 -07:00
Nathan Hjelm
2d381f800f Update the interface to provide a cleaner interface for RDMA operations.
The old BTL interface provided support for RDMA through the use of
the btl_prepare_src and btl_prepare_dst functions. These functions were
expected to prepare as much of the user buffer as possible for the RDMA
operation and return a descriptor. The descriptor contained segment
information on the prepared region. The btl user could then pass the
RDMA segment information to a remote peer. Once the peer received that
information it then packed it into a similar descriptor on the other
side that could then be passed into a single btl_put or btl_get
operation.

Changes:

 - Removed the btl_prepare_dst function. This reflects the fact that
   RDMA operations no longer depend on "prepared" descriptors.

 - Removed the btl_seg_size member. There is no need to btl's to
   subclass the mca_btl_base_segment_t class anymore.

...

Add more
2014-11-19 11:33:02 -07:00
Howard Pritchard
a632b632ca better way to tell if a process is in a Cray PAGG
Use a more reliable way to tell if a process is
1) in a Cray PAGG
2) is actually considered an application process on
   a compute node (not for example, a process in a PAGG
   on a mom node).
2014-11-12 12:56:15 -07:00
Howard Pritchard
72bb4a2eee make cray pmi compile again
Commit @80f07b65 resulted in changes that
caused cray pmi component to no longer compile.
This commit fixes that issue.
2014-11-12 12:33:30 -07:00
Nathan Hjelm
cfbb9cba16 btl/vader: don't assume the address in the put/get segment is unmodified when
using knem

It is valid to modify the remote segment that will be used with the
btl put/get operations as long as the resulting address range falls in
the originally prepared segment. Vader should have been calculating the
offset of the remote address in the registered region. This commit
fixes this issue.
2014-11-12 10:12:52 -07:00
rhc54
87fa1061d4 Merge pull request #267 from artpol84/s2_fix
Fix SLURM PMI2 component. set s2_nrank to the relative position of a pro...

Good catch!
2014-11-12 08:43:03 -08:00
Jeff Squyres
f39b294afe mca base: fix trivial typos in help message 2014-11-12 08:40:17 -08:00
Artem Polyakov
fce08a3db3 Fix SLURM PMI2 component. set s2_nrank to the relative position of a process inside the node
(not relative position of a node inside the allocation).
2014-11-12 16:26:35 +06:00
Gilles Gouaillardet
b088175705 btl/vader: fix a typo in mca_btl_vader_put_knem 2014-11-12 19:00:00 +09:00
Ralph Castain
780c93ee57 Per the PR and discussion on today's telecon, extend the process name definition as a two-field struct of uint32_t's down to the OPAL layer. This resolves issues created by prior commits that impacted both heterogeneous and SPARC support. This also simplifies the OMPI code base by removing the need for frequent memcpy's when transitioning between the OMPI/ORTE layers and OPAL.
We recognize that this means other users of OPAL will need to "wrap" the opal_process_name_t if they desire to abstract it in some fashion. This is regrettable, and we are looking at possible alternatives that might mitigate that requirement. Meantime, however, we have to put the needs of the OMPI community first, and are taking this step to restore hetero and SPARC support.
2014-11-11 17:00:42 -08:00
Gilles Gouaillardet
40942c62ce dstore: remove unused variables 2014-11-11 18:14:59 +09:00
Gilles Gouaillardet
80f07b65f1 pmix: correctly split pmi messages
Thanks to @elenash for all the reviews
2014-11-11 17:16:00 +09:00
Ralph Castain
d0704ef118 Restore handling of physical processors in rankfiles. Note that the prior implementation was likely incorrect as it falsely assumed that physical core indices were unique, which isn't always true. Stipulate that physical rankfiles can only include PU numbers, and bind the result to the core that contains that physical PU. Update the mpirun man page to cover the new use-case. 2014-11-10 14:00:40 -08:00
Ralph Castain
2a90788724 Support physical processor ids in rankfile 2014-11-10 14:00:40 -08:00
Howard Pritchard
6c8c9cb4a3 another fix for --enable-dlopen for ugni btl
missed a change to create libmca_common_ugni.la
file correctly.
2014-11-10 13:40:59 -07:00
Gilles Gouaillardet
d2d7f39a4b btl/vader: use FRAG_ALLOC_USER when single_copy_mechanism is VADER_NONE 2014-11-10 17:02:45 +09:00