Нужно было написать программу, в которой объявлен массив из 16000 элементов и инициализирован таким образом, что значение элемента массива равно его порядковому номеру. Затем создать результирующий массив, в котором (за исключением крайних элементов) будут средние значения входного массива: b[i] = (a[i-1] + a[i] + a[i+1])/3.
#include <stdio.h>
#include <omp.h>
#include <stdlib.h>
int main(int argc, char argv[])
{
#pragma omp parallel num_threads(8)
{
int arrSize = 16000;
int arr [arrSize], resultArr[arrSize/3 + 1];
#pragma omp for schedule(dynamic,1)
for (int i = 0; i < arrSize; i++) {
printf("Thread %d is running number %d\n", omp_get_thread_num(), i);
arr[i] = 1;
}
#pragma omp for schedule(static, 4)
for (int i = 1; i < arrSize - 1; i++) {
resultArr[i] = (arr[i - 1] + arr[i] + arr[i + 1]) / 3;
}
}
}