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

68 Коммитов

Автор SHA1 Сообщение Дата
Mark Allen
482d84b6e5 fixes for Dave's get/set info code
The expected sequence of events for processing info during object creation
is that if there's an incoming info arg, it is opal_info_dup()ed into the obj
at obj->s_info first. Then interested components register callbacks for
keys they want to know about using opal_infosubscribe_infosubscribe().

Inside info_subscribe_subscribe() the specified callback() is called with
whatever matching k/v is in the object's info, or with the default. The
return string from the callback goes into the new k/v stored in info, and
the input k/v is saved as __IN_<key>/<val>. It's saved the same way
whether the input came from info or whether it was a default. A null return
from the callback indicates an ignored key/val, and no k/v is stored for
it, but an __IN_<key>/<val> is still kept so we still have access to the
original.

At MPI_*_set_info() time, opal_infosubscribe_change_info() is used. That
function calls the registered callbacks for each item in the provided info.
If the callback returns non-null, the info is updated with that k/v, or if
the callback returns null, that key is deleted from info. An __IN_<key>/<val>
is saved either way, and overwrites any previously saved value.

When MPI_*_get_info() is called, opal_info_dup_mpistandard() is used, which
allows relatively easy changes in interpretation of the standard, by looking
at both the <key>/<val> and __IN_<key>/<val> in info. Right now it does
  1. includes system extras, eg k/v defaults not expliclty set by the user
  2. omits ignored keys
  3. shows input values, not callback modifications, eg not the internal values

Currently the callbacks are doing things like
    return some_condition ? "true" : "false"
that is, returning static strings that are not to be freed. If the return
strings start becoming more dynamic in the future I don't see how unallocated
strings could support that, so I'd propose a change for the future that
the callback()s registered with info_subscribe_subscribe() do a strdup on
their return, and we change the callers of callback() to free the strings
it returns (there are only two callers).

Rough outline of the smaller changes spread over the less central files:
  comm.c
    initialize comm->super.s_info to NULL
    copy into comm->super.s_info in comm creation calls that provide info
    OBJ_RELEASE comm->super.s_info at free time
  comm_init.c
    initialize comm->super.s_info to NULL
  file.c
    copy into file->super.s_info if file creation provides info
    OBJ_RELEASE file->super.s_info at free time
  win.c
    copy into win->super.s_info if win creation provides info
    OBJ_RELEASE win->super.s_info at free time

  comm_get_info.c
  file_get_info.c
  win_get_info.c
    change_info() if there's no info attached (shouldn't happen if callbacks
      are registered)
    copy the info for the user

The other category of change is generally addressing compiler warnings where
ompi_info_t and opal_info_t were being used a little too interchangably. An
ompi_info_t* contains an opal_info_t*, at &(ompi_info->super)

Also this commit updates the copyrights.

Signed-off-by: Mark Allen <markalle@us.ibm.com>
2017-05-17 01:12:49 -04:00
David Solt
50aa143ab6 Major structural changes to data types: .super infosubscriber
ompi_communicator_t, ompi_win_t, ompi_file_t all have a super class of type opal_infosubscriber_t instead of a base/super type of opal_object_t (in previous code comm used c_base, but file used super).  It may be a bit bold to say that being a subscriber of MPI_Info is the foundational piece that ties these three things together, but if you object, then I would prefer to turn infosubscriber into a more general name that encompasses other common features rather than create a different super class.  The key here is that we want to be able to pass comm, win and file objects as if they were opal_infosubscriber_t, so that one routine can heandle all 3 types of objects being passed to it.

MPI_INFO_NULL is still an ompi_predefined_info_t type since an MPI_Info is part of ompi but the internal details of the underlying information concept is part of opal.

An ompi_info_t type still exists for exposure to the user, but it is simply a wrapper for the opal object.

Routines such as ompi_info_dup, etc have all been moved to opal_info_dup and related to the opal directory.

Fortran to C translation tables are only used for MPI_Info that is exposed to the application and are therefore part of the ompi_info_t and not the opal_info_t

The data structure changes are primarily in the following files:

    communicator/communicator.h
    ompi/info/info.h
    ompi/win/win.h
    ompi/file/file.h

The following new files were created:

    opal/util/info.h
    opal/util/info.c
    opal/util/info_subscriber.h
    opal/util/info_subscriber.c

This infosubscriber concept is that communicators, files and windows can have subscribers that subscribe to any changes in the info associated with the comm/file/window.  When xxx_set_info is called, the new info is presented to each subscriber who can modify the info in any way they want.  The new value is presented to the next subscriber and so on until all subscribers have had a chance to modify the value.  Therefore, the order of subscribers can make a difference but we hope that there is generally only one subscriber that cares or modifies any given key/value pair.  The final info is then stored and returned by a call to xxx_get_info.

The new model can be seen in the following files:

    ompi/mpi/c/comm_get_info.c
    ompi/mpi/c/comm_set_info.c
    ompi/mpi/c/file_get_info.c
    ompi/mpi/c/file_set_info.c
    ompi/mpi/c/win_get_info.c
    ompi/mpi/c/win_set_info.c

The current subscribers where changed as follows:

    mca/io/ompio/io_ompio_file_open.c
    mca/io/ompio/io_ompio_module.c
    mca/osc/rmda/osc_rdma_component.c (This one actually subscribes to "no_locks")
    mca/osc/sm/osc_sm_component.c (This one actually subscribes to "blocking_fence" and "alloc_shared_contig")

Signed-off-by: Mark Allen <markalle@us.ibm.com>

Conflicts:
	AUTHORS
	ompi/communicator/comm.c
	ompi/debuggers/ompi_mpihandles_dll.c
	ompi/file/file.c
	ompi/file/file.h
	ompi/info/info.c
	ompi/mca/io/ompio/io_ompio.h
	ompi/mca/io/ompio/io_ompio_file_open.c
	ompi/mca/io/ompio/io_ompio_file_set_view.c
	ompi/mca/osc/pt2pt/osc_pt2pt.h
	ompi/mca/sharedfp/addproc/sharedfp_addproc.h
	ompi/mca/sharedfp/addproc/sharedfp_addproc_file_open.c
	ompi/mca/topo/treematch/topo_treematch_dist_graph_create.c
	ompi/mpi/c/lookup_name.c
	ompi/mpi/c/publish_name.c
	ompi/mpi/c/unpublish_name.c
	opal/mca/mpool/base/mpool_base_alloc.c
	opal/util/Makefile.am
2017-05-12 14:41:05 -04:00
Howard Pritchard
c2da14d514 AUTHORS: update for 3.0.0 branching
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-03-14 13:54:56 -06:00
Jeff Squyres
e6b3be8e1f AUTHORS: update names
Update the .mailmap and re-run `contrib/dist/make-authors.pl`.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-02-27 16:37:23 -05:00
Jeff Squyres
d772fcf8f1 Merge pull request #2509 from OMGtechy/master
Fixed memory leak and some -Werror=unused-result warnings
2016-12-27 17:13:23 -05:00
Joshua Gerrard
3332a7d630 Fixed memory leak and some -Werror=unused-result warnings
Signed-off-by: Joshua Gerrard <joshuagerrard+ompi-commit@protonmail.com>
2016-12-17 17:43:14 +00:00
Jeff Squyres
bd1828c54d Merge pull request #2451 from martinkontsek/master
master: Add arguments to rpmbuild script and update README.
2016-12-17 12:28:59 -05:00
Martin Kontsek
30d076a2f7 Add arguments to rpmbuild script and update README, implement pull request suggestions.
Signed-off-by: Martin Kontsek <mkontsek@cisco.com>
2016-12-15 11:18:41 -08:00
Jeff Squyres
3cb3220094 AUTHORS: update via make-authors.pl script
Update .mailmap to catch some inconsistencies.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-12-14 10:28:48 -08:00
Jeff Squyres
065b93600d AUTHORS: Fix minor typos
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-08-23 06:32:57 -07:00
Jeff Squyres
917559f1c3 .mailmap / AUTHORS: auto-generate AUTHORS
In conjunction with a de-duplicating .mailmap file, use the
make-authors.pl script to auto-generate AUTHORS.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-08-18 08:47:15 -05:00
Jeff Squyres
7a25233f3a AUTHORS: Preprocess in preparation for being auto-generated
- Add separator line for parser to find
- Remove all @users.noreply.github.com addresses
- Use proper character for Aurélien Bouteiller
- Fix spelling of Edgar Gabriel

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-08-18 07:15:26 -05:00
Abhishek Joshi
f06f7eb3e6 arm64: add timer support
Signed-off-by: Sreenidhi Bharathkar Ramesh <sreenidhi-bharathkar.ramesh@broadcom.com>
2016-06-23 11:01:00 +00:00
Thananon Patinyasakdikul
7b6db9958b Updated AUTHORS entry. 2016-06-17 08:57:30 -07:00
Jeff Squyres
1d83d594c8 AUTHORS: reformat and include all git log email addresses
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-05-31 19:18:24 -04:00
Geoffrey Paulsen
ed6f508735 Updated IBM Copyright message for contributions in memory patcher component. 2016-04-25 15:13:38 -04:00
Jeff Squyres
06eeeb3583 AUTHORS: Fix an errant reference to Subversion IDs
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-04-21 17:32:19 -04:00
Ralph Castain
c2c59db49c Add Mark Santcroos to AUTHORS - welcome, Mark! 2016-04-21 10:54:40 -07:00
Jeff Squyres
8e988dff40 AUTHORS: Fix a typo
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-04-11 16:59:19 -04:00
Thananon Patinyasakdikul
92062492b9 Enable Threading in the BTL TCP
Added mca parameter to turn progress thread on/off
Add a flag to check if we have btl progress thread.
Added macro for ob1 matching lock.
Update the AUTHORS file.
2016-03-28 14:41:01 -04:00
Gilles Gouaillardet
cb492688d1 update AUTHORS (no code change) 2015-11-02 08:59:58 +09:00
yohann
4dc5cad313 Update AUTHORS list. 2015-09-10 09:47:57 -07:00
Zhiming Wang
88ff560068 Update AUTHORS
Add myself into "AUTHORS".
2015-09-10 21:28:38 +08:00
Jeff Squyres
f5e26107c3 AUTHORS: Updated with Git email addresses (vs. SVN IDs) 2014-10-02 12:31:59 -07:00
Brad Benton
9d39903a53 update author affiliation
This commit was SVN r32737.
2014-09-15 15:02:58 +00:00
Jeff Squyres
1b3c9a5517 Add vvenkates ID.
This commit was SVN r32589.
2014-08-23 09:34:31 +00:00
Mangala Jyothi Bhaskar
a5973c3f8c revamp of the aggregator selection logic, part 1.
This commit was SVN r32557.
2014-08-20 19:28:04 +00:00
Jeff Squyres
a5effc35d7 AUTHORS: Add bwesarg
This commit was SVN r32314.
2014-07-25 10:44:37 +00:00
Todd Kordenbrock
87aa15a180 Add Todd Kordenbrock to the AUTHORS file.
This commit was SVN r32296.
2014-07-23 19:16:04 +00:00
Jeff Squyres
9428d1c6d2 AUTHORS: Add Howard Pritchard
This commit was SVN r32192.
2014-07-10 11:16:49 +00:00
Jeff Squyres
deea7b4d7d Add Artem to AUTHORS.
This commit was SVN r31820.
2014-05-19 14:16:24 +00:00
Jeff Squyres
7afca329c2 Fix one more spacing issue.
This commit was SVN r31720.
2014-05-13 13:48:55 +00:00
Jeff Squyres
1df98c1fc7 Make the Username long enough to accomodate all usernames. Also put
the RIST organization in alphabetical order.

This commit was SVN r31718.
2014-05-13 12:58:01 +00:00
Gilles Gouaillardet
4fc6801f4e Add Gilles Gouaillardet / RIST to the AUTHORS file
This commit was SVN r31714.
2014-05-12 10:46:34 +00:00
Jeff Squyres
1a274a45b2 Add "mpiteam" user (for git mirror script)
This commit was SVN r31410.
2014-04-16 10:28:56 +00:00
Jeff Squyres
256ef772fa Add Ryan Grant to the AUTHORS list.
Now that Ryan has a commit, he needs to be added to AUTHORS so that
git mirroring can continue properly.

This commit was SVN r31356.
2014-04-09 10:08:39 +00:00
Jeff Squyres
4e9743ece1 Add hpcchris username
This commit was SVN r30395.
2014-01-23 15:28:00 +00:00
Mike Dubman
79366f8ce7 fix tabulation
This commit was SVN r30329.
2014-01-19 12:40:21 +00:00
Hadi Montakhabi
c1ba8c1219 adding Hadi Montakhabi as an author
This commit was SVN r30315.
2014-01-17 18:47:03 +00:00
Mike Dubman
8b4bf557ab add alina to the club
This commit was SVN r30177.
2014-01-09 15:28:36 +00:00
Adrian Reber
fbef1d7a1f Added myself to the .mailmap and AUTHORS files.
This commit was SVN r29923.
2013-12-16 16:21:37 +00:00
Mike Dubman
9491989097 revert Voltaire for relevant folks
cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r29769.
2013-11-29 14:09:39 +00:00
Mike Dubman
a2a4802c3f fix AUTHORS with new developer
cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r29735.
2013-11-22 15:06:20 +00:00
Jose Roman
72c9c66396 Add myself to AUTHORS file
This commit was SVN r29288.
2013-09-29 09:23:04 +00:00
Oscar Vega-Gisbert
74528c9b00 expand UPV in the AUTHORS file
This commit was SVN r29287.
2013-09-28 19:36:50 +00:00
Oscar Vega-Gisbert
6d1e187655 add Oscar Vega-Gisbert to the AUTHORS file
This commit was SVN r29279.
2013-09-27 20:56:54 +00:00
Dave Goodell
e44337742f add Reese Faucette to the AUTHORS file
Reese actually authored several usnic BTL changes prior to this commit,
but they were committed on his behalf by Jeff or me.

cmr=v1.7.3:reviewer=jsquyres

This commit was SVN r29132.
2013-09-06 03:10:03 +00:00
Dave Goodell
e768b3c8c4 clean up AUTHORS file
Reviewed by jsquyres@

cmr:v1.7:reviewer=jsquyres

This commit was SVN r28824.
2013-07-17 21:21:02 +00:00
Ralph Castain
dbc207f237 Update author affiliation
This commit was SVN r28813.
2013-07-16 18:30:14 +00:00
Pavel Shamis
471879ada6 Updating authors list.
This commit was SVN r27102.
2012-08-21 21:59:17 +00:00