60 likes | 153 Views
Missing info. Adam Moody and Torsten Hoefler Chicago 3/28/11. Where is MPI_Info used?. Functions that take MPI_Info DIST_GRAPH_CREATE_ADJACENT, DIST_GRAPH_CREATE ALLOC_MEM COMM_SPAWN, COMM_SPAWN_MULTIPLE OPEN_PORT, COMM_ACCEPT, COMM_CONNECT, PUBLISH_NAME, UNPUBLISH_NAME, LOOKUP_NAME
E N D
Missing info Adam Moody and TorstenHoefler Chicago 3/28/11
Where is MPI_Info used? • Functions that take MPI_Info • DIST_GRAPH_CREATE_ADJACENT, DIST_GRAPH_CREATE • ALLOC_MEM • COMM_SPAWN, COMM_SPAWN_MULTIPLE • OPEN_PORT, COMM_ACCEPT, COMM_CONNECT, PUBLISH_NAME, UNPUBLISH_NAME, LOOKUP_NAME • WIN_CREATE • FILE_OPEN, FILE_DELETE, FILE_SET_INFO, FILE_GET_INFO, FILE_SET_VIEW • Relevant sections • Chapter 9: Info Object • Section 13.2.8: File Info • A.1.5: Info Keys • A.1.6: Info Values
Some hints are assertions • Some MPI_Info hints are assertions; MPI can crash if app lies, e.g., • no_locks– MPI can break if no_locks is specified but app uses MPI_Win_lock anyway. • Possible assertions for communicators • no_any_source– simplifies matching • no_any_tag – simplifies matching • free_strict – no reference counting • no_reduction_determinism – optimized colls • no_heterogeneity – simpler DT handling • no_send_cancel – simpler send handling • match_packed – MPI_PACKED in send only matches MPI_PACKED in recv • strict_topology – only send pt-2-pt to neighbors in topology
#4 is needed already – what if app sets no_locks on window and then passes window to library? • #2 will be needed if we ever define any assertions on comms. • Thoughts on #1 and #3?
Discussion points • Copy info on COMM_DUP? • Intent of dup is to provide identical comm for library. • We copy attributes, topology, and error handler. • On other hand, this may inhibit library (e.g., strict_topology). • FILE_GET_INFO returns all hints in use, including those not set by user. Want to do the same for comms and windows? • Once set on file, hints cannot be unset, p398, line 29 • “When an info object that specifies a subset of valid hints is passed to MPI_FILE_SET_VIEW or MPI_FILE_SET_INFO, there will be no effect on previously set or defaulted hints that the info does not specify.”
Suggested proposal • MPI_COMM_GET_INFO • MPI_WIN_GET_INFO • MPI_COMM_SET_INFO • May ignore hints that otherwise can be set at creation • MPI_WIN_SET_INFO • May ignore hints that otherwise can be set at creation • MPI_COMM_DUP(incomm, outcomm) • Duplicates info from incomm • MPI_COMM_DUP_INFO(incomm, outcomm, info) • Overwrites info from incomm