1
1

555 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
e8c13ef286 mtl ofi: fix trivial comment whitespace
No code or logic changes.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-11-11 05:07:10 -08:00
Jeff Squyres
bed1930df8 mtl ofi: fix formatting of help message
No code or logic changes.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-11-11 05:07:05 -08:00
Matias Cabral
b76bb42ac1 mtl/ofi: Set data and control progress options default
values to FI_PROGRESS_UNSPEC so each provider will use its default.

Signed-off-by: Matias Cabral <matias.a.cabral@intel.com>
2017-11-08 08:24:33 -08:00
bosilca
63e8a8c608
Merge pull request #4431 from hjelmn/asm_cleanup
opal: rename opal_atomic_cmpset* to opal_atomic_bool_cmpset*
2017-11-02 18:45:56 -04:00
Nathan Hjelm
3ff34af355 opal: rename opal_atomic_cmpset* to opal_atomic_bool_cmpset*
This commit renames the atomic compare-and-swap functions to indicate
the return value. This is in preperation for adding support for a
compare-and-swap that returns the old value. At the same time the
return type has been changed to bool.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-31 12:47:23 -06:00
Aravind Gopalakrishnan
285fc42b4e Fix OFI MTL to recognize correct CQ empty scenario
Currently, the progress function is incorrectly interpreting any error
value other than a positive value or -FI_EAVAIL to mean CQ is empty.
CQ is empty only if fi_cq_read() call returned -EAGAIN error
code. Fix that here.

While at it, fix help text output for calls made to OFI API.

Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@intel.com>
2017-10-30 12:13:44 -07:00
Aravind Gopalakrishnan
bea4503f95 Move help text output regarding PSM2_CUDA envvar to component init phase
The messages should be printed only in the event of CUDA builds and in the
presence of supporting hardware and when PSM2 MTL has actually been selected
for use. To this end, move help text output to component init phase.

Also use opal_setenv/unsetenv() for safer setting, unsetting of the environment
variable and sanitize the help text message.

Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@intel.com>
2017-10-26 16:01:01 -07:00
Matias Cabral
b81bcd4b0d MTL PSM2: add a thread lock while peeking and completing the psm2
requests.
Reviewed-by: Gopalakrishnan, Aravind <aravind.gopalakrishnan@intel.com>
Signed-off-by: Matias Cabral <matias.a.cabral@intel.com>
2017-10-20 14:46:48 -07:00
Aravind Gopalakrishnan
f8a2b7f6bf Use opal_show_help to warn about PSM2_CUDA envvar setting
If Open MPI is configured with CUDA, then user also should be using a CUDA build of
PSM2 and therefore be setting PSM2_CUDA environment variable to 1 while using
CUDA buffers for transfers. If we detect this setting to be missing, force set
it. If user wants to use this build for regular (Host buffer) transfers, we
allow the option of setting PSM2_CUDA=0, but print a warning
message to user that it is not a recommended usage scenario.

Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@intel.com>
2017-09-29 17:04:10 -07:00
yohann
1f8cabc890 mtl/ofi: Fix provider selection.
This allows mtl_ofi_provider_include to work with layered providers as well.
e.g. --mca mtl_ofi_provider_include "providerX;ofi_rxm"

Signed-off-by: yohann <yohann.burette@intel.com>
2017-09-20 16:00:50 -07:00
Aravind Gopalakrishnan
2e83cf15ce Add support for GPU buffers for PSM2 MTL
PSM2 enables support for GPU buffers and CUDA managed memory and it can
directly recognize GPU buffers, handle copies between HFIs and GPUs.
Therefore, it is not required for OMPI to handle GPU buffers for pt2pt cases.
In this patch, we allow the PSM2 MTL to specify when
it does not require CUDA convertor support. This allows us to skip CUDA
convertor init phases and lets PSM2 handle the memory transfers.

This translates to improvements in latency.
The patch enables blocking collectives and workloads with GPU contiguous,
GPU non-contiguous memory.

Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@intel.com>
2017-09-01 16:59:03 -07:00
Joshua Hursey
e1d079544b mca: Dynamic components link against project lib
* Resolves #3705
 * Components should link against the project level library to better
   support `dlopen` with `RTLD_LOCAL`.
 * Extend the `mca_FRAMEWORK_COMPONENT_la_LIBADD` in the `Makefile.am`
   with the appropriate project level library:
```
MCA components in ompi/
       $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la
MCA components in orte/
       $(top_builddir)/orte/lib@ORTE_LIB_PREFIX@open-rte.la
MCA components in opal/
       $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la
MCA components in oshmem/
       $(top_builddir)/oshmem/liboshmem.la"
```

Note: The changes in this commit were automated by the script in
the commit that proceeds it with the `libadd_mca_comp_update.py`
script. Some components were not included in this change because
they are statically built only.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-08-24 11:56:16 -04:00
Howard Pritchard
701a1d0218 mtl/psm2: add pvar support for PSM2 MQ stats
Add pvars for PSM2 MQ stats to help in analyzing performance
of Omnipath.

Tested (modestly) using modified OSU pt2pt benchmarks.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-07-14 10:31:35 -06:00
Ryan Grant
0ce8590e7c Merge pull request #3837 from tkordenbrock/topic/master/get.retry.timeout
master: mtl-portals4: add timeout to rendezvous get fragments
2017-07-13 09:59:54 -06:00
Nathan Hjelm
6fb81f20e4 mtl/psm2: create mca variables to shadow PSM2 environment variables
This commit enables MCA support for the following PSM2 environment
variables: PSM2_DEVICES, PSM2_MEMORY, PSM2_MQ_SENDREQS_MAX,
PSM2_MQ_RECVREQS_MAX, PSM2_MQ_RNDV_HFI_THRESH,
PSM2_MQ_RNDV_SHM_THRESH, PSM2_RCVTHREAD, PSM2_SHAREDCONTEXTS,
PSM2_SHAREDCONTEXTS_MAX, and PSM2_TRACEMASK. These variable can be set
by MCA if they are not already set in the environment.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-07-13 09:48:46 -06:00
Todd Kordenbrock
5ecd905358 mtl/portals4: move opal_timer_base_get_usec() out of the fast path
Rearrange the receive frag timeout logic to avoid calling
opal_timer_base_get_usec() in read_msg().  Instead set it at the first
retry.

Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com>
2017-07-09 22:12:45 -05:00
Todd Kordenbrock
37766d770d mtl/portals4: if frag retry fails, then fail the entire receive
If the a frag cannot be retried because the ni_fail_type is other than
PTL_NI_DROPPED, then set the return type and jump to callback_error.
This sets MPI_ERROR and completes the receive.

Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com>
2017-07-09 22:12:31 -05:00
Piotr Lesnicki
99453e6b10 mtl/portals4: get retransmission REPLY code
Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com>
2017-07-09 22:12:25 -05:00
Piotr Lesnicki
06b15cebbf mtl/portals4: add timeout to get retransmit
Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com>
2017-07-09 22:12:08 -05:00
Todd Kordenbrock
27ee862964 mtl-portals4: in rendezvous, reissue PtlGet() if it fails
This commit fixes a race condition in the rendezvous protocol.  The
race occurs because the sender does not wait for the link event on the
send buffer.  Even though this has not been seen in the wild, it is
possible for the receiver to issue the PtlGet() before the ME is
linked which causes a NAK at the receiver.  This commit resolves this
race by reissuing the PtlGet() when a NAK occurs.

Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com>
2017-05-15 13:11:13 -05:00
Matias A Cabral
644641d06f PSM and PSM2 MTLs check on the max message size allowed by API.
OMPI send and receive mesages use size_t for the lenght while PSM and PSM2
psm(2)mq_send/receive use uint32_t. Type size_t is 64 bits in 64 bits arch.
Therefore, this patch adds a sanity check on the lenght of the message
and fails gracefully.

Signed-off-by: Matias Cabral <matias.a.cabral@intel.com>
2017-05-10 12:45:11 -07:00
Howard Pritchard
841192645b common/libfabric: move libfabric to ofi
This PR renames the common library for OFI libfabric from
libfabric to ofi.  There are a number of reasons this
is good to do:

1) its shorter and replaces 9 characters with three for
   function names for what may eventually be a fairly extensive interface
2) OFI is the term used for MTL and RML components that use
   the OFI libfabric interface
3) A planned OSC component will also use the OFI term.
4) Other HPC libraries that can use OFI libfabric tend to use
   the term "ofi" internally and also in their configure options
   relevant to OFI libfabric (i.e. MPICH/CH4, Intel MPI, Sandia SHMEM)

There seem to be comments in places in the Open MPI source
code that indicate that this common library will be going away.
Far from it as we will want to be able to share things like
AV objects between OMPI and possibly OSHMEM components that
use the OFI libfabric interface.

This PR also adds a synonym to the --with-libfabric(-libdir)
configury options: --with-ofi and with-ofi-libdir.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-04-20 13:07:16 -06:00
Yossi Itigin
33471c44ee pml_yalla/mtl_mxm/hcoll: open memory component to activate memory hooks.
Memory hooks are now set-up on demand. pml/yalla, mtl/mxm and
coll/hcoll need the memory hooks, so make sure those are installed.

Signed-off-by: Yossi Itigin <yosefe@mellanox.com>
2017-03-01 12:12:20 +02:00
Gilles Gouaillardet
1daa80d78f mtl/psm2: plug a memory leak in ompi_mtl_psm2_component_open()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-06 09:28:32 +09:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b7817d5891ff06a447ea190b0e77479.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
Gilles Gouaillardet
eae9d31784 pre_condition_transports: code cleanup
replace hard coded "OMPI_MCA_orte_precondition_transports" environment variable name
with macro'ed OPAL_MCA_PREFIX"orte_precondition_transports"
2016-09-19 13:31:47 +09:00
Todd Kordenbrock
a17dff281d Merge pull request #1900 from PDeveze/mtl-portals4-short_msg-split_msg
Mtl portals4 short msg split msg
2016-09-06 11:14:19 -05:00
Howard Pritchard
61d62b6821 mtl/ofi: fix a botched assignment of av_type
Well now the av_type is being assigned correctly

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-08-19 17:01:02 -05:00
Howard Pritchard
e46eee3fcb mtl/ofi: use mca param to set av type
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-08-10 16:10:17 -06:00
Howard Pritchard
5ff6b81eee Merge pull request #1871 from hppritcha/topic/ofi_mtl_params
mtl/ofi: add some more mca parameters
2016-07-28 18:21:23 -06:00
Howard Pritchard
22c8743557 mtl/ofi: add some more mca parameters
allow for toggling of both control/data progress models.
allow for using FI_AV_TABLE or FI_AV_MAP for av type.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-07-28 02:35:09 -06:00
Pascal Deveze
10763f5abc mtl/portals4: Take into account the limitation of portals4 (max_msg_size) and split messages if necessary 2016-07-26 08:44:07 +02:00
Pascal Deveze
724801b018 mtl-portals4: Introduce a "short_limit" for the short message size. "eager_limit" will only be used for
the limit of the eager part of the messages sent with the rndv protocol
2016-07-26 08:43:24 +02:00
Pascal Deveze
9e58b4842f mtl-portals4: Correct how the request_status._ucount is set 2016-07-26 08:42:48 +02:00
Pascal Deveze
3ca194f10a mtl-portals4: Store ptl_process_id (from PtlGetPhysId) and display it. 2016-07-26 08:42:08 +02:00
Pascal Deveze
bd3b1cf7be mtl-portals4: Control that flowctl_idx is egal to REQ_FLOWCTL_TABLE_ID
and use OPAL_ATOMIC_CMPSET_32 to test and set flowctl_active flag to true
2016-07-26 08:41:31 +02:00
Pascal Deveze
9cac32ba6a mtl/portals4: Modifications concerning the short message management 2016-07-19 11:21:50 +02:00
Pascal Deveze
49e9936914 mtl/portals4: Some little patches 2016-07-19 11:18:55 +02:00
Pascal Deveze
b87ed1ad4a mtl/portals4: Display actual limits given by the portals4 PtlNIInit function 2016-07-12 15:07:31 +02:00
Pascal Deveze
f666b0d9aa mtl/portals4: Allocate a PT with the PTL_PT_FLOWCTRL flag only if OMPI_MTL_PORTALS4_FLOW_CONTROL is set 2016-07-12 15:07:31 +02:00
Pascal Deveze
bed572cd6c mtl/portals4: Unlink the ME first, then free the CT and at the end free the PT 2016-07-12 15:07:30 +02:00
Ralph Castain
ee56d9dc1a Shorten the session directory name as some OS's are now providing unusually long temp directory names, causing us to overflow the sockaddr field 2016-07-05 14:59:50 -07:00
Todd Kordenbrock
9671d6af47 Merge pull request #1689 from francois-wellenreiter/remove_trig_rdv_portals4
MTL portals4 : remove the triggered rendez-vous protocol
2016-06-06 21:55:01 -05:00
Matias A Cabral
29ab28f4f6 Adding owner.txt file for PSM2 MTL. 2016-06-02 16:26:16 -07:00
Francois WELLENREITER
b2b0fc63e2 MTL portals4 : remove the triggered rendez-vous protocol 2016-05-23 15:50:00 +02:00
yohann
2f0cde791a mtl/ofi: Change default provider selection behavior.
As more providers get added to libfabric, the default exclude list would need
to be updated.
Instead, we choose to include only the providers known to work by default.

New default:
  - include: psm,psm2,gni
  - exclude: none
2016-05-19 10:59:25 -07:00
Matias A Cabral
d28ee62a96 Update in PSM and PSM2 MTLs to detect entries created by drivers for
Intel TrueScale and Intel OmniPath, and detect a link in ACTIVE state.
This fix addresses the scenario reported in the below OMPI users email,
including formerly named Qlogic IB, now Intel True scale. Given the
nature of the PSM/PSM2 mtls this fix applies to OmniPath:
https://www.open-mpi.org/community/lists/users/2016/04/29018.php
2016-05-09 12:08:44 -07:00
Nathan Hjelm
ae0ffbb67f Merge pull request #1397 from hjelmn/enable_thread_multiple
ompi: always enable MPI_THREAD_MULTIPLE support
2016-04-23 08:40:22 -06:00
Francois WELLENREITER
2bc432d95f MTL portals4 : fix around triggered rndv operations 2016-03-15 15:31:04 +01:00