нерптимизированный вариант
Поскольку зависимость по данным отсутствует, цикл можно разбить на два. Первый будет обрабатывать ячейки от 0 до XXL/2, а второй — от XXL/2 до XXL. Тогда на двухпроцессорной машине скорость выполнения цикла практически удвоится.
/* поток A */
for (i=0; i<XXL/2; i++)
a[i] = a[i] + b[i] * c[i];
/* поток B */
for (i=XXL/2; i<XXL; i++)
a[i] = a[i] + b[i] * c[i];