ompi/mca/sbgp/basesmsocket
orte/mca/rmaps/lama
Remove stale configure.params files from the sbgp framework as the OMPI build system no longer looks at those files.
This commit was SVN r27377.
1. Multiple aggregator with non-contiguous datatype,
2. Memory corruption bugs.
Cleaned version, with proper initialization and memory management.
This commit was SVN r27370.
* Moved "check basics" sanity check from openib BTL to common/verbs
(which also allows us to have openib ''not'' include
<infiniband/driver.h>, which is a Very Good Thing)
* Add new ompi_common_verbs_qp_test() function, which tests to see
whether a device supports RC and/or UD QPs. The openib BTL now
uses this function to ensure that the device supports RC QPs.
* Rename ompi_common_verbs_find_ibv_ports() to be
ompi_common_verbs_find_ports() -- the "ibv" was redundant.
* Re-work ompi_common_verbs_find_ports() to use
ompi_common_verbs_qp_test() instead of testing for RC/UD QPs itself
* Add bunches of opal_output_verbose() to the find_ports() routine
(to help diagnosing connectivity problems -- imaging running with
--mca btl_base_verbose 10; you'll see all the find_ports() test
results)
* Make ompi_common_verbs_qp_test() warn if devices/ports are supplied
in the if_include/if_exclude strings that do not exists (quite
similar to what the openib BTL does today).
* Add ompi_common_verbs_mca_register() function, which registers
common verbs MCA params. It will also register MCA param synonyms
for thse MCA params to upper-level components (e.g.,
btl_<upper-level-component>_<the-mca-param>).
* common_verbs_warn_nonexistent_if: warn if
if_include/if_exclude-specified devices or ports do not exist.
This commit was SVN r27332.
- otfaux:
- fixed build error on Solaris and NetBSD (removed -lm from library dependencies)
Changes to VT:
- vtunify:
- disable OpenMP parallelization if PGI compiler version < 9 is used (threadprivate not supported)
This commit was SVN r27316.
* Minor man page tweaks
* Use existing ompi_mpi_thread_requested global
This commit was SVN r27308.
The following Trac tickets were found above:
Ticket 3309 --> https://svn.open-mpi.org/trac/ompi/ticket/3309
We ran into a case where the OMPI SVN trunk grew a new acceptable MCA
parameter value, but this new value was not accepted on the v1.6
branch (hwloc_base_mem_bind_failure_action -- on the trunk it accepts
the value "silent", but on the older v1.6 branch, it doesn't). If you
set "hwloc_base_mem_bind_failure_action=silent" in the default MCA
params file and then accidentally ran with the v1.6 branch, every OMPI
executable (including ompi_info) just failed because hwloc_base_open()
would say "hey, 'silent' is not a valid value for
hwloc_base_mem_bind_failure_action!". Kaboom.
The only problem is that it didn't give you any indication of where
this value was being set. Quite maddening, from a user perspective.
So we changed the ompi_info handles this case. If any framework open
function return OMPI_ERR_BAD_PARAM (either because its base MCA params
got a bad value or because one of its component register/open
functions return OMPI_ERR_BAD_PARAM), ompi_info will stop, print out
a warning that it received and error, and then dump out the parameters
that it has received so far in the framework that had a problem.
At a minimum, this will show the user the MCA param that had an error
(it's usually the last one), and ''where it was set from'' (so that
they can go fix it).
We updated ompi_info to check for O???_ERR_BAD_PARAM from each from
the framework opens. Also updated the doxygen docs in mca.h for this
O???_BAD_PARAM behavior. And we noticed that mca.h had MCA_SUCCESS
and MCA_ERR_??? codes. Why? I think we used them in exactly one
place in the code base (mca_base_components_open.c). So we deleted
those and just used the normal OPAL_* codes instead.
While we were doing this, we also cleaned up a little memory
management during ompi_info/orte-info/opal-info finalization.
Valgrind still reports a truckload of memory still in use at ompi_info
termination, but they mostly look to be components not freeing
memory/resources properly (and outside the scope of this fix).
This commit was SVN r27306.
The following Trac tickets were found above:
Ticket 3275 --> https://svn.open-mpi.org/trac/ompi/ticket/3275
- configure: do not build OpenMP support if CFLAGS contains a compiler flag for disabling handling OpenMP directives (e.g. -fno-openmp, -nomp, -hnoomp)
Fixes trac:3117
This commit was SVN r27282.
The following Trac tickets were found above:
Ticket 3117 --> https://svn.open-mpi.org/trac/ompi/ticket/3117
- general:
- incremented version number ro 1.11.3openmpi
- otfaux:
- fixed build error when using the Oracle compiler on Solaris. (removed usage of too recent rint() function)
Fixes trac:3257
This commit was SVN r27279.
The following Trac tickets were found above:
Ticket 3257 --> https://svn.open-mpi.org/trac/ompi/ticket/3257
patch that helped them test (r27184). Thanks Abosoft!
This commit was SVN r27277.
The following SVN revision numbers were found above:
r27184 --> open-mpi/ompi@a951a5ee99
ompi_comm_split(), and the entire set of periods from the old
communicator have already been copied to the new communicator. But up
here in mca_topo_base_cart_sub(), we need to subset the periods that
are actually stored on the new communicator according to remain_dims
(just like we did for the set of dimensions).
This commit renames a few variables to be a little less misleading,
and then adds a loop to copy over the periods information. I could
have added this into the first loop (that subset-copies the
dimensions), but this code is already confusing enough and this is not
a performance-critical section: so I made it a new loop.
Note that all the topo code will be revamped a bit when the new
MPI-2.2 topo stuff (currently off in a mercurial branch) finally makes
it back to the SVN trunk. But that new stuff will only get to v1.7 --
this commit will need to be CMR'ed to v1.6.x.
cmr:v1.7
cmr:v1.6.2
This commit was SVN r27248.
The following Trac tickets were found above:
Ticket 3294 --> https://svn.open-mpi.org/trac/ompi/ticket/3294
some new common OpenFabrics functionality to ompi/mca/common/verbs.
Also move everything that was in ompi/mca/common/ofautils under
ompi/mca/common/verbs.
* Move ofautils -> verbs
* Add new functionality in ompi/mca/common/verbs (see doxygen
* comments in ompi/mca/common/verbs/common_verbs.h for details):
* ompi_common_verbs_find_ibv_ports()
* ompi_common_verbs_port_bw()
* ompi_common_verbs_mtu()
* '''If you're writing verbs-based code, you should be using this
common functionality'''
* Adapt openib BTL to use some trivial common functionality in
common/verbs
* Don't use "#ifdef OMPI_HAVE_RDMAOE",use
"#if defined(HAVE_IBV_LINK_LAYER_ETHERNET)"
* Update the following to include/link against common/verbs
* bcol/iboffload
* sbgp/ibnet
* btl/openib
This commit was SVN r27212.
Absoft has determined exactly what the problem is (private members in
derived data typed when compiled with -g), but does not yet have a
timeline for fixing it.
Add a temporary override for Absoft until they are able to fix their
compiler. This switch will at least allow us to MTT test the rest of
the mpi_f08 functionality with Absoft.
This commit was SVN r27184.
The following Trac tickets were found above:
Ticket 3248 --> https://svn.open-mpi.org/trac/ompi/ticket/3248
that causes MPI jobs to abort if there is not enough registered memory
available (vs. just warning).
This commit was SVN r27140.
The following Trac tickets were found above:
Ticket 3258 --> https://svn.open-mpi.org/trac/ompi/ticket/3258
The Open MPI configure automatically adds the -D_REENTRANT flag to CPPFLAGS. This causes that one of the PGI STL headers includes the omp.h header - unfortunately the fake one located in tools/vtwrapper/ instead of the real one. Thus, several OpenMP symbols were undefined and the compiler aborted.
This commit was SVN r27130.
* More "assumed shape" -> "assumed rank" text fixes
* Don't put a comment after "#endif" in .F90 files; gfortran hates that
* Fix OMPI_PROCEDURE to work properly (i.e., OMPI_HAVE_PROCEDURE ->
OMPI_FORTRAN_HAVE_PROCEDURE), and add all the required "use ::
mpi_f08_interface_callbacks" now that OMPI_PROCEDURE is now working
This commit was SVN r27119.
The project includes following components and frameworks:
- ML Collective component
- NETPATTERNS and COMMPATTERNS common components
- BCOL framework
- SBGP framework
Note: By default the ML collective component is disabled. In order to enable
new collectives user should bump up the priority of ml component (coll_ml_priority)
=============================================
Primary Contributors (in alphabetical order):
Ishai Rabinovich (Mellanox)
Joshua S. Ladd (ORNL / Mellanox)
Manjunath Gorentla Venkata (ORNL)
Mike Dubman (Mellanox)
Noam Bloch (Mellanox)
Pavel (Pasha) Shamis (ORNL / Mellanox)
Richard Graham (ORNL / Mellanox)
Vasily Filipov (Mellanox)
This commit was SVN r27078.
technically this is a necessary thing to do, it wasn't a tragedy that
we didn't have it because err was initialize to 0 in the beginning of
the functions where this problem occurred. Also, OMPI will likely
abort if one of the MCA_PML_CALLs actually incurs an error (or, even
if it doesn't, MPI doesn't define the behavior anyway ;-) ).
But looking forward to an FT-aware world, fixing this issue is a Good
Thing. Many thanks to Hristo Iliev for pointing out the issue.
This commit was SVN r27070.
- OMPI_SUCCESS
- OMPI_ERROR
- OMPI_ERR_RESOURCE_BUSY
If an "OMPI_ERR_OUT_OF_RESOURCE" occurs, the request is added to the pending list, and will be handled later. An error message
should not be printed to the user in this case. This is not an error, but rather a notification of a possible valid condition.
Only in the case of "OMPI_ERROR" should it be printed to the user.
This commit was SVN r27065.
btl_openib_connect_udcm when notifying not to listen to an fd to ensure
that the main thread does not continue until the service thread has
processed the message
Adds ability to send message to openib async thread to tell it to
ignore the ERR state on a specific QP. Adds this call to udcm_module_finalize
so when we set the error state on the QP it doesn't cause the
openib async thread to abort the mpi program prematurely
Fixes trac:3161
This commit was SVN r27064.
The following Trac tickets were found above:
Ticket 3161 --> https://svn.open-mpi.org/trac/ompi/ticket/3161
structure
* Minor optimization: if MPI_Test returns flags==.FALSE., don't copy
over the request/status to the OUT variables
* Update comments about .TRUE./.FALSE. compiler values
This commit was SVN r27041.
forever.
Don't copy a value back to the user's buffer unless the FLAG was set
to .TRUE. (i.e., indicating that we found the key).
This commit was SVN r27040.
vals.
* Note that the pre-defined Info objects don't need to have fortran
indexes assigned; they should already be assigned in the
constructor. So add an assert() to ensure that this really happens
properly.
* Add MPI_ENV_INFO to the Fortran interfaces
This commit was SVN r27039.
receive queues value) so that we don't break the use of RDMA CM, and
therefore break RoCE.
This commit was SVN r27017.
The following SVN revision numbers were found above:
r26869 --> open-mpi/ompi@fe0e7f81df
"num_app_ctx" - the number of app_contexts in the job
"first_rank" - the MPI rank of the first process in each app_context
"np" - the number of procs in each app_context
Still need clarification on the MPI_Init portion of the ticket. Specifically, does the ticket call for returning an error is someone calls MPI_Init more than once in a program? We set a flag to tell us that we have been initialized, but currently never check it.
This commit was SVN r27005.
aren't separated out into individual commits; they represent a few
months of work in the Mercurial branch, and it seemed error-prone to
try to break them up into multiple SVN commits.
* Remove 2nd overloaded interfaces for MPI_TESTALL, MPI_TESTSOME,
MPI_WAITALL, and MPI_WAITSOME in the "mpi" module implementations
(because we're not allowed to have them, anyway -- it causes
complications in the profiling interface). This forced an MPI-2.2
errata in the MPI Forum; we applied the errata here (the array of
statuses parameter could not have a specific dimension specified in
the dummy argument). Fixes trac:3166.
* Similarly, fix type for MPI_ARGVS_NULL in Fortran
* Add MPI_3.0 function MPI_F_SYNC_REG (Fortran interfaces only).
* Add MPI-3.0 MPI_MESSAGE_NO_PROC in the mpi_f08 module.
* Added mpi_f08 handle comparison operators, per MPI-3.0 addendum to
the F08 proposal at the last Forum meeting.
* Added missing type(MPI_File) and type(Message) in mpi_f08 module.
* Fix --disable-mpi-io configure switch with all Fortran interfaces
* Re-factor the Fortran header files to be fundamentally simpler and
easier to maintain. Fortran constant values in the header files
are now generated by a script named mpif-values.pl during
autogen.pl (they were previously generated by mpif-common.pl, but
it was quite a bit more subtle/complex). A second commit will
follow this one to update svn:ignore values (just to ensure we
don't muck up the first commit with the SVN client getting confused
by the changed ignore values and new/changed files).
* Fix some dependencies for compile ordering in
ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am.
* Fix bad wording in several places (.m4 file name, ompi_info output,
etc.): we previoulsy said "F08 assumed shape" when we really meant
"F08 assumed rank" (for Fortran gurus, those are very different
things).
* Removed the GREEK/SVN version string from mpif.h. It really had no
purpose being there.
Still to be done:
* Handling of 2D array of strings in MPI_COMM_SPAWN_MULTIPLE still
isn't right yet. Not sure how many people really care about this
:-), but it is still broken.
This commit was SVN r26997.
The following Trac tickets were found above:
Ticket 3166 --> https://svn.open-mpi.org/trac/ompi/ticket/3166
- general:
- incremented version number to 1.11.2openmpi
- lib OTFAUX:
- speed-up messages matching, if no snapshots should be generated
Changes to VT:
- general:
- incremented version number to 5.13.1openmpi
- compiler wrappers:
- vtnvcc:
- add path to cuda.h to the PDT parser command
- exclude *.cu source files from instrumenting with PDT/TAU; the PDT parser is not (yet) able to handle CUDA statements and kernels
- vtunify:
- fixed timestamp boundary check for merging asynchronous plugin counters (i.e. async. timestamp must >= process' start timestamp)
- fixed timestamp conversion from local to global
- print percentage of message matching bumps (unmatched or reversed messages)
- inlined key-value list "record handler"
- minor optimizations in hook for merging async. events:
- search async. source manager only once per stream
- don't call writeRecHook_Event() if no async. source key is defined
This commit was SVN r26925.
- return MPI_ERR_OTHER instead of MPI_SUCCESS for the functions that are not
yet implemented
- add another field to the mca_io_ompio_file_t structure to point back to the
ompi_file_t structure.
This commit was SVN r26908.
- For now we'll use 8192 as a base value
- We leave the adjust_cq() as is
- For the long term we can work on an appropriate setting to expose through the INI file.
8K CQEs are 512K per process, which is 8MB for ppn=16
This commit was SVN r26877.
ibv_get_device_list_compat() and not finding it, I finally realized
that it was a function in OMPI. So let's name it with a proper ompi_
prefix, not an ibv_ prefix.
This commit was SVN r26867.
it to a negative number). Get rid of the multiplication in the critical
path, and keep the functions as simple as possible.
This commit was SVN r26864.
old version of the code tried to use the MPI_UB marker, but this
failed if the old marker (the one set in the cyclic function) had
a larger value. Replace the hardcore markers MPI_LB and MPI_UB by
their softer counterparts (using the _resize function).
This commit was SVN r26862.