Show / Hide Table of Contents

# Interface ICompute

Defines Ignite functionality for executing tasks and closures over nodes in the IClusterGroup. Instance of ICompute is obtained from grid projection using GetCompute() method.

Note that if attempt is made to execute a computation over an empty projection (i.e. projection that does not have any alive nodes), `ClusterGroupEmptyException` will be thrown out of result task.

Ignite must select a node for a computation to be executed. The node will be selected based on the underlying `GridLoadBalancingSpi`, which by default sequentially picks next available node from grid projection. Other load balancing policies, such as `random` or `adaptive`, can be configured as well by selecting different load balancing SPI in Ignite configuration. If your logic requires some custom load balancing behavior, consider implementing `ComputeTask` in Java directly.

Ignite guarantees that as long as there is at least one Ignite node standing, every job will be executed. Jobs will automatically failover to another node if a remote node crashed or has rejected execution due to lack of resources. By default, in case of failover, next load balanced node will be picked for job execution. Also jobs will never be re-routed to the nodes they have failed on. This behavior can be changed by configuring any of the existing or a custom `FailoverSpi` in Ignite configuration.

All members are thread-safe and may be used concurrently from multiple threads.

###### Namespace: Apache.Ignite.Core.Compute

###### Assembly: Apache.Ignite.Core.dll

##### Syntax

    public interface ICompute

### Properties

#### ClusterGroup

Grid projection to which this compute instance belongs.

##### Declaration

    IClusterGroup ClusterGroup { get; }

##### Property Value

Type | Description
--- | ---
IClusterGroup |

### Methods

#### AffinityCall<TRes>(IEnumerable<String>, Int32, IComputeFunc<TRes>)

Executes given job on the node where data for provided partition is located.

##### Declaration

    TRes AffinityCall<TRes>(IEnumerable<string> cacheNames, int partition, IComputeFunc<TRes> func)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<System.String> | cacheNames | Names of the caches to reserve the partition in. The first cache is used for affinity co-location.
System.Int32 | partition | Partition number.
IComputeFunc<TRes> | func | Job to execute.

##### Returns

Type | Description
--- | ---
TRes | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### AffinityCall<TRes>(String, Object, IComputeFunc<TRes>)

Executes given job on the node where data for provided affinity key is located (a.k.a. affinity co-location).

##### Declaration

    TRes AffinityCall<TRes>(string cacheName, object affinityKey, IComputeFunc<TRes> clo)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | cacheName | Name of the cache to use for affinity co-location.
System.Object | affinityKey | Affinity key.
IComputeFunc<TRes> | clo | Job to execute.

##### Returns

Type | Description
--- | ---
TRes | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### AffinityCallAsync<TRes>(IEnumerable<String>, Int32, IComputeFunc<TRes>)

Executes given job on the node where data for provided partition is located.

##### Declaration

    Task<TRes> AffinityCallAsync<TRes>(IEnumerable<string> cacheNames, int partition, IComputeFunc<TRes> func)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<System.String> | cacheNames | Names of the caches to reserve the partition in. The first cache is used for affinity co-location.
System.Int32 | partition | Partition number.
IComputeFunc<TRes> | func | Job to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### AffinityCallAsync<TRes>(IEnumerable<String>, Int32, IComputeFunc<TRes>, CancellationToken)

Executes given job on the node where data for provided partition is located.

##### Declaration

    Task<TRes> AffinityCallAsync<TRes>(IEnumerable<string> cacheNames, int partition, IComputeFunc<TRes> func, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<System.String> | cacheNames | Names of the caches to reserve the partition in. The first cache is used for affinity co-location.
System.Int32 | partition | Partition number.
IComputeFunc<TRes> | func | Job to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### AffinityCallAsync<TRes>(String, Object, IComputeFunc<TRes>)

Executes given job on the node where data for provided affinity key is located (a.k.a. affinity co-location).

##### Declaration

    Task<TRes> AffinityCallAsync<TRes>(string cacheName, object affinityKey, IComputeFunc<TRes> clo)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | cacheName | Name of the cache to use for affinity co-location.
System.Object | affinityKey | Affinity key.
IComputeFunc<TRes> | clo | Job to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### AffinityCallAsync<TRes>(String, Object, IComputeFunc<TRes>, CancellationToken)

Executes given job on the node where data for provided affinity key is located (a.k.a. affinity co-location).

##### Declaration

    Task<TRes> AffinityCallAsync<TRes>(string cacheName, object affinityKey, IComputeFunc<TRes> clo, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | cacheName | Name of the cache to use for affinity co-location.
System.Object | affinityKey | Affinity key.
IComputeFunc<TRes> | clo | Job to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### AffinityRun(IEnumerable<String>, Int32, IComputeAction)

Executes given job on the node where data for provided partition is located (a.k.a. affinity co-location).

##### Declaration

    void AffinityRun(IEnumerable<string> cacheNames, int partition, IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<System.String> | cacheNames | Names of the caches to reserve the partition in. The first cache is used for affinity co-location.
System.Int32 | partition | Partition number.
IComputeAction | action | Job to execute.

#### AffinityRun(String, Object, IComputeAction)

Executes given job on the node where data for provided affinity key is located (a.k.a. affinity co-location).

##### Declaration

    void AffinityRun(string cacheName, object affinityKey, IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | cacheName | Name of the cache to use for affinity co-location.
System.Object | affinityKey | Affinity key.
IComputeAction | action | Job to execute.

#### AffinityRunAsync(IEnumerable<String>, Int32, IComputeAction)

Executes given job on the node where data for provided partition is located (a.k.a. affinity co-location).

##### Declaration

    Task AffinityRunAsync(IEnumerable<string> cacheNames, int partition, IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<System.String> | cacheNames | Names of the caches to reserve the partition in. The first cache is used for affinity co-location.
System.Int32 | partition | Partition number.
IComputeAction | action | Job to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### AffinityRunAsync(IEnumerable<String>, Int32, IComputeAction, CancellationToken)

Executes given job on the node where data for provided partition is located (a.k.a. affinity co-location).

##### Declaration

    Task AffinityRunAsync(IEnumerable<string> cacheNames, int partition, IComputeAction action, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<System.String> | cacheNames | Names of the caches to reserve the partition in. The first cache is used for affinity co-location.
System.Int32 | partition | Partition number.
IComputeAction | action | Job to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### AffinityRunAsync(String, Object, IComputeAction)

Executes given job on the node where data for provided affinity key is located (a.k.a. affinity co-location).

##### Declaration

    Task AffinityRunAsync(string cacheName, object affinityKey, IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | cacheName | Name of the cache to use for affinity co-location.
System.Object | affinityKey | Affinity key.
IComputeAction | action | Job to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### AffinityRunAsync(String, Object, IComputeAction, CancellationToken)

Executes given job on the node where data for provided affinity key is located (a.k.a. affinity co-location).

##### Declaration

    Task AffinityRunAsync(string cacheName, object affinityKey, IComputeAction action, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | cacheName | Name of the cache to use for affinity co-location.
System.Object | affinityKey | Affinity key.
IComputeAction | action | Job to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | Task.

#### Apply<TArg, TRes>(IComputeFunc<TArg, TRes>, TArg)

Executes provided closure job on a node in this grid projection.

##### Declaration

    TRes Apply<TArg, TRes>(IComputeFunc<TArg, TRes> clo, TArg arg)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to run.
TArg | arg | Job argument.

##### Returns

Type | Description
--- | ---
TRes | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### Apply<TArg, TRes>(IComputeFunc<TArg, TRes>, IEnumerable<TArg>)

Executes provided closure job on nodes within this grid projection. A new job is executed for every argument in the passed in collection. The number of actual job executions will be equal to size of the job arguments collection.

##### Declaration

    ICollection<TRes> Apply<TArg, TRes>(IComputeFunc<TArg, TRes> clo, IEnumerable<TArg> args)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to run.
System.Collections.Generic.IEnumerable<TArg> | args | Job arguments.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.ICollection<TRes> | Collection of job results.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### Apply<TArg, TFuncRes, TRes>(IComputeFunc<TArg, TFuncRes>, IEnumerable<TArg>, IComputeReducer<TFuncRes, TRes>)

Executes provided closure job on nodes within this grid projection. A new job is executed for every argument in the passed in collection. The number of actual job executions will be equal to size of the job arguments collection. The returned job results will be reduced into an individual result by provided reducer.

##### Declaration

    TRes Apply<TArg, TFuncRes, TRes>(IComputeFunc<TArg, TFuncRes> clo, IEnumerable<TArg> args, IComputeReducer<TFuncRes, TRes> rdc)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TFuncRes> | clo | Job to run.
System.Collections.Generic.IEnumerable<TArg> | args | Job arguments.
IComputeReducer<TFuncRes, TRes> | rdc | Reducer to reduce all job results into one individual return value.

##### Returns

Type | Description
--- | ---
TRes | Reduced job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TFuncRes | Type of function result.
TRes | Type of result after reduce.

#### ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes>, TArg)

Executes provided closure job on a node in this grid projection.

##### Declaration

    Task<TRes> ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes> clo, TArg arg)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to run.
TArg | arg | Job argument.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes>, TArg, CancellationToken)

Executes provided closure job on a node in this grid projection.

##### Declaration

    Task<TRes> ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes> clo, TArg arg, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to run.
TArg | arg | Job argument.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes>, IEnumerable<TArg>)

Executes provided closure job on nodes within this grid projection. A new job is executed for every argument in the passed in collection. The number of actual job executions will be equal to size of the job arguments collection.

##### Declaration

    Task<ICollection<TRes>> ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes> clo, IEnumerable<TArg> args)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to run.
System.Collections.Generic.IEnumerable<TArg> | args | Job arguments.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of job results.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes>, IEnumerable<TArg>, CancellationToken)

Executes provided closure job on nodes within this grid projection. A new job is executed for every argument in the passed in collection. The number of actual job executions will be equal to size of the job arguments collection.

##### Declaration

    Task<ICollection<TRes>> ApplyAsync<TArg, TRes>(IComputeFunc<TArg, TRes> clo, IEnumerable<TArg> args, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to run.
System.Collections.Generic.IEnumerable<TArg> | args | Job arguments.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of job results.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### ApplyAsync<TArg, TFuncRes, TRes>(IComputeFunc<TArg, TFuncRes>, IEnumerable<TArg>, IComputeReducer<TFuncRes, TRes>)

Executes provided closure job on nodes within this grid projection. A new job is executed for every argument in the passed in collection. The number of actual job executions will be equal to size of the job arguments collection. The returned job results will be reduced into an individual result by provided reducer.

##### Declaration

    Task<TRes> ApplyAsync<TArg, TFuncRes, TRes>(IComputeFunc<TArg, TFuncRes> clo, IEnumerable<TArg> args, IComputeReducer<TFuncRes, TRes> rdc)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TFuncRes> | clo | Job to run.
System.Collections.Generic.IEnumerable<TArg> | args | Job arguments.
IComputeReducer<TFuncRes, TRes> | rdc | Reducer to reduce all job results into one individual return value.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Reduced job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TFuncRes | Type of function result.
TRes | Type of result after reduce.

#### ApplyAsync<TArg, TFuncRes, TRes>(IComputeFunc<TArg, TFuncRes>, IEnumerable<TArg>, IComputeReducer<TFuncRes, TRes>, CancellationToken)

Executes provided closure job on nodes within this grid projection. A new job is executed for every argument in the passed in collection. The number of actual job executions will be equal to size of the job arguments collection. The returned job results will be reduced into an individual result by provided reducer.

##### Declaration

    Task<TRes> ApplyAsync<TArg, TFuncRes, TRes>(IComputeFunc<TArg, TFuncRes> clo, IEnumerable<TArg> args, IComputeReducer<TFuncRes, TRes> rdc, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TFuncRes> | clo | Job to run.
System.Collections.Generic.IEnumerable<TArg> | args | Job arguments.
IComputeReducer<TFuncRes, TRes> | rdc | Reducer to reduce all job results into one individual return value.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Reduced job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TFuncRes | Type of function result.
TRes | Type of result after reduce.

#### Broadcast(IComputeAction)

Broadcasts given job to all nodes in grid projection.

##### Declaration

    void Broadcast(IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeAction | action | Job to broadcast to all projection nodes.

#### Broadcast<TRes>(IComputeFunc<TRes>)

Broadcasts given job to all nodes in grid projection. Every participating node will return a job result.

##### Declaration

    ICollection<TRes> Broadcast<TRes>(IComputeFunc<TRes> clo)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TRes> | clo | Job to broadcast to all projection nodes.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.ICollection<TRes> | Collection of results for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes |

#### Broadcast<TArg, TRes>(IComputeFunc<TArg, TRes>, TArg)

Broadcasts given closure job with passed in argument to all nodes in grid projection. Every participating node will return a job result.

##### Declaration

    ICollection<TRes> Broadcast<TArg, TRes>(IComputeFunc<TArg, TRes> clo, TArg arg)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to broadcast to all projection nodes.
TArg | arg | Job closure argument.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.ICollection<TRes> | Collection of results for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### BroadcastAsync(IComputeAction)

Broadcasts given job to all nodes in grid projection.

##### Declaration

    Task BroadcastAsync(IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeAction | action | Job to broadcast to all projection nodes.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### BroadcastAsync(IComputeAction, CancellationToken)

Broadcasts given job to all nodes in grid projection.

##### Declaration

    Task BroadcastAsync(IComputeAction action, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeAction | action | Job to broadcast to all projection nodes.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | Task.

#### BroadcastAsync<TRes>(IComputeFunc<TRes>)

Broadcasts given job to all nodes in grid projection. Every participating node will return a job result.

##### Declaration

    Task<ICollection<TRes>> BroadcastAsync<TRes>(IComputeFunc<TRes> clo)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TRes> | clo | Job to broadcast to all projection nodes.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of results for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes |

#### BroadcastAsync<TRes>(IComputeFunc<TRes>, CancellationToken)

Broadcasts given job to all nodes in grid projection. Every participating node will return a job result.

##### Declaration

    Task<ICollection<TRes>> BroadcastAsync<TRes>(IComputeFunc<TRes> clo, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TRes> | clo | Job to broadcast to all projection nodes.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of results for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | The type of the resource.

#### BroadcastAsync<TArg, TRes>(IComputeFunc<TArg, TRes>, TArg)

Broadcasts given closure job with passed in argument to all nodes in grid projection. Every participating node will return a job result.

##### Declaration

    Task<ICollection<TRes>> BroadcastAsync<TArg, TRes>(IComputeFunc<TArg, TRes> clo, TArg arg)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to broadcast to all projection nodes.
TArg | arg | Job closure argument.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of results for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### BroadcastAsync<TArg, TRes>(IComputeFunc<TArg, TRes>, TArg, CancellationToken)

Broadcasts given closure job with passed in argument to all nodes in grid projection. Every participating node will return a job result.

##### Declaration

    Task<ICollection<TRes>> BroadcastAsync<TArg, TRes>(IComputeFunc<TArg, TRes> clo, TArg arg, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TArg, TRes> | clo | Job to broadcast to all projection nodes.
TArg | arg | Job closure argument.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of results for this execution.

##### Type Parameters

Name | Description
--- | ---
TArg | Type of argument.
TRes | Type of job result.

#### Call<TRes>(IComputeFunc<TRes>)

Executes provided job on a node in this grid projection. The result of the job execution is returned from the result closure.

##### Declaration

    TRes Call<TRes>(IComputeFunc<TRes> clo)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TRes> | clo | Job to execute.

##### Returns

Type | Description
--- | ---
TRes | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### Call<TRes>(IEnumerable<IComputeFunc<TRes>>)

Executes collection of jobs on nodes within this grid projection.

##### Declaration

    ICollection<TRes> Call<TRes>(IEnumerable<IComputeFunc<TRes>> clos)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeFunc<TRes>> | clos | Collection of jobs to execute.

##### Returns

Type | Description
--- | ---
System.Collections.Generic.ICollection<TRes> | Collection of job results for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### Call<TFuncRes, TRes>(IEnumerable<IComputeFunc<TFuncRes>>, IComputeReducer<TFuncRes, TRes>)

Executes collection of jobs on nodes within this grid projection.

##### Declaration

    TRes Call<TFuncRes, TRes>(IEnumerable<IComputeFunc<TFuncRes>> clos, IComputeReducer<TFuncRes, TRes> reducer)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeFunc<TFuncRes>> | clos | Collection of jobs to execute.
IComputeReducer<TFuncRes, TRes> | reducer | Reducer to reduce all job results into one individual return value.

##### Returns

Type | Description
--- | ---
TRes | Reduced job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TFuncRes | Type of function result.
TRes | Type of result after reduce.

#### CallAsync<TRes>(IComputeFunc<TRes>)

Executes provided job on a node in this grid projection. The result of the job execution is returned from the result closure.

##### Declaration

    Task<TRes> CallAsync<TRes>(IComputeFunc<TRes> clo)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TRes> | clo | Job to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### CallAsync<TRes>(IComputeFunc<TRes>, CancellationToken)

Executes provided job on a node in this grid projection. The result of the job execution is returned from the result closure.

##### Declaration

    Task<TRes> CallAsync<TRes>(IComputeFunc<TRes> clo, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeFunc<TRes> | clo | Job to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### CallAsync<TRes>(IEnumerable<IComputeFunc<TRes>>)

Executes collection of jobs on nodes within this grid projection.

##### Declaration

    Task<ICollection<TRes>> CallAsync<TRes>(IEnumerable<IComputeFunc<TRes>> clos)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeFunc<TRes>> | clos | Collection of jobs to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of job results for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### CallAsync<TRes>(IEnumerable<IComputeFunc<TRes>>, CancellationToken)

Executes collection of jobs on nodes within this grid projection.

##### Declaration

    Task<ICollection<TRes>> CallAsync<TRes>(IEnumerable<IComputeFunc<TRes>> clos, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeFunc<TRes>> | clos | Collection of jobs to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<TRes>> | Collection of job results for this execution.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of job result.

#### CallAsync<TFuncRes, TRes>(IEnumerable<IComputeFunc<TFuncRes>>, IComputeReducer<TFuncRes, TRes>)

Executes collection of jobs on nodes within this grid projection.

##### Declaration

    Task<TRes> CallAsync<TFuncRes, TRes>(IEnumerable<IComputeFunc<TFuncRes>> clos, IComputeReducer<TFuncRes, TRes> reducer)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeFunc<TFuncRes>> | clos | Collection of jobs to execute.
IComputeReducer<TFuncRes, TRes> | reducer | Reducer to reduce all job results into one individual return value.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Reduced job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TFuncRes | Type of function result.
TRes | Type of result after reduce.

#### CallAsync<TFuncRes, TRes>(IEnumerable<IComputeFunc<TFuncRes>>, IComputeReducer<TFuncRes, TRes>, CancellationToken)

Executes collection of jobs on nodes within this grid projection.

##### Declaration

    Task<TRes> CallAsync<TFuncRes, TRes>(IEnumerable<IComputeFunc<TFuncRes>> clos, IComputeReducer<TFuncRes, TRes> reducer, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeFunc<TFuncRes>> | clos | Collection of jobs to execute.
IComputeReducer<TFuncRes, TRes> | reducer | Reducer to reduce all job results into one individual return value.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Reduced job result for this execution.

##### Type Parameters

Name | Description
--- | ---
TFuncRes | Type of function result.
TRes | Type of result after reduce.

#### Execute<TJobRes, TRes>(IComputeTask<TJobRes, TRes>)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    TRes Execute<TJobRes, TRes>(IComputeTask<TJobRes, TRes> task)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeTask<TJobRes, TRes> | task | Task to execute.

##### Returns

Type | Description
--- | ---
TRes | Task result.

##### Type Parameters

Name | Description
--- | ---
TJobRes | Type of job result.
TRes | Type of reduce result.

#### Execute<TJobRes, TRes>(Type)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    TRes Execute<TJobRes, TRes>(Type taskType)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Type | taskType | Task type.

##### Returns

Type | Description
--- | ---
TRes | Task result.

##### Type Parameters

Name | Description
--- | ---
TJobRes | Type of job result.
TRes | Type of reduce result.

#### Execute<TArg, TJobRes, TRes>(IComputeTask<TArg, TJobRes, TRes>, TArg)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    TRes Execute<TArg, TJobRes, TRes>(IComputeTask<TArg, TJobRes, TRes> task, TArg taskArg)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeTask<TArg, TJobRes, TRes> | task | Task to execute.
TArg | taskArg | Optional task argument.

##### Returns

Type | Description
--- | ---
TRes | Task result.

##### Type Parameters

Name | Description
--- | ---
TArg | Argument type.
TJobRes | Type of job result.
TRes | Type of final task result.

#### Execute<TArg, TJobRes, TRes>(Type, TArg)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    TRes Execute<TArg, TJobRes, TRes>(Type taskType, TArg taskArg)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Type | taskType | Task type.
TArg | taskArg | Optional task argument.

##### Returns

Type | Description
--- | ---
TRes | Task result.

##### Type Parameters

Name | Description
--- | ---
TArg | Argument type.
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteAsync<TJobRes, TRes>(IComputeTask<TJobRes, TRes>)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TJobRes, TRes>(IComputeTask<TJobRes, TRes> task)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeTask<TJobRes, TRes> | task | Task to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteAsync<TJobRes, TRes>(IComputeTask<TJobRes, TRes>, CancellationToken)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TJobRes, TRes>(IComputeTask<TJobRes, TRes> task, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeTask<TJobRes, TRes> | task | Task to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteAsync<TJobRes, TRes>(Type)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TJobRes, TRes>(Type taskType)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Type | taskType | Task type.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteAsync<TJobRes, TRes>(Type, CancellationToken)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TJobRes, TRes>(Type taskType, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Type | taskType | Task type.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteAsync<TArg, TJobRes, TRes>(IComputeTask<TArg, TJobRes, TRes>, TArg)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TArg, TJobRes, TRes>(IComputeTask<TArg, TJobRes, TRes> task, TArg taskArg)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeTask<TArg, TJobRes, TRes> | task | Task to execute.
TArg | taskArg | Optional task argument.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TArg | Argument type.
TJobRes | Type of job result.
TRes | Type of final task result.

#### ExecuteAsync<TArg, TJobRes, TRes>(IComputeTask<TArg, TJobRes, TRes>, TArg, CancellationToken)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TArg, TJobRes, TRes>(IComputeTask<TArg, TJobRes, TRes> task, TArg taskArg, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeTask<TArg, TJobRes, TRes> | task | Task to execute.
TArg | taskArg | Optional task argument.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TArg | Argument type.
TJobRes | Type of job result.
TRes | Type of final task result.

#### ExecuteAsync<TArg, TJobRes, TRes>(Type, TArg)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TArg, TJobRes, TRes>(Type taskType, TArg taskArg)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Type | taskType | Task type.
TArg | taskArg | Optional task argument.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TArg | Argument type.
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteAsync<TArg, TJobRes, TRes>(Type, TArg, CancellationToken)

Executes given task on the grid projection. For step-by-step explanation of task execution process refer to IComputeTask<TArg, TJobRes, TRes> documentation.

##### Declaration

    Task<TRes> ExecuteAsync<TArg, TJobRes, TRes>(Type taskType, TArg taskArg, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Type | taskType | Task type.
TArg | taskArg | Optional task argument.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TArg | Argument type.
TJobRes | Type of job result.
TRes | Type of reduce result.

#### ExecuteJavaTask<TRes>(String, Object)

Executes given Java task on the grid projection. If task for given name has not been deployed yet, then 'taskName' will be used as task class name to auto-deploy the task.

##### Declaration

    TRes ExecuteJavaTask<TRes>(string taskName, object taskArg)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | taskName | Java task name
System.Object | taskArg | Optional argument of task execution, can be null.

##### Returns

Type | Description
--- | ---
TRes | Task result.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of task result.

#### ExecuteJavaTaskAsync<TRes>(String, Object)

Executes given Java task on the grid projection. If task for given name has not been deployed yet, then 'taskName' will be used as task class name to auto-deploy the task.

##### Declaration

    Task<TRes> ExecuteJavaTaskAsync<TRes>(string taskName, object taskArg)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | taskName | Java task name
System.Object | taskArg | Optional argument of task execution, can be null.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of task result.

#### ExecuteJavaTaskAsync<TRes>(String, Object, CancellationToken)

Executes given Java task on the grid projection. If task for given name has not been deployed yet, then 'taskName' will be used as task class name to auto-deploy the task.

##### Declaration

    Task<TRes> ExecuteJavaTaskAsync<TRes>(string taskName, object taskArg, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | taskName | Java task name
System.Object | taskArg | Optional argument of task execution, can be null.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task<TRes> | Task result.

##### Type Parameters

Name | Description
--- | ---
TRes | Type of task result.

#### Run(IComputeAction)

Executes provided job on a node in this grid projection.

##### Declaration

    void Run(IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeAction | action | Job to execute.

#### Run(IEnumerable<IComputeAction>)

Executes collection of jobs on Ignite nodes within this grid projection.

##### Declaration

    void Run(IEnumerable<IComputeAction> actions)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeAction> | actions | Jobs to execute.

#### RunAsync(IComputeAction)

Executes provided job on a node in this grid projection.

##### Declaration

    Task RunAsync(IComputeAction action)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeAction | action | Job to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### RunAsync(IComputeAction, CancellationToken)

Executes provided job on a node in this grid projection.

##### Declaration

    Task RunAsync(IComputeAction action, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
IComputeAction | action | Job to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### RunAsync(IEnumerable<IComputeAction>)

Executes collection of jobs on Ignite nodes within this grid projection.

##### Declaration

    Task RunAsync(IEnumerable<IComputeAction> actions)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeAction> | actions | Jobs to execute.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task |

#### RunAsync(IEnumerable<IComputeAction>, CancellationToken)

Executes collection of jobs on Ignite nodes within this grid projection.

##### Declaration

    Task RunAsync(IEnumerable<IComputeAction> actions, CancellationToken cancellationToken)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Collections.Generic.IEnumerable<IComputeAction> | actions | Jobs to execute.
System.Threading.CancellationToken | cancellationToken | The cancellation token.

##### Returns

Type | Description
--- | ---
System.Threading.Tasks.Task | Task.

#### WithExecutor(String)

Gets instance of the compute API associated with custom executor. All tasks and closures submitted to returned instance will be processed by this executor on both remote and local nodes. If an executor with the given name doesn't exist, task will be processed in default ("public") pool.

Executor should be defined in ExecutorConfiguration.

##### Declaration

    ICompute WithExecutor(string executorName)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | executorName | Executor name.

##### Returns

Type | Description
--- | ---
ICompute | New Compute instance associated with a custom executor.

#### WithKeepBinary()

Sets keep-binary flag for the next executed Java task on this projection in the current thread so that task argument passed to Java and returned task results will not be deserialized.

##### Declaration

    ICompute WithKeepBinary()

##### Returns

Type | Description
--- | ---
ICompute | This compute instance for chaining calls.

#### WithNoFailover()

Sets no-failover flag for the next executed task on this projection in the current thread. If flag is set, job will be never failed over even if remote node crashes or rejects execution. When task starts execution, the no-failover flag is reset, so all other task will use default failover policy, unless this flag is set again.

##### Declaration

    ICompute WithNoFailover()

##### Returns

Type | Description
--- | ---
ICompute | This compute instance for chaining calls.

#### WithNoResultCache()

Disables caching for the next executed task in the current thread.

##### Declaration

    ICompute WithNoResultCache()

##### Returns

Type | Description
--- | ---
ICompute | This compute instance for chaining calls.

#### WithTimeout(Int64)

Sets task timeout for the next executed task on this projection in the current thread. When task starts execution, the timeout is reset, so one timeout is used only once.

##### Declaration

    ICompute WithTimeout(long timeout)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Int64 | timeout | Computation timeout in milliseconds.

##### Returns

Type | Description
--- | ---
ICompute | This compute instance for chaining calls.