Search Results for

    Show / Hide Table of Contents

    Interface ICommunicator

    Namespace: Microsoft.ML.Probabilistic
    Assembly: Microsoft.ML.Probabilistic.dll
    Syntax
    public interface ICommunicator

    Properties

    PercentTimeSpentWaiting

    Declaration
    double PercentTimeSpentWaiting { get; }
    Property Value
    Type Description
    Double

    Rank

    Identifies the currently executing process within this communicator.

    Declaration
    int Rank { get; }
    Property Value
    Type Description
    Int32

    Size

    The number of processes within this communicator.

    Declaration
    int Size { get; }
    Property Value
    Type Description
    Int32

    Methods

    Allreduce<T>(T, Func<T, T, T>)

    Allreduce is a collective algorithm that combines the values stored by each process into a
    single value available to all processes. The values are combined in a user-defined way, specified via
    a delegate. If value1, value2, ..., valueN are the values provided by the
    N processes in the communicator, the result will be the value value1 op value2 op ... op valueN.

    An Allreduce is equivalent to a Reduce<T>(T, MPI.ReductionOperation<T>, int) followed by a Broadcast<T>(ref T, int)

    Declaration
    T Allreduce<T>(T value, Func<T, T, T> op)
    Parameters
    Type Name Description
    T value

    The local value that will be combined with the values provided by other processes.

    Func<T, T, T> op

    The operation used to combine two values. This operation must be associative.

    Returns
    Type Description
    T

    The result of the reduction. The same value will be returned to all processes.

    Type Parameters
    Name Description
    T

    Any serializable type.

    Alltoall<T>(T[])

    Collective operation in which every process sends data to every other process. Alltoall differs from Allgather<T>(T) in that a given process can send different data to all of the other processes, rather than contributing the same piece of data to all processes.

    Declaration
    T[] Alltoall<T>(T[] values)
    Parameters
    Type Name Description
    T[] values

    The array of values that will be sent to each process. The ith value in this array will be sent to the process with rank i.

    Returns
    Type Description
    T[]

    An array of values received from all of the other processes. The jth value in this array will be the value sent to the calling process from the process with rank j.

    Type Parameters
    Name Description
    T

    Any serializable type.

    AlltoallFlattened<T>(T[], Int32[], Int32[])

    Collective operation in which every process sends data to every other process. Alltoall differs from Allgather<T>(T) in that a given process can send different data to all of the other processes, rather than contributing the same piece of data to all processes.

    Declaration
    T[] AlltoallFlattened<T>(T[] inValues, int[] sendCounts, int[] recvCounts)
    Parameters
    Type Name Description
    T[] inValues

    The array of values that will be sent to each process. sendCounts[i] worth of data will be sent to process i.

    Int32[] sendCounts

    The numbers of items to be sent to each process.

    Int32[] recvCounts
    Returns
    Type Description
    T[]

    The array of values received from all of the other processes.

    Type Parameters
    Name Description
    T

    Any serializable type.

    Barrier()

    Wait until all processes in the communicator have reached the same barrier.

    Declaration
    void Barrier()

    Broadcast<T>(ref T, Int32)

    Broadcast a value from the root process to all other processes.

    Declaration
    void Broadcast<T>(ref T value, int root)
    Parameters
    Type Name Description
    T value

    The value to be broadcast. At the root process, this value is read (but not written); at all other processes, this value will be replaced with the value at the root.

    Int32 root

    The rank of the process that is broadcasting the value out to all of the non-root processes.

    Type Parameters
    Name Description
    T

    Any serializable type.

    Gather<T>(T, Int32)

    Gather the values from each process into an array of values at the root process. On the root process, the pth element of the result will be equal to the value parameter of the process with rank p when this routine returns. Other processes receive null.

    Declaration
    T[] Gather<T>(T value, int root)
    Parameters
    Type Name Description
    T value

    The value contributed by this process.

    Int32 root

    The rank of the process that will receive values for all of the processes in the communicator.

    Returns
    Type Description
    T[]
    Type Parameters
    Name Description
    T

    Any serializable type.

    GatherFlattened<T>(T[], Int32)

    Similar to Gather<T>(T, Int32) but here all values are aggregated into one large array.

    Declaration
    T[] GatherFlattened<T>(T[] inValues, int root)
    Parameters
    Type Name Description
    T[] inValues

    The values to be contributed by this process.

    Int32 root

    The rank of the root node.

    Returns
    Type Description
    T[]

    The aggregated gathered values.

    Type Parameters
    Name Description
    T

    Any serializable type.

    ImmediateSend<T>(T, Int32, Int32)

    Non-blocking send to a particular processor.

    Declaration
    ICommunicatorRequest ImmediateSend<T>(T value, int dest, int tag)
    Parameters
    Type Name Description
    T value
    Int32 dest
    Int32 tag
    Returns
    Type Description
    ICommunicatorRequest
    Type Parameters
    Name Description
    T

    ImmediateSend<T>(T[], Int32, Int32)

    Declaration
    ICommunicatorRequest ImmediateSend<T>(T[] values, int dest, int tag)
    Parameters
    Type Name Description
    T[] values
    Int32 dest
    Int32 tag
    Returns
    Type Description
    ICommunicatorRequest
    Type Parameters
    Name Description
    T

    Receive<T>(Int32, Int32, out T)

    Blocking receive from a particular processor.

    Declaration
    void Receive<T>(int source, int tag, out T value)
    Parameters
    Type Name Description
    Int32 source
    Int32 tag
    T value
    Type Parameters
    Name Description
    T

    Receive<T>(Int32, Int32, ref T[])

    Blocking receive an array from a particular processor. Must have a matching array send.

    Declaration
    void Receive<T>(int source, int tag, ref T[] values)
    Parameters
    Type Name Description
    Int32 source
    Int32 tag
    T[] values

    Must be allocated to the correct size. Cannot be null.

    Type Parameters
    Name Description
    T

    Reduce<T>(T, Func<T, T, T>, Int32)

    Reduce is a collective algorithm that combines the values stored by each process into a single value available at the designated root process. The values are combined in a user-defined way, specified via a delegate. If value1, value2, ..., valueN are the values provided by the N processes in the communicator, the result will be the value value1 op value2 op ... op valueN. This result is only available to the root process.

    Declaration
    T Reduce<T>(T value, Func<T, T, T> op, int root)
    Parameters
    Type Name Description
    T value

    The local value that will be combined with the values provided by other processes.

    Func<T, T, T> op

    The operation used to combine two values. This operation must be associative.

    Int32 root

    The rank of the process that is the root of the reduction operation, which will receive the result of the reduction operation.

    Returns
    Type Description
    T

    On the root, returns the result of the reduction operation. The other processes receive a default value.

    Type Parameters
    Name Description
    T

    Any serializable type.

    Scatter<T>(T[], Int32)

    Scatters an array of values by sending the ith value of the array to processor i.

    Declaration
    T Scatter<T>(T[] values, int root)
    Parameters
    Type Name Description
    T[] values

    An array of values of length Size, which is only significant at the root. The ith value of this array (at the root process) will be sent to the ith processor.

    Int32 root

    Rank of the "root" process, which will supply the array of values to be scattered.

    Returns
    Type Description
    T
    Type Parameters
    Name Description
    T

    Any serializable type.

    Send<T>(T, Int32, Int32)

    Blocking send to a particular processor. Will wait until the value is received.

    Declaration
    void Send<T>(T value, int dest, int tag)
    Parameters
    Type Name Description
    T value
    Int32 dest
    Int32 tag
    Type Parameters
    Name Description
    T

    Send<T>(T[], Int32, Int32)

    Blocking send array to a particular processor. Will wait until the value is received. Must be received by the array-specific receive method.

    Declaration
    void Send<T>(T[] values, int dest, int tag)
    Parameters
    Type Name Description
    T[] values
    Int32 dest
    Int32 tag
    Type Parameters
    Name Description
    T
    In This Article
    Back to top Copyright © .NET Foundation. All rights reserved.