1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
pvm_reduce Scilab // Group Scilab function pvm_reduce
NAME
pvm_reduce - Performs a reduce operation over members of the specified
group.
CALLING SEQUENCE
[buff, info] = pvm_reduce(func, buff, msgtag, group, rootginst)
PARAMETERS
func : string, defines the operation performed on the global
data. Should be : Max, Min, Sum or Pro.
buff : scalar, local scilab variable. On return, the data array on
the root will be overwritten with the result of the reduce operation
over the group.
msgtag : integer, message tag supplied by the user. msgtag
should be >= 0. It allows the user's program to
distinguish between different kinds of messages.
rootginst : integer, instance number of group member who gets the
result.
info : integer, status code returned by the routine. Values
less than zero indicate an error.
DESCRIPTION
pvm_reduce performs global operations such as max, min, sum or
product over all the tasks in a group. All group members call
pvm_reduce with their local data, and the result of the reduction
operation appears on the user specified root task root. The root
task is identified by its instance number in the group. Max
and Min are implemented for scalar datatypes (double, complex). For
complex values the minimum [maximum] is that complex pair with
the minimum [maximum] modulus. Sum and Product are implemented for
scalar datatypes. Note: pvm_reduce does not block. If a task
calls pvm_reduce and then leaves the group before the root has
called pvm_reduce an error may occur.
EXAMPLE
A = rand(5,5);
[buff, info] = pvm_reduce("Max", A, msgtag, "Workers", 0)
SEE ALSO
pvm_bcast, pvm_barrier, pvm_psend, pvm_getinst, pvm_gsize, pvm_joingroup,
pvm_lvgroup
|