База ответов ИНТУИТ

Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)

<<- Назад к вопросам

Пусть в программе присутствует следующий код:
    for (int j = 2; j < 1000; j++)    {      if (number == 1) break;       int r;      r = number % j;      if (r == 0)      {        number /= j;        divisors[idx].push_back(j);        j--;      }    }    
Возможна ли векторизация данного цикла средствами компилятора для исполнения на Intel Xeon Phi?

(Отметьте один правильный вариант ответа.)

Варианты ответа
векторизация возможна
нет, между итерациями есть зависимость(Верный ответ)
нет, длина цикла не кратна 2
Похожие вопросы
Пусть в программе присутствует следующий код:
#define LOOP_SIZE 130…int rr[LOOP_SIZE];for(int k = 0; k < LOOP_SIZE; k++){  rr[k] = number % k;}
Возможна ли векторизация данного цикла средствами компилятора, для исполнения на Intel Xeon Phi?
Пусть в программе присутствует следующий код:
#define LOOP_SIZE 128…int rr[LOOP_SIZE];for(int k = 0; k < LOOP_SIZE; k++){  rr[k] = number % k;}
Возможна ли векторизация данного цикла средствами компилятора для исполнения на Intel Xeon Phi?
Пусть в программе присутствует следующий код:
#define LOOP_SIZE 16…int rr[LOOP_SIZE];for(int k = 0; k < LOOP_SIZE; k++){  rr[k] = number % k;}
Возможна ли векторизация данного цикла средствами компилятора, для исполнения на Intel Xeon Phi?
Пусть в программе присутствует следующий код:
#define LOOP_SIZE 16…int rr[LOOP_SIZE];…p = 1;for(int k = 0; k < LOOP_SIZE; k++){  p *= rr[k];}
Возможна ли векторизация данного цикла средствами компилятора, для исполнения на Intel Xeon Phi?
Пусть в программе присутствует следующий код:
#define LOOP_SIZE 30…int rr[LOOP_SIZE];…p = 1;for(int k = 0; k < LOOP_SIZE; k++){  p *= rr[k];}
Возможна ли векторизация данного цикла средствами компилятора, для исполнения на Intel Xeon Phi?
Пусть в программе присутствует следующий код:
#define LOOP_SIZE 128…int rr[LOOP_SIZE];…p = 1;for(int k = 0; k < LOOP_SIZE; k++){  p *= rr[k];}
Возможна ли векторизация данного цикла средствами компилятора, для исполнения на Intel Xeon Phi?
Следующий код
int idx = number;    for (int j = 2; j < number; j++)    {      if (idx == 1) break;       int r;      r = idx % j;      if (r == 0)      {        idx /= j;        divisors[number].push_back(j);        j--;      }    }
Следующая функция
void factorization() {#pragma omp parallel for  for (int i = 1; i < NUM_NUMBERS; i++)  {    int number = i;    int idx = number;    for (int j = 2; j < idx; j++)    {      if (number == 1) break;       int r;      r = number % j;      if (r == 0)      {        number /= j;        divisors[idx].push_back(j);        j--;      }    }      }}
факторизует числа в диапазоне от 1 до NUM_NUMBERS. Добавление к прагме parallel параметра schedule(dynamic) уменьшит время
Следующая функция
void factorization() {#pragma omp parallel for  for (int i = 1; i < NUM_NUMBERS; i++)  {    int number = i;    int idx = number;    for (int j = 2; j < idx; j++)    {      if (number == 1) break;       int r;      r = number % j;      if (r == 0)      {        number /= j;        divisors[idx].push_back(j);        j--;      }    }      }}
факторизует числа в диапазоне от 1 до NUM_NUMBERS. Добавление к прагме parallel параметра schedule(static, 1) приведет к
Следующая функция
void factorization() {#pragma omp parallel for  for (int i = 1; i < NUM_NUMBERS; i++)  {    int number = i;    int idx = number;    for (int j = 2; j < idx; j++)    {      if (number == 1) break;       int r;      r = number % j;      if (r == 0)      {        number /= j;        divisors[idx].push_back(j);        j--;      }    }      }}
факторизует числа в диапазоне от 1 до NUM_NUMBERS. Добавление к прагме parallel параметра schedule(static, chunk) при правильном выборе chunk