\input double a[3]; double adderSeq(int n) { double s = 0.0; for (int i = 0; i < n; i++) { s += a[i]; } return s; } double adderPar(int m) { double s = 0.0; int mutex = 0; \proc workers[m]; void worker(int i) { \when (mutex == 0) mutex = 1; s += a[i]; mutex = 0; } for (int i = 0; i < m; i++) { workers[i] = \spawn worker(i); } for (int j = 0; j < m; j++) { \wait workers[j]; } return s; } void main() { double seq; double par; seq = adderSeq(3); par = adderPar(3); \assert seq == par; }