Skip to content

Allow users an abstract way to define MPI devices #84

Description

@charleskawczynski

We should define something like, e.g., "assign_mpi_devices":

    if context isa ClimaComms.MPICommsContext &&
       device isa ClimaComms.CUDADevice
        # assign GPUs based on local rank
        local_comm = ClimaComms.MPI.Comm_split_type(
            context.mpicomm,
            ClimaComms.MPI.COMM_TYPE_SHARED,
            ClimaComms.MPI.Comm_rank(context.mpicomm),
        )
        CUDA.device!(
            ClimaComms.MPI.Comm_rank(local_comm) % length(CUDA.devices()),
        )
    end

from ClimaCore's benchmark utility: https://github.com/CliMA/ClimaCore.jl/blob/25792d42b04c36dc6f2a6f50cd9d75cf2416b5cb/test/Operators/spectralelement/benchmark_utils.jl#L189-L200

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions