[mpiwg-hybridpm] Meeting Tomorrow
Joachim Jenke
jenke at itc.rwth-aachen.de
Wed May 10 05:06:48 CDT 2023
What is the difference of MPI_THREAD_CONCURRENT and
MPI_THREAD_MULTIPLE + "mpi_assert_allow_overtaking"?
If the message ordering is not important for the application, it should
just set the assertion for the respective communicator and will get the
same possible performance advantage as MPI_THREAD_CONCURRENT might provide.
- Joachim
Am 10.05.23 um 11:57 schrieb Jeff Hammond via mpiwg-hybridpm:
> What I gathered from the live debate a few months back is that some
> people want a semantic that is different from my (and others’)
> interpretation of MPI_THREAD_MULTIPLE. Rather than fight forever about
> what MPI_THREAD_MULTIPLE means, why don’t the people who want the more
> relaxed semantic just propose that as MPI_THREAD_CONCURRENT, as was
> discussed back in 2016.
>
> I will not quarrel one bit with a new thread level,
> MPI_THREAD_CONCURRENT, that does what Maria’s team wants, but I intend
> to fight until my dying breath against any change to the MPI standard
> that violates the “as if in some order” text.
>
> Jeff
>
>> On 10. May 2023, at 12.50, Holmes, Daniel John
>> <daniel.john.holmes at intel.com> wrote:
>>
>> Hi Jeff,
>>
>> 1. Yes
>> 2. If only it were that simple
>>
>> Your first quote is compromised by the example 11.17 that follows it:
>> which order is the interleaved execution mimicking? MPI_SEND;MPI_RECV
>> and MPI_RECV;MPI_SEND both result in deadlock (as stated in that
>> example). That sentence needs “interpretation” – your wording is
>> slightly better, but it needs to be something like “as if the stages
>> of the operations were executed atomically in some order”. The
>> initiation and starting stages of both the send and receive operations
>> are local and can happen without dependence on anything else (in
>> particular, without dependence on each other). Once that has happened,
>> both operations are enabled and must complete in finite time. The
>> execution outcome is “as if” each of the blocking procedures were
>> replaced with a nonblocking initiation and completion procedure pair
>> and both initiation procedures were executed (in some order) before
>> the completion procedures (in some order).
>> The observation and clarification above is necessary, but not
>> sufficient, for resolving the logically concurrent issue. It speaks to
>> execution ordering, but not to message matching ordering.
>> However, rather than mash everything together (we’ve been down that
>> road, we know where it leads), we could consider the merits of just
>> this adjustment on its own. We could call it “The two MPI
>> thread-safety rules conflict with each other.”
>> Best wishes,
>> Dan.
>> *From:*Jeff Hammond <jeff.science at gmail.com
>> <mailto:jeff.science at gmail.com>>
>> *Sent:*10 May 2023 07:28
>> *To:*MPI Forum <mpiwg-hybridpm at lists.mpi-forum.org
>> <mailto:mpiwg-hybridpm at lists.mpi-forum.org>>
>> *Cc:*Holmes, Daniel John <daniel.john.holmes at intel.com
>> <mailto:daniel.john.holmes at intel.com>>
>> *Subject:*Re: [mpiwg-hybridpm] Meeting Tomorrow
>> "All MPI calls are thread-safe, i.e., two concurrently running threads
>> may make MPI calls and the outcome will be as if the calls executed in
>> some order, even if their execution is interleaved."
>> I’m going to continue to die on the hill that “as if executed in some
>> order” constrains the implementation behavior to something equivalent
>> to “MPI operations are initiated atomically” because otherwise one
>> cannot be guaranteed that some ordering exists. The text about
>> logically concurrent merely explains the obvious to users: it is
>> impossible to know in what order unsynchronized threads execute
>> operations. The previous sentence makes it clear what is meant by
>> logically concurrent, and it is consistent with Chapter 11, i.e. it
>> logically unordered:
>> “...if the process is multithreaded, then the_semantics of thread
>> execution may not define a relative order between two send operations
>> executed by two distinct threads_. The operations are logically
>> concurrent..."
>>
>> I can’t provide the full history of the Intel instruction ENQCMD
>> <https://community.intel.com/legacyfs/online/drupal_files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf> but it appears to address the problem of a large number of semi-independent HW units initiating MPI operations in a manner compliant with the text above.
>> As I have stated previously, it is possible to relax the
>> constraint “as if executed in some order” with the addition of a new
>> threading level, which Pavan proposed years ago as
>> MPI_THREAD_CONCURRENT
>> <https://github.com/mpiwg-sessions/sessions-issues/wiki/2016-06-07-forum#notes-from-meeting-bold--specific-work-to-do> (although details are impossible to find at this point).
>> Jeff
>>
>>
>> On 9. May 2023, at 17.41, Holmes, Daniel John via mpiwg-hybridpm
>> <mpiwg-hybridpm at lists.mpi-forum.org
>> <mailto:mpiwg-hybridpm at lists.mpi-forum.org>> wrote:
>>
>> Hi all,
>> Unfortunately, I am double-booked for tomorrow’s HACC WG time
>> slot – so my answer to the implied question below is “not yet”.
>> The “logically concurrent isn’t” issue #117 is now accepted and
>> merged into MPI-4.1 (take a moment to celebrate!) – but it just
>> says “here be dragons”.
>> Do we care enough to defeat those dragons?
>> Argument FOR: as systems become more heterogeneous, an MPI
>> process is likely to abstractly “contain” more semi-independent HW
>> units that will want to communicate with other MPI processes,
>> which will result in lots of logically concurrent MPI
>> communication operations – exactly the territory in which these
>> dragons live.
>> Argument AGAINST: we’ve been throwing brave warriors into this
>> particular dragon fire for about a decade and we’ve only now
>> convinced ourselves that the dragons do, in fact, exist. How many
>> more volunteers do we have and do they have sufficiently pointy
>> sticks?
>> Best wishes,
>> Dan.
>> From: mpiwg-hybridpm <mpiwg-hybridpm-bounces at lists.mpi-forum.org
>> <mailto:mpiwg-hybridpm-bounces at lists.mpi-forum.org>> On Behalf
>> Of Jim Dinan via mpiwg-hybridpm
>> Sent: 09 May 2023 15:15
>> To: Hybrid working group mailing list
>> <mpiwg-hybridpm at lists.mpi-forum.org
>> <mailto:mpiwg-hybridpm at lists.mpi-forum.org>>
>> Cc: Jim Dinan <james.dinan at gmail.com <mailto:james.dinan at gmail.com>>
>> Subject: [mpiwg-hybridpm] Meeting Tomorrow
>> Hi All,
>> We had to reschedule the topic planned for tomorrow's meeting, so
>> the agenda is now open. Please let me know if you have a topic
>> you'd like to discuss. If we don't have a topic ahead of time, we
>> will cancel.
>> Thanks,
>> ~Jim.
>> _______________________________________________
>> mpiwg-hybridpm mailing list
>> mpiwg-hybridpm at lists.mpi-forum.org
>> <mailto:mpiwg-hybridpm at lists.mpi-forum.org>
>> https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm
>> <https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm>
>
>
> _______________________________________________
> mpiwg-hybridpm mailing list
> mpiwg-hybridpm at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm
--
Dr. rer. nat. Joachim Jenke
IT Center
Group: High Performance Computing
Division: Computational Science and Engineering
RWTH Aachen University
Seffenter Weg 23
D 52074 Aachen (Germany)
Tel: +49 241 80- 24765
Fax: +49 241 80-624765
jenke at itc.rwth-aachen.de
www.itc.rwth-aachen.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5903 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-hybridpm/attachments/20230510/28ee38cb/attachment.p7s>
More information about the mpiwg-hybridpm
mailing list