Defining Your Own Collective Operations


Up: Collective Communications in MPI Next: Sample user function Previous: Built-in Collective Computation Operations


MPI_Op_create(user_function, commute, op) 
MPI_Op_free(op) 

user_function(invec, inoutvec, len, datatype)

The user function should perform
inoutvec[i] = invec[i] op inoutvec[i]; 
for i from 0 to len-1.

user_function can be non-commutative (e.g., matrix multiply).



Up: Collective Communications in MPI Next: Sample user function Previous: Built-in Collective Computation Operations