暗記メーカー
ログイン
Паралелльное хуемирование
  • r444n

  • 問題数 100 • 5/13/2024

    記憶度

    完璧

    15

    覚えた

    35

    うろ覚え

    0

    苦手

    0

    未解答

    0

    アカウント登録して、解答結果を保存しよう

    問題一覧

  • 1

    <question> С какими недостатками связано применение многопоточности для параллельных вычислений?

    <variant> для взаимодействия потоков требуется применение специальных средств обмена сообщениями

  • 2

    <question> В каких состояниях может находиться поток в процессе работы, если он не выполняет операций ввода-вывода, обращений к функциям ядра и не приостанавливается другими потоками?

    <variant> "Готовый", "Выполняющийся"

  • 3

    <question> К чему приводит вызов метода Thread.Sleep(0)?

    <variant> текущий поток снимается с процессора, не дожидаясь завершения выделенного кванта времени

  • 4

    <question> В чём преимущества использования пула потоков для параллельной обработки?

    <variant> нет накладных расходов на создание и завершение потоков и распределение рабочих элементов по потокам осуществляется автоматически

  • 5

    <question> Число рабочих потоков в пуле зависит от следующих факторов:

    <variant> возможности вычислительной системы (число процессоров/ядер), загруженность вычислительной системы, параметры пула потоков

  • 6

    <question> Объект ThreadPool позволяет ...

    <variant> автоматизировать распределение пользовательских задач по рабочим потокам пула

  • 7

    <question> При каких условиях поток находится в состоянии "Готовый"?

    <variant> выполняющийся поток выгружен по истечении кванта времени, объект типа Thread запущен с помощью метода Start

  • 8

    <question> В рабочей функции потока используется переменная SomeVal типа int. В каких случаях переменная является локальной для каждого потока?

    <variant> переменная класса, используемого в рабочей функции, объявлена с атрибутом ThreadStaticAttribute, переменная объявлена внутри рабочей функции потока

  • 9

    <question> Второй аргумент в вызове метода пула потоков задает ... ThreadPool.QueueUserWorkItem(f, 5);

    <variant> аргумент метода f

  • 10

    <question> Локальное хранилище потоков может использоваться для хранения ...

    <variant> нет правильных ответов

  • 11

    <question> Для передачи управления другому потоку, конкурирующему за ядро процессора, на котором выполняется данный поток без прекращения его работы, можно использовать записи:

    <variant> Thread.Yield или Thread.Sleep(0)

  • 12

    <question> Применение многопроцессного выполнения связано со следующими проблемами:

    <variant> накладные расходы, связанные с переключением контекста разных процессов и взаимодействие процессов с помощью специальных средств

  • 13

    <question> Для выполнения пользовательских задач с помощью пула потоков необходимо ...

    <variant> использовать метод для добавления рабочих элементов QueueUserWorkItem

  • 14

    <question> Метод Thread.Yield игнорируется в случае, когда ...

    <variant> нет конкуренции за ядро, на котором выполняется текущий поток

  • 15

    <question> Преимущества использования многопоточности для параллельных вычислений по сравнению с применением многопроцессности связаны с тем, что:

    <variant> потоки работают в едином адресном пространстве, переключение потоков одного процесса занимает меньшее время по сравнению с переключением потоков разных процессов

  • 16

    <question> Для ожидания завершения обработки пользовательских рабочих элементов пулом потоков можно использовать ...

    <variant> нет правильных вариантов

  • 17

    <question> В какое состояние может перейти поток после завершения операции ввода-вывода, если до операции поток выполнялся?

    <variant> "Готовый"

  • 18

    <question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 void work(int i); int main () { #pragma omp parallel { #pragma omp for for (int i=0;i<N;i++) work (i); } }

    <variant> зависит от реализации компилятора

  • 19

    <question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for schedule(static) for (int i=0;i<N;i++) work (i); } }

    <variant> статический (static)

  • 20

    <question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_static); #pragma omp for schedule(dynamic) for (int i=0;i<N;i++) work (i); } }

    <variant> динамический (dynamic)

  • 21

    <question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_static); #pragma omp for for (int i=0;i<N;i++) work (i); } }

    <variant> зависит от реализации компилятора

  • 22

    <question> Определите способ распределения витков цикла между нитями для следующего фрагмента программы: #define N 100 #include "omp.h" void work(int i); int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for for (int i=0;i<N;i++) work (i); } }

    <variant> зависит от реализации компилятора

  • 23

    <question> Определите количество нитей, между которыми будет распределена работа в параллельной области: #define N 100 #include "omp.h" void work(int i); int main () { omp_set_num_threads(2); #pragma omp parallel num_threads(4) { #pragma omp for for (int i=0;i<N;i++) work (i); } }

    4

  • 24

    <question> Определите количество нитей, между которыми будет распределена работа в параллельной области: #include "omp.h" void work(int i); int main () { int n; n=10; omp_set_num_threads(2); #pragma omp parallel num_threads(4) if (n>20) { #pragma omp for for (int i=0;i<n;i++) work (i); } }

    1

  • 25

    <question> Определите количество нитей, между которыми будет распределена работа в параллельной области: #include "omp.h" void work(int i); int main () { int n; n=10; #pragma omp parallel num_threads(4) if (n>20) { #pragma omp for for (int i=0;i<n;i++) work (i); } }

    1

  • 26

    <question> Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:

    1

  • 27

    <question> Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(1); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:

    2

  • 28

    <question> Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } printf("Counter=%d\n",counter); } Определите значение переменной counter по завершении выполнения этой программы:

    2

  • 29

    <question> Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=omp_get_team_size(omp_get_level ()); printf("Team Size=%d\n",team_size); }

    1

  • 30

    <question> Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(omp_get_level ()); } } printf("Team Size=%d\n",team_size); }

    2

  • 31

    <question> Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(0); } } printf("Team Size=%d\n",team_size); }

    1

  • 32

    <question> Каждая РС локальной вычислительной сети располагает копией СУБД. Организован циклический обмен сегментами БД с тактом Т0 и с количеством т циркулирующих сегментов. Определите целесообразность построения БД с циркулирующей между РС информацией. Т0 = 0,001 с, m = 100, λ =100(запросов в сек.), μ = 500(запросов в сек.)

    неравенство, определяющее целесообразность, не выполняется

  • 33

    <question> Каждая РС локальной вычислительной сети располагает копией СУБД. Организован циклический обмен сегментами БД с тактом Т0 и с количеством т циркулирующих сегментов. Определите целесообразность построения БД с циркулирующей между РС информацией. Т0= 0,001 с, m = 40, λ=180(запросов в сек.), μ = 200 (запросов в сек.)

    <variant> неравенство, определяющее целесообразность, выполняется

  • 34

    <question> Каждая РС локальной вычислительной сети располагает копией СУБД. Организован циклический обмен сегментами БД с тактом Т0 и с количеством т циркулирующих сегментов. Определите целесообразность построения БД с циркулирующей между РС информацией. Т0 = 0,0005 с, m = 50, λ=350(запросов в сек.), μ = 400 (запросов в сек.)

    <variant> целесообразно

  • 35

    <question>// struct_program.cpp

    <variant>однострочный комментарий

  • 36

    <question>Юникод - стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков

    <variant>верно

  • 37

    <question>Заголовочные файлы и имя подключаемых библиотек - синонимы.

    <variant>верно

  • 38

    <question>Такой комментарий начинается с символов /* и заканчивается символами */.

    <variant>многострочный комментарий

  • 39

    <question>cout << "My first program!" << endl; Выберите верное утверждение

    <variant> endl Передает в поток символ новой строки и сбрасывает поток

  • 40

    <question>system("pause");

    <variant>выполняет задержку с последующим выводом сообщения: Для продолжения нажмите любую клавишу…

  • 41

    <question>\r Этот управляющий символ означает

    <variant>возврат каретки в начало строки

  • 42

    <question>\n Этот управляющий символ означает

    <variant>возврат каретки в начало строки

  • 43

    <question>\n Этот управляющий символ означает

    <variant>новая строка

  • 44

    <question>\t Этот управляющий символ означает

    <variant>горизонтальная табуляция

  • 45

    <question>\v Этот управляющий символ означает

    <variant>вертикальная табуляция

  • 46

    <question>\a Этот управляющий символ означает

    <variant>сигнал бипера (спикера) компьютера

  • 47

    <question>\» Этот управляющий символ означает

    <variant>двойные кавычки

  • 48

    <question>cout << "\t\tcontrol characters C++";

    <variant>две табуляции и печать сообщения

  • 49

    <question>cout << "\'formatting\' output with \"escape characters\""; Выберите верное сообщение

    <variant>одинарные и двойные кавычки

  • 50

    <question>cout << "\a\a\a\a\a\a\a\a\a\a\a\a\a\a" <<endl;

    <variant>звуковой сигнал биппера

  • 51

    <question>Все управляющие символы, при использовании, обрамляются двойными кавычками, если необходимо вывести какое-то сообщение, то управляющие символы можно записывать сразу в сообщении, в любом его месте

    <variant>верно

  • 52

    <question>a1=1; a2=2; sum= a1 + a2; cout << a1 << "+" << a2 <<"=" << sum << endl;

    <variant>Результат/1+2=3

  • 53

    <question>a1=1; a2=a1+2; sum= a1 + a2; cout << a1 <<"+" << a2 <<"=" << sum << endl;

    <variant>Результат/1+3=4

  • 54

    <question>double a1; cin >> a1;

    <variant>прочитать число в переменную а1

  • 55

    <question>cout <<"8%4=" <<8 % 4<< endl; Здесь % - остаток от деления

    <variant>8%4=0

  • 56

    <question>cout <<"7%4=" <<7 % 4<< endl; Здесь % - остаток от деления

    <variant>7%4=3

  • 57

    <question>cout <<"2%4=" <<2 % 4<< endl; Здесь % - остаток от деления

    <variant>2%4=2

  • 58

    <question>cout <<"12%3=" <<12 %3<< endl;Здесь % - остаток от деления

    <variant>12%3=0

  • 59

    <question>cout <<"27%11=" << 27 % 11 << endl; Здесь % - остаток от деления

    <variant>27%11= 5

  • 60

    <question>bool boolean = 25; Тип переменной

    <variant>целочисленный (логический) тип данных в диапазоне 0 - 255

  • 61

    <question>ASCII (от англ. American Standard Code for Information Interchange) - американский стандартный код для обмена информацией

    <variant>верно

  • 62

    <question>Согласно ASCII десятичный код английской буквы A равен 65. Десятичный код английской буквы B равен

    <variant>66

  • 63

    <question>Согласно ASCII десятичный код английской буквы A равен 65. Шестнадцатиричный код английской буквы B равен

    <variant>42

  • 64

    <question>Согласно ASCII десятичный код английской буквы A равен 65. Двоичный код английской буквы B равен

    <variant>1000010

  • 65

    <question>Согласно ASCII десятичный код английской буквы A равен 65. Шестнадцатиричный код английской буквы А равен

    41

  • 66

    <question>Согласно ASCII десятичный код английской буквы A равен 65. Двоичный код английской буквы А равен

    <variant>1000001

  • 67

    <question>Согласно ASCII десятичный код символа / (слэш) равен 47. Шестнадцатиричный код этого символа равен

    <variant>2F

  • 68

    <question>Согласно ASCII десятичный код символа нуль равен 48. Шестнадцатиричный код этого символа равен

    30

  • 69

    <question>Согласно ASCII десятичный код символа / (слэш) равен 47. Двоичный код этого символа равен

    <variant>101111

  • 70

    <question>Согласно ASCII десятичный код символа единица равен 49. Шестнадцатиричный код этого символа равен

    31

  • 71

    <question>Согласно ASCII десятичный код символа единица равен 49. Двоичный код этого символа равен

    <variant>110001

  • 72

    <question>В С++ существует ... операций присваивания

    6

  • 73

    <question>В языке С++ определены ... операций присваивания

    6

  • 74

    <question>В С++ существует шесть операций присваивания: = присваивание, += присваивание- сложение, -= присваивание-вычитание, *= присваивание-умножение, /= присваивание-деление, %= присваивание-остаток от деления

    variant>верно

  • 75

    <question>= , += , -= , *= , /= , %= Это шесть операций

    <variant>присваивания

  • 76

    <question>value += 256; Это

    <variant>value = value + 256;

  • 77

    <question>value -= 256; Это

    <variant>value = value - 256;

  • 78

    <question>value *= 25; Это

    <variant>value = value * 25;

  • 79

    <question>value /= 25; Это

    <variant>value = value / 25;

  • 80

    <question>value %= 25; Это

    <variant>value = value % 25;

  • 81

    <question>value = 25; Это

    <variant>значение переменной value равно 25

  • 82

    <question>value = 26; Это

    <variant>значение переменной value равно шестнадцатиричное 1A

  • 83

    <question>value = 28; Это

    <variant>значение переменной value равно двоичное 11100

  • 84

    <question>value = 23; Это

    <variant>значение переменной value равно 23

  • 85

    <question>Инкремент это

    <variant>увеличение на единицу

  • 86

    <question>Декремент - это

    <variant>уменьшение на единицу

  • 87

    <question>int value = 2011; cout << "++value = " << ++value << endl;

    <variant>Результат\++value = 2012

  • 88

    <question>int value = 2011; cout << "value++ = " << value++ << endl;

    <variant> value++ в cout: значение value печатает, потом значение value увеличивается на единицу

  • 89

    <question>int value = 2011; cout << "--value = " << --value << endl;

    <variant>Результат\--value = 2010

  • 90

    <question>int value = 2011; cout << "--value= " << --value << endl;

    <variant>--value в cout: значение value уменьшается на единицу, потом cout печатает value

  • 91

    <question>int value = 2010; cout << "++value= " << ++value << endl;

    <variant>Результат\++value = 2011

  • 92

    <question>int value = 2010; cout << "value++ = " << value++ << endl;

    <variant> value++ в cout: печатает value, потом значение value увеличивается на единицу

  • 93

    <question>int value = 2011; cout << "value-- = " << value-- << endl;

    <variant>Результат\value-- = 2011

  • 94

    <question>int value = 2020; cout << "value-- = " << value-- << endl;

    <variant> value— в cout печатает value, потом значение value уменьшается на единицу

  • 95

    <question>int value = 2011; cout << "++value = " << ++value; cout << " value = " << value << endl;

    <variant>Результат\++value = 2012 value = 2012

  • 96

    <question>int value = 2011; cout << "value++ = " << value++; cout << " value = " << value << endl;

    <variant> Результат\value++ = 2011 value = 2012

  • 97

    <question>int value = 2011; cout << "--value = " << --value; cout << " value = " << value << endl;

    <variant>Результат\--value = 2010 value = 2010

  • 98

    <question>int value = 2011; cout << "value-- = " << value--; cout << " value = " << value << endl;

    <variant> Результат\value-- = 2011 value = 2010

  • 99

    <question>int value = 2020; cout << "value++ = " << value++; cout << " value = " << value << endl;

    <variant>Результат\value++ = 2020 value = 2021

  • 100

    <question>int value = 2020; cout << "++value = " << ++value; cout << " value = " << value << endl;

    <variant> Результат\++value = 2021 value = 2021