Gather/Scatter
Suppose we want to perform a parallel matrix-vector product
Start with sequential dot product based algorithm for y=Ax
void Serial_matrix_vector_prod(
float y[] /* out m-vec*/) {
for (k = 0; k < m; k++) {
y[k] = y[k] + A[k][j]*x[j];
} /* Serial_matrix_vector_prod */