Skip to content

Is there a reason why opal_atomic_mb is always issued? #11652

@joerowell

Description

@joerowell

I've recently been profiling some OpenMPI-based code and I've noticed that every call to a test function (e.g. MPI_Testsome) executes a memory fence via opal_atomic_mb.

I understand why you might want this in multi-threaded code (either via progress threads or multi-threaded user code), or even in light of the new partitioned collectives in MPI-4.0.

However, OpenMPI issues this instruction even if MPI is initialised with MPI_THREAD_SINGLE or if progress threads are disabled (i.e. OPAL_ENABLE_PROGRESS_THREADS == 0).

Is there a reason for this?

Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions