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

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

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

Следующий псевдокод
1.   i  number;2.   for j = 2 to number3.     if (i == 1) break; 4.     r  i % j;5.     if (r == 0)6.       i  i / j;7.       save_divisor(number, j);8.       j  j - 1;

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

Варианты ответа
раскладывает число number на простые сомножители(Верный ответ)
вычисляет факториал числа number
раскладывает число number на сумму простых слагаемых
Похожие вопросы
Следующий код
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--;      }    }
Пусть в программе присутствует следующий код:
    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?
Следующая функция
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
Пусть в программе присутствует следующий код:
#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 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 24…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?