Главная / Суперкомпьютерные технологии / Технологии построения и использования кластерных систем

Технологии построения и использования кластерных систем - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: Курс направлен на представление обзора технологий построения и эффективного использования одного из наиболее широкого распространенного класса параллельных систем – кластеров.
Какие из формулировок эмпирического закона Мура верны:
(1) производительность вычислительных систем удваивается каждый 18 месяцев
(2) количество вычислительных систем в мире удваивается каждые 18 месяцев
(3) доступная вычислительная мощность удваивается каждые 18 месяцев
Программный продукт Intel Thread Checker решает следующие задачи:
(1) позволяет полностью гарантировать корректность работы параллельной программы
(2) позволяет повысить производительность параллельной программы
(3) позволяет обеспечить максимальную утилизацию вычислительных ресурсов
(4) помогает в поиске ошибок в параллельной программе
Какова цель балансировки нагрузки между потоками:
(1) обеспечить корректность работы параллельной программы
(2) повысить производительность параллельной программы
(3) обеспечить максимальную утилизацию вычислительных ресурсов
Какие основные операционные системы используются для организации параллельных вычислений на кластерах:
(1) операционные системы семейства Windows
(2) Unix - подобные операционные системы
(3) операционные системы реального времени
Зачем тестируют производительность кластерных систем:
(1) чтобы сравнить полученную вычислительную систему с другими аналогичными
(2) выявить "узкие места" в тестируемой вычислительной системе
(3) определить, достаточна ли мощность кластера для решения конкретной задачи в заданное время
Для компиляции теста Linpack следующие компоненты являются необходимыми:
(1) компилятор языка C
(2) реализация MPI
(3) реализация библиотеки BLAS
Для организации параллельных вычислений в вычислительных системах с распределенной памятью необходимо:
(1) обеспечить информационное взаимодействие между процессорами
(2) выделить информационно независимые фрагменты вычислений, провести их программную реализацию, разместить полученные части программы на разных процессорах и затем организовать информационное взаимодействие между процессорами
(3) распределить исполняемые модули параллельной программы по узлам системы
Для организации параллельных вычислений в вычислительных системах с общей памятью необходимо:
(1) обеспечить информационное взаимодействие между потоками
(2) выделить информационно независимые фрагменты вычислений, провести их программную реализацию, разместить полученные части программы в разных потоках и затем организовать информационное взаимодействие между потоками таким образом, что доступ к общей памяти для записи осуществляется только синхронно
(3) распределить исполняемые модули параллельной программы по ядрам процессора
Основным инструментом поиска ошибок в программах является:
(1) отладчик
(2) профилировщик
(3) компилятор
Какие системы были наиболее широко представлены в первом списке TOP500:
(1) MPP системы
(2) SMP системы
(3) кластерные системы
Назначение программного продукта Intel Thread Checker состоит в следующем:
(1) поиск мест с возможным недетерминированным поведением многопоточной программы, написанной как на основе библиотеки потоков (Windows или POSIX threads), так и с использованием технологии OpenMP
(2) поиск мест с возможным недетерминированным поведением программы, написанной с использованием технологии MPI
(3) отладка и оптимизация параллельных программ
Подход, состоящий в разделении множества чисел на одинаковые части по числу потоков (например, первый поток получает множество чисел от 1 до 50000, второй - от 50001 до 100000; двухъядерный процессор):
(1) обеспечивает оптимальную загрузку многоядерного процессора
(2) демонстрирует плохую производительность
(3) приводит к тому, что приложение большую часть времени проводит в режиме последовательного выполнения
Какие дополнительные возможности предоставляет стандарт HPC Basic Profile:
(1) проводить удаленную отладку задач, запущенных через High Performance Server 2008, в среде Microsoft Visual Studio 2008
(2) отправлять задания на кластер под управлением High Performance Server 2008 из операционных систем и языков программирования, не поддерживаемых Microsoft
(3) возможность запуска параллельных задач, скомпилированных с MS MPI, в Linux и других операционных системах, поддерживающих стандарт HPC Basic Profile
toy benchmarks это:
(1) тесты, используемые для оценки производительности компьютерных игр
(2) метод тестирования, при котором для тестирования производительности используются ресурсоемкие компьютерные игры
(3) маленькие тесты, длиной в несколько сот строк исходного кода
Intel® Math Kernel Library Cluster Edition необходима для компиляции теста Linpack, потому что:
(1) содержит реализацию BLAS
(2) содержит реализацию MPI
(3) содержит компилятор С
Под параллельной программой в рамках MPI понимается:
(1) множество одновременно выполняемых процессов
(2) множество одновременно выполняемых потоков
(3) множество одновременно работающих процессоров
Под параллельной программой в рамках OpenMP понимается:
(1) множество одновременно выполняемых потоков
(2) множество одновременно выполняемых процессов
(3) множество одновременно работающих процессоров
Окно "Call Stack" в Microsoft Visual Studio 2008:
(1) показывает все функции, которые могут вызывать текущую функцию
(2) показывает стек вызова функций текущего потока
(3) показывает статистическую информацию о числе вызовов функций выбранного класса
Пиковая производительность вычислительной системы:
(1) зависит только от тактовой частоты процессора
(2) равна "тактовая частота процессора на число ядер число инструкций, выполняемых за один такт"
(3) определяется на основе общепринятых тестов
Процесс оптимизации параллельных программ обычно устроен следующим образом:
(1) сбор информации о работе программы, выявление "узких мест", обнаружение причины падения производительности, устранение этих причин
(2) сбор информации о работе программы, выявление "узких мест", отладка, обнаружение причины падения производительности, устранение этих причин
(3) сборка приложения в режиме отладки (конфигурация Debug), инструментирование бинарного кода, запуск программы, оптимизация программы
Подход, состоящий в разделении множества чисел между потоками на четные и нечетные (двухъядерный процессор):
(1) обеспечивает оптимальную загрузку многоядерного процессора
(2) демонстрирует плохую производительность
(3) приводит к тому, что приложение большую часть времени проводит в режиме последовательного выполнения
Какая операционная система должна быть установлена на узлах под управлением High Performance Server 2008:
(1) любая операционная система семейства Windows
(2) операционная система Windows Server 2008 x64
(3) операционная система для научных проектов Microsoft Singularity
Тест производительности Linpack относится к классу:
(1) ядер
(2) синтетических тестов
(3) toy benchmarks
Для запуска теста Linpack, скомпилированного в ходе лабораторной работы, необходимо наличие следующих компонентов:
(1) MPICH2 for Microsoft Windows
(2) Intel® Math Kernel Library Cluster Edition
(3) Intel® C++ Compiler for Windows
(4) Intel® Visual Fortran Compiler for Windows
Среди предусмотренных в составе MPI операций передачи сообщений различают:
(1) парные и коллективные операции
(2) парные и групповые операции
(3) индивидуальные и коллективные операции
Среди предусмотренных в составе OpenMP директив, для организации параллельных фрагментов, существует:
(1) #pragma omp paralle
(2) #paralle
(3) #pragma paralle for
Окно "Threads" в Microsoft Visual Studio 2008:
(1) позволяет переключаться между потоками текущего процесса
(2) позволяет переключаться между всеми потоками параллельной MPI программы
(3) сообщает об обнаруженных проблемах в синхронизации потоков
Лидер 31-го списка TOP500 система "Roadrunner":
(1) построена на процессорах PowerXCell™ 8i
(2) включает процессоры компании AMD
(3) включает процессоры компании Sun
Под "гонками данных" понимается ситуация, когда:
(1) несколько потоков работают с разделяемыми данными, и конечный результат зависит от соотношения скоростей потоков
(2) несколько потоков работают с данными, локализованными для каждого из потоков, и конечный результат собирается в одну переменную
(3) не хватает памяти для размещения данных
Подход, состоящий в разделении множества чисел на последовательность пачек небольшой длины с последующей последовательной раздачей этих пачек потокам (пачки раздаются поровну), приводит к следующим результатам:
(1) достигается достаточно равномерная загрузка потоков
(2) достигается плохая производительность
(3) приложение большую часть времени проводит в режиме параллельного выполнения
Какие сети можно определить в High Performance Server 2008:
(1) открытая сеть (public network) - корпоративная сеть организации. Через открытую сеть пользователи подключаются к головному узлу для управления своими заданиями
(2) сеть с доступом в интернет (inter-network) - сеть, имеющая доступ в интернет. Через эту сеть происходит загрузка обновлений ПО
(3) закрытая сеть (private network) - сеть для административного трафика между вычислительными узлами кластера и головным узлом
(4) MPI-сеть (MPI network) - сеть, через которую идет трафик MPI программ
(5) HPC-сеть (HPC network) - сеть, через которую идет трафик программ, не использующих для коммуникации MPI
Рейтинг TOP500 составляется по результатам теста:
(1) Linpack
(2) NAS Parallel Benchmarks
(3) Netperf
Для проведения серии экспериментов, различающихся размерностью задачи, необходимо:
(1) вручную запустить тест по количеству различающихся размерностей
(2) задать в файле HPL.dat несколько размерностей
(3) размерность задачи для теста Linpack неизменна
Все данные для передачи в качестве сообщения MPI описываются с помощью триады:
(1) адрес памяти, количество и тип элементов данных
(2) адрес памяти, ранг процесса-отправителя, используемый коммуникатор
(3) адрес памяти, ранг процесса-получателя, используемый коммуникатор
Среди параметров директивы OpenMP присутствуют:
(1) private (list), где в списке указывается данные, которые нужно сделать локальными для потока
(2) num_process (cnt), для установления количество процессов параллельного фрагмента
(3) num_threads (cnt), для установления количество потоков параллельного фрагмента
Каким образом можно дать указание в окне Watch распечатать 10 первых элементов массива int myArray[10]:
(1) myArray,10
(2) myArray[0-9]
(3) myArray:0…9
Какие из перечисленных систем могут быть отнесены к ускорителям:
(1) ClearSpeed™ Advance™ X620
(2) процессоры PowerXCell™ 8i
(3) ATI FireStream™
К чему приводит неравномерное распределение вычислительной нагрузки между потоками?
(1) к неэффективной работе программы
(2) к ошибкам в процессе вычислений
(3) к нехватке памяти
Какие из следующих утверждений являются верными:
(1) подход с использованием пачек чисел более эффективен, чем подход, в котором первый поток получает первую половину чисел, а второй - вторую половину чисел
(2) для достижения хорошей производительности необходимо разделить работу между потоками так, чтобы все потоки были по возможности равномерно загружены
(3) в случае, если вычислительная нагрузка распределяется существенно неравномерно, результат работы приложения может быть некорректным
Какие возможности предоставляют клиентские утилиты, устанавливаемые через инсталлятор High Performance Server 2008:
(1) возможность включить компьютер в кластер
(2) возможность локальной разработки и отладки параллельных программ, предназначенных для запуска на кластере под управлением High Performance Server 2008
(3) удаленный доступ к вычислительному кластеру
NAS Parallel Benchmarks был разработан:
(1) в 60х годах, при реализации американской лунной программы
(2) в 70х годах, при реализации программы МТКС "Спейс Шаттл"
(3) в 90х в рамках программы Numerical Aerodynamic Simulation
Результатом работы теста Linpack является:
(1) текстовый файл, в котором указана максимальная достигнутая производительность
(2) вывод, который может быть перенаправлен в файл, показывающий достигнутую производительность для каждого проведенного эксперимента
(3) вывод, который может быть перенаправлен в файл, показывающий достигнутую производительность для каждого проведенного эксперимента, и параметры эксперимента
Прием сообщения при помощи функции MPI_Recv может быть инициирован:
(1) до момента, в момент или после момента начала отправки сообщения
(2) только в момент начала отправки сообщения
(3) только после момента начала отправки сообщения
Для распределения итераций циклов между потоками необходимо использовать следующую директиву:
(1) #pragma omp parallel for
(2) #pragma omp parallel for если данная директива находиться внутри параллельного фрагмента
(3) #pragma parallel for
В чем основной недостаток "printf отладки":
(1) необходимость внесения изменений в код программы
(2) отсутствие доступа к некоторым переменным
(3) принципиальная невозможность отладки MPI программ
Какие из перечисленных систем относятся к мини-кластерам:
(1) RenderCube компании RenderCube
(2) T-Edge Mini компании Т-Платформы
(3) NVIDIA® Tesla™ D870 компании NVIDIA
Какие из следующих утверждений являются верными?
(1) для успешного применения профилировщика Intel Thread Profiler желательно при сборке программного проекта указать некоторые специальные ключи компилятора
(2) профилировщик Intel Thread Profiler может быть использован только при работе в операционной системе Linux
(3) профилировщик Intel Thread Profiler позволяет построить критический путь для профилируемой программы
Время, затраченное на следующие операции, может быть причислено к непроизводительным издержкам при работе с потоками:
(1) создание потоков
(2) вычисления, выполняемые потоком
(3) синхронизация между потоками
Основным инструментом поиска ошибок в программах является:
(1) отладчик
(2) профилировщик
(3) компилятор
Тесты НИВЦ МГУ:
(1) включают тест пропускной способности сети
(2) включают тест эффективности основных операций MPI
(3) используют технологию OpenMP
В синхронном режиме передачи завершение функции отправки сообщения происходит:
(1) при получении от процесса-получателя подтверждения о начале приема отправленного сообщения, при этом отправленное сообщение или полностью принято процессом-получателем или находится в состоянии приема
(2) при старте передачи данных процессом-отправителем по сети
(3) при завершении копирования сообщения в системный буфер
При статическом (static) распределении итераций цикла итерации распределяются:
(1) итерации распределяються равномерными порциями
(2) вначале количество итераций отдаваемых потоку мало, а затем увеличивается
(3) вначале количество итераций отдаваемых потоку велико, а затем уменьшается
Какой прием поможет избежать взаимной блокировки процессов при циклической посылке сообщений с использованием функций MPI_Send/MPI_Recv (под циклической посылкой здесь понимается ситуация, когда процесс с индексом i передает информацию процессу с индексом i+1, i=0,…,n-2, а процесс с индексом n-1 передает информацию процессу с индексом 0):
(1) вызов на четных процессорах сначала MPI_Send, а потом MPI_Recv, а на нечетных наоборот: сначала MPI_Recv, затем MPI_Send
(2) добавление функции MPI_Barrier после MPI_Send, перед MPI_Recv
(3) запуск MPI_Send и MPI_Recv в двух разных потоках
Особенностями тестового приложения, имитирующего архитектуру клиент-сервер путем создания клиентского и серверного потока в рамках одного процесса, является:
(1) низкая производительность в случае выделения для каждого запроса отдельного потока
(2) минимизация накладных расходов, вызванная тем, что каждый запрос обрабатывается в отдельном потоке
(3) экономия ресурсов
Окно "Call Stack" в Microsoft Visual Studio 2008:
(1) показывает все функции, которые могут вызывать текущую функцию
(2) показывает стек вызова функций текущего потока
(3) показывает статистическую информацию о числе вызовов функций выбранного класса
Применение неблокирующего способа выполнения обменов позволяет:
(1) уменьшить потери эффективности параллельных вычислений из-за медленных по сравнению с быстродействием процессоров коммуникационных операций
(2) уменьшить нагрузку на коммуникационную сеть
(3) уменьшить нагрузку на процессоры системы
Если по завершению параллельного цикла по алгоритму нет необходимости в синхронизации, тогда в этом случае нужно использовать следующее свойство директивы:
(1) nowait
(2) nobarrier
(3) wait
Работа многих серверов связана с обработкой большого количества коротких запросов от какого-либо удаленного клиента. Какие из следующих схем применимы для организации указанного взаимодействия:
(1) обработка всех запросов в одном потоке
(2) обработка всех потоков в одном запросе
(3) обработка каждого нового запроса в отдельном потоке
(4) организация пула потоков
(5) обработка каждого нового потока в отдельном запросе
Окно "Threads" в Microsoft Visual Studio 2008:
(1) позволяет переключаться между потоками текущего процесса
(2) позволяет переключаться между всеми потоками параллельной MPI программы
(3) сообщает об обнаруженных проблемах в синхронизации потоков
В коллективных операциях передачи данных обязаны принимать участие:
(1) все процессы используемого коммуникатора
(2) некоторые процессы используемого коммуникатора
(3) все процессы используемой группы процессов
Для атомарного выполнения операций всеми потоками могут быть применены следующие директивы OpenMP:
(1) #pragma omp atomic
(2) #pragma omp critical
(3) #pragma omp single
Работа многих серверов связана с обработкой большого количества коротких запросов от какого-либо удаленного клиента. При организации пула потоков наблюдаются следующие особенности:
(1) отсутствует необходимость синхронизации
(2) при поступлении запроса главный поток выбирает свободный поток из пула и передает запрос ему на обработку, если же свободных потоков нет, то запрос помещается в очередь и ждет освобождения одного из потоков в пуле
(3) потоки, однажды созданные, используются многократно, в результате чего издержки на создание и уничтожение потока малы по сравнению с его полезной работой
Каким образом можно дать указание в окне Watch распечатать 10 первых элементов массива int myArray[10]:
(1) myArray,10
(2) myArray[0-9]
(3) myArray:0…9
Операцию редукции данных MPI_Reduce можно описать:
(1) как операцию передачи данных, при которой над собираемыми значениями осуществляется обработка в процессе передачи, при этом результат обработки получает только ведущий процесс
(2) как операцию передачи данных, при которой над собираемыми значениями осуществляется обработка, при этом частичные значения результатов редуцирования получают все процессы параллельной программы
(3) операцию передачи данных, при которой над собираемыми значениями осуществляется та или иная обработка, при этом результат обработки получают все процессы
При помощи каких директив возможно определить однопотоковый участков для параллельных фрагментов:
(1) #pragma omp single
(2) #pragma omp master
(3) #pragma omp critical
В чем основной недостаток "printf отладки":
(1) необходимость внесения изменений в код программы
(2) отсутствие доступа к некоторым переменным
(3) принципиальная невозможность отладки MPI программ
Производным типом данных в MPI называется:
(1) описание набора значений предусмотренного в MPI типа, причем в общем случае описываемые значения не обязательно непрерывно располагаются в памяти
(2) последовательность описаний входящих в тип значений, каждое отдельное значение в которой описывается при помощи смещения адреса месторасположения от некоторого базового адреса
(3) описание набора значений базового алгоритмического языка в терминах самого этого языка
Каким образом возможно включить динамический режим создания потоков:
(1) omp_set_dynamic (true);
(2) omp_set_dynamic (false);
(3) задать константу #define DYNAMIC true
Какой прием поможет избежать взаимной блокировки процессов при циклической посылке сообщений с использованием функций MPI_Send/MPI_Recv (под циклической посылкой здесь понимается ситуация, когда процесс с индексом i передает информацию процессу с индексом i+1, i=0,…,n-2, а процесс с индексом n-1 передает информацию процессу с индексом 0):
(1) вызов на четных процессорах сначала MPI_Send, а потом MPI_Recv, а на нечетных наоборот: сначала MPI_Recv, затем MPI_Send
(2) добавление функции MPI_Barrier после MPI_Send, перед MPI_Recv
(3) запуск MPI_Send и MPI_Recv в двух разных потоках
При векторном способе новый производный тип создается как:
(1) набор блоков из элементов исходного типа, при этом между блоками могут иметься регулярные промежутки по памяти
(2) непрерывная последовательно элементов исходного типа
(3) набор блоков разного размера из элементов исходного типа, при этом между блоками могут иметься разные промежутки по памяти
Какая последовательность применения семафоров правильная:
(1) инициализация, установка, снятие
(2) установка, снятие, высвобождение
(3) снятие, установка, высвобождение
MPI поддерживает топологии вида:
(1) прямоугольная решетка произвольной размерности и граф произвольного вида
(2) тор произвольной размерности и граф произвольного вида
(3) только граф произвольного вида
Каким образом можно ограничить случаи, когда будет создан параллельный фрагмент:
(1) при помощи свойства директивы if (scalar_expression)
(2) при помощи определения константы #define OPENMP scalar_expression
(3) при помощи директивы #pragma omp if
По какому показателю выстраиваются самые высокопроизводительные вычислительные системы мира в списке TOP500:
(1) по пиковой производительности
(2) по производительности, показанной на тесте LINPACK
(3) по суммарному числу ядер
Программный продукт Intel Thread Profiler решает следующие задачи:
(1) позволяет полностью гарантировать корректность работы параллельной программы
(2) помогает понять причины недостаточно быстрой работы параллельной программы
(3) помогает в поиске ошибок в параллельной программе
Учебное приложение Factorization решает следующую задачу:
(1) приведение матрицы к треугольному виду
(2) приведение матрицы к диагональному виду
(3) представление числа в виде произведения простых множителей
Какой стандарт передачи сообщений между параллельными процессами лежит в основе Microsoft High Performance Server 2008:
(1) Message Passing Interface (MPI)
(2) Distributed Virtual Machine (DVM)
(3) Multiprocessor C# (MC#)
Результаты тестирования позволяют:
(1) выбрать язык программирования, для разработки приложения
(2) оценивать время выполнения задач, для которых имеется оценка сложности, выраженная в единицах, измеряемых тестом
(3) путем сравнения с аналогами принимать решение о достижении кластерной системой расчетных характеристик
Укажите продукты, необходимые для сборки адаптированного теста Linpack, входящего в комплект поставки Intel® Math Kernel Library 9.1 Cluster Edition:
(1) MPICH2 for Microsoft Windows
(2) Intel® Math Kernel Library Cluster Edition
(3) Intel® C++ Compiler for Windows
(4) Intel® Visual Fortran Compiler for Windows
Для распределения вычислений между процессорами в вычислительных системах с распределенной памятью необходимо:
(1) выделить информационно независимые фрагменты вычислений, провести их программную реализацию и затем разместить полученные части программы на разных процессорах
(2) разделить программу на равные части и распределить между процессорами
(3) распределить исполняемые модули параллельной программы по узлам системы
Для распределения вычислений между потоками в вычислительных системах с общей памятью необходимо:
(1) выделить информационно независимые фрагменты вычислений, провести их программную реализацию и затем разместить полученные части программы в разных потоках
(2) разделить программу на равные части и распределить между потоками
(3) распределить исполняемые потоки параллельной программы по ядрам процессора
Важным нововведением Microsoft Visual Studio 2008 является:
(1) наличие встроенного отладчика
(2) возможность разработки параллельных MPI программ
(3) возможность отладки параллельных MPI программ
К основным преимуществам кластерных вычислительных систем относится:
(1) обеспечение высокой производительности при достаточно низкой стоимости
(2) возможность модернизации и расширения аппаратного обеспечения
(3) построение из типовых элементов аппаратного и программного обеспечения
Назначение программного продукта Intel Thread Checker состоит в следующем:
(1) профилирование многопоточных приложений и помощь разработчику в процессе оптимизации программного кода
(2) помощь в разработке архитектуры параллельной программы
(3) отладка и оптимизация параллельных программ
Причина того, что при разделении множества чисел на одинаковые части по числу потоков (например, первый поток получает множество чисел от 1 до 50000, второй - от 50001 до 100000; двухъядерный процессор) приложение большую часть времени проводит в последовательном режиме состоит в:
(1) плохой организации синхронизации
(2) неравномерной вычислительной нагрузке на эти потоки
(3) различной сложности факторизации для чисел первой и второй групп
Какие дополнительные возможности предоставляет стандарт Network Direct:
(1) возможность использовать несколько сетевых интерфейсов для ускорения передачи данных между параллельными процессами
(2) возможность профилирования сетевых обращений
(3) возможность снизить латентность сетевых запросов
Синтетические тесты (synthetic benchmarks) это:
(1) фрагменты кода, взятые из реальных приложений
(2) тесты, которые оценивают производительность на основе набора большого количества показателей и не привязаны к какому-либо отдельному приложению
(3) наиболее часто используемые программы для реализации тех или иных реальных задач
Тест Linpack может быть откомпилирован:
(1) под платформу ia32
(2) под платформу ia64
(3) под платформу em64t
Процессы параллельной программой в рамках MPI:
(1) могут выполняться на разных процессорах, на одном процессоре могут располагаться несколько процессов
(2) могут выполняться только на разных процессах
(3) обязательно выполняются на одном процессоре
Потоки параллельной программой в рамках OpenMP:
(1) могут выполняться только на разных процессорах
(2) могут выполняться на разных процессах, если между процессорами есть общая память
(3) могут выполняются на разных ядрах одного процессора
Окно "Autos" в Microsoft Visual Studio 2008:
(1) показывает рекомендации по устранению предупреждений и ошибок компилятора
(2) показывает значения выбранных пользователем переменных
(3) показывает значения переменных текущей функции
Тактовая частота серийно-выпускаемых процессоров компании Intel:
(1) превысила 4 гигагерца в 2008 году
(2) достигла 3.8 гигагерца в 2005 году
(3) достигнет 10 гигагерц до 2012 года
Успешная отладка и оптимизация параллельных программ в системах с общей памятью требуют:
(1) знания основных разновидностей ошибок, специфичных для параллельных программ, типичных проблем с точки зрения производительности многопоточных приложений
(2) знаний особенностей операционных системы, связанных с обеспечением работы в многопоточном режиме (примитивы синхронизации и др.)
(3) знания технологии программирования MPI
Причина того, что при разделении множества чисел между потоками на четные и нечетные (двухъядерный процессор) приложение большую часть времени проводит в последовательном режиме, состоит в:
(1) различной сложности факторизации четных и нечетных чисел
(2) неэффективной организации многопоточности в операционной системе
(3) неравномерной вычислительной нагрузке на потоки
В чем отличие задачи (task) и задания (job) в терминах High Performance Server 2008:
(1) это синонимы
(2) задание - запрос на выделение ресурсов, а задача - исполняемый файл с параметрами
(3) задача - исполняемый файл, задание - исполняемый файл с параметрами
NAS Parallel Benchmarks относится к классу:
(1) микротестов
(2) toy benchmarks
(3) синтетических тестов
Тест Linpack может быть запущен:
(1) на любом количестве узлов
(2) на количестве узлов, образующих простое число
(3) на количестве узлов N=PxQ, где P и Q-целые числа
Под коммуникатором в MPI понимается:
(1) специально создаваемый служебный объект, объединяющий в своем составе группу процессов и ряд дополнительных параметров, используемых при выполнении операций передачи данных
(2) группу процессов, в рамках которой выполняются операции передачи данных
(3) пару процессов, в рамках которой происходит информационное взаимодействие
При применении директивы #pragma omp paralle:
(1) программный код блока, следующий за директивой, дублируется или может быть разделен при помощи директив между потоками для параллельного выполнения
(2) пользователь должен прямо за ней написать код для каждого потока
(3) цикл, идущий непосредственной за директивой, распределяется по потокам
В чем особенность отладочной конфигурации программы:
(1) программа, скомпилированная в отладочной конфигурации, выполняется строго последовательно, что устраняет возможность процессорной гонки и привнесенные этим нежелательные эффекты
(2) в отладочной конфигурации в бинарные файлы программы добавляется дополнительная информация, которая позволяет видеть при отладке исходный код на языке высокого уровня
(3) при работе в отладочной конфигурации программа сохраняет на диск информацию о промежуточных значениях всех переменных, что позволяет впоследствии восстановить состояние программы в любой момент до падения
Какие из следующих утверждений верны:
(1) в многоядерных процессорах Intel, AMD и IBM каждое ядро является полноценным исполнительным устройством, ориентированным на выполнение кода общего назначения
(2) в процессорах Cell SPE-ядра могут выполнять код общего назначения
(3) в процессорах UltraSPARC компании Sun высокая производительность достигается за счет обработки большого числа потоков в единицу времени
Под "тупиками" понимается ситуация, когда:
(1) все потоки завершили свою работу
(2) возникла взаимная блокировка потоков, ожидающих наступление некоторого события для продолжения работы
(3) недостаточно ресурсов для запуска всех потоков
Подход, состоящий в разделении множества чисел на последовательность пачек небольшой длины с последующей последовательной раздачей этих пачек потокам (пачки раздаются поровну), обладает следующими свойствами:
(1) может быть адаптирован для использования при количестве потоков, большем двух
(2) эффективно работает лишь при двух потоках
(3) корректно работает лишь при двух потоках
Что определяет задание конфигурации сети в High Performance Server 2008 (окно Network Configuration Wizard):
(1) оптимальный алгоритм групповых операций передачи сообщений
(2) распределение трафика по сетям в зависимости от типа траффика
(3) задание конфигурации сети влияет только на внешний вид отчетов
Тест Linpack представляет собой:
(1) решение системы линейных арифметических уравнений
(2) быструю сортировку
(3) решение системы дифференциальных уравнений
Для проведения серии экспериментов, отличающихся размерностями сеток, необходимо:
(1) вручную запустить тест по количеству различающихся размерностей
(2) задать в файле HPL.dat несколько размерностей сеток
(3) тест Linpack всегда запускается на сетке размерности NxN
Процессы, между которыми выполняется передача данных:
(1) обязательно должны принадлежать одному коммуникатору
(2) обязательно должны принадлежать двум коммуникаторам
(3) не обязаны принадлежать одному коммуникатору
Потоки, между которыми выполняется передача данных, должны использовать общую память. Путь переменные объявлены внутри параллельного фрагмента. Тогда для того что бы их использовать для коммуникации необходимо использовать следующие свойство директивы #pragma omp paralle:
(1) shared (list)
(2) private (list)
(3) num_threads (cnt)
Как связаны между собой идентификатор MPI процесса в группе MPI_COMM_WORLD (получаемый функцией MPI_Comm_rank) и идентификатор процесса операционной системы (отображаемый в окне Processes в колонке ID):
(1) в операционной системе Windows идентификаторы совпадают
(2) идентификатор операционной системы равен идентификатору MPI процесса плюс смещение, равное идентификатору операционной системы нулевого MPI процесса
(3) идентификаторы остаются постоянными в рамках выполнения одной MPI программы
Программы для настольного суперкомпьютера NVIDIA® Tesla™ D870 могут быть написаны:
(1) на любом языке программирования высокого уровня
(2) на языке C\С++
(3) используя CUDA SDK
Признаками наличия неравномерной вычислительной нагрузки между потоками являются:
(1) неправильные результаты расчетов
(2) большая доля последовательного выполнения
(3) малое ускорение по сравнению с последовательной программой
Какие из следующих утверждений являются верными:
(1) для повышения эффективности подхода с использованием пачек чисел требуется провести эксперименты для определения количества используемых потоков
(2) для повышения эффективности подхода с использованием пачек чисел требуется провести эксперименты для определения размера пачки
(3) оптимальный размер пачки не зависит от количества используемых потоков
Параметрическое множество задач служит для:
(1) параллельного запуска нескольких однотипных независимых задач
(2) последовательного запуска нескольких однотипных задач, каждая из которых использует результаты предыдущей
(3) ускорения ввода информации за счет автоматического заполнения полей ввода, используя данные предыдущих запусков пользователя
NAS Parallel Benchmarks это:
(1) набор тестов
(2) одна тестовая программа
(3) набор правил и рекомендаций в соответствии с которыми нужно выполнять тестирование
Являются ли приведенные рекомендации по выбору параметров теста верными:
(1) размерность задачи должна быть максимально-допустимой для того размера оперативной памяти, которой обладают вычислительные узлы
(2) параметр NB всегда должен быть равен 1
(3) обязательным требованием, обеспечивающим максимальную производительность является требование "квадратности" решетки
Функция MPI_Recv:
(1) блокирует процесс-получатель до момента фактического получения сообщения
(2) принимает сообщение в фоновом режиме, процесс в это время может продолжать вычисления
(3) в зависимости от используемой операции передачи может, как заблокировать, так и не заблокировать процесс-получатель
Если нужно распараллелить следующий фрагмент через первый цикл for (i=0; i < NMAX; i++) for (j=0; j < NMAX; j++) то нужно использовать следующую директиву:
(1) #pragma omp parallel for private(j)
(2) #pragma omp parallel for private(i, j)
(3) #pragma parallel for
В чем основной недостаток последовательного отладчика (например, отладчика предыдущих версий среды разработки Microsoft Visual Studio) при отладке MPI программ (по сравнению с параллельным отладчиком Microsoft Visual Studio 2008):
(1) последовательный отладчик не может использоваться для отладки MPI программ
(2) невозможность "видеть" код MPI библиотеки
(3) необходимость подключать отладчик к каждому запущенному процессу в отдельности
Мини-кластер T-Forge Mini построен на процессорах:
(1) компании IBM
(2) компании AMD
(3) компании Intel
Какие из следующих утверждений являются верными?
(1) для успешного применения отладчика Intel Thread Checker желательно при сборке программного проекта указать некоторые специальные ключи компилятора
(2) отладчик Intel Thread Checker может быть использован только при работе в операционной системе Linux
(3) отладчик Intel Thread Checker обнаруживает 100% ошибок в многопоточных параллельных программах
Время, затраченное на следующие операции, может быть причислено к непроизводительным издержкам при работе с потоками:
(1) работа с глобальными переменными многопоточного приложения
(2) уничтожение потоков
(3) работа с мьютексами
Важным нововведением Microsoft Visual Studio 2008 является:
(1) наличие встроенного отладчика
(2) возможность разработки параллельных MPI программ
(3) возможность отладки параллельных MPI программ
С помощью теста transfer может быть измерена:
(1) латентность
(2) пропускная способность
(3) производительность дисковой системы
В буферизованном режиме функция отправки сообщения завершается:
(1) сразу же после копирования сообщения в системный буфер
(2) при получении от процесса-получателя подтверждения о начале приема отправленного сообщения
(3) при начале фактической передачи сообщения
При динамическом (dynamic) распределении итераций цикла итерации распределяются:
(1) итерации распределяються равномерными порциями
(2) вначале количество итераций отдаваемых потоку мало, а затем увеличивается
(3) вначале количество итераций отдаваемых потоку велико, а затем уменьшается
При использовании неблокирующих функций передачи сообщений в MPI:
(1) возврат из функций происходит немедленно, адреса массивов с данными сохраняются во внутренние переменные, непосредственная передача будет выполнена в отдельном потоке с использованием сохраненных адресов массивов
(2) возврат из функций происходит сразу же по окончании копирования массивов данных во внутренние структуры библиотеки, непосредственная передача выполняется в отдельном потоке с использованием копий массивов
(3) возврат из функций происходит только по окончании передачи данных получателю
Особенностями тестового приложения, имитирующего архитектуру клиент-сервер путем создания клиентского и серверного потока в рамках одного процесса, является:
(1) высокая производительность в случае выделения на создание каждого запроса отдельного потока
(2) возможная проблема нехватки ресурсов из-за слишком большого количества потоков
(3) сервер, создавая и уничтожая потоки, тратит больше времени и потребляет больше системных ресурсов, чем если бы он обрабатывал запросы самостоятельно
Окно "Autos" в Microsoft Visual Studio 2008
(1) показывает рекомендации по устранению предупреждений и ошибок компилятора
(2) показывает значения выбранных пользователем переменных
(3) показывает значения переменных текущей функции
Завершение вызова функции неблокирующего обмена приводит:
(1) к инициации запрошенной операции передачи, но ничего не говорит о завершенности обмена
(2) к фактическому выполнению приема данных (для функции неблокирующего приема) или началу фоновой передачи (для функции неблокирующей передачи)
(3) к фактическому выполнению обмена
При сборе результатов со всех потоков используется операция редукции reduction. Какие операции редукции поддерживает OpenMP:
(1) +, -, *
(2) &, |, ^
(3) », «
Работа многих серверов связана с обработкой большого количества коротких запросов от какого-либо удаленного клиента. Обработка всех запросов в одном потоке обладает следующими особенностями:
(1) решение подходит для тех случаев, когда количество запросов к серверу достаточно мало, и обращения к серверу происходят редко
(2) при реализации требуется построение стека входящих запросов, необходимого для предотвращения потери запросов при последовательной обработке
(3) при реализации требуется построение очереди входящих запросов, необходимого для предотвращения потери запросов при последовательной обработке
В чем особенность отладочной конфигурации программы:
(1) программа, скомпилированная в отладочной конфигурации, выполняется строго последовательно, что устраняет возможность процессорной гонки и привнесенные этим нежелательные эффекты
(2) в отладочной конфигурации в бинарные файлы программы добавляется дополнительная информация, которая позволяет видеть при отладке исходный код на языке высокого уровня
(3) при работе в отладочной конфигурации программа сохраняет на диск информацию о промежуточных значениях всех переменных, что позволяет впоследствии восстановить состояние программы в любой момент до падения
Коллективные операции MPI:
(1) могут быть реализованы при помощи парных операций, однако такое решение, скорее всего, будет не эффективным
(2) принципиально не могут быть реализованы при помощи парных операций
(3) могут быть реализованных при помощи парных операций, но не в полном объеме
В критические секции:
(1) потоки входят последовательно в произвольном порядке
(2) потоки входят последовательно в соответствии с порядковым номером потока
(3) все потоки входят одновременно
Работа многих серверов связана с обработкой большого количества коротких запросов от какого-либо удаленного клиента. При организации пула потоков наблюдаются следующие особенности:
(1) требуется организация синхронизации
(2) сокращается время обработки одного запроса, поскольку поток уже существует, когда прибывает очередной запрос
(3) потоки часто создаются и уничтожаются, что приводит к большим накладным расходам
Как связаны между собой идентификатор MPI процесса в группе MPI_COMM_WORLD (получаемый функцией MPI_Comm_rank) и идентификатор процесса операционной системы (отображаемый в окне Processes в колонке ID):
(1) в операционной системе Windows идентификаторы совпадают
(2) идентификатор операционной системы равен идентификатору MPI процесса плюс смещение, равное идентификатору операционной системы нулевого MPI процесса
(3) идентификаторы остаются постоянными в рамках выполнения одной MPI программы
Обобщенная передача данных от всех процессов всем процессам может быть описана как:
(1) операция, при которой происходит передача различающихся данных от всех процессов всем процессам
(2) операция, при которой происходит передача одинаковых данных от всех процессов всем процессам
(3) операция, при которой данные от всех процессов собираются на ведущем процессе и затем рассылаются всем процессам
Каким образом в OpenMP можно управлять количеством создаваемых потоков потоков:
(1) при помощи функции void omp_set_num_threads (int num_threads);
(2) задавая переменную окружения OMP_NUM_THREADS
(3) задавая свойство директив num_threads (cnt)
В чем основной недостаток последовательного отладчика (например, отладчика предыдущих версий среды разработки Microsoft Visual Studio) при отладке MPI программ (по сравнению с параллельным отладчиком Microsoft Visual Studio 2008):
(1) последовательный отладчик не может использоваться для отладки MPI программ
(2) невозможность "видеть" код MPI библиотеки
(3) необходимость подключать отладчик к каждому запущенному процессу в отдельности
Сигнатурой производного типа в MPI именуется:
(1) часть карты типа с указанием только типов значений
(2) часть карты типа с указанием только смещений для входящих в тип элементов
(3) размер памяти в байтах, который нужно отводить для одного элемента типа
Каким образом можно разрешить режим вложенного параллелизма:
(1) omp_set_nested (true);
(2) omp_set_nested (false);
(3) задать константу #define NESTED true
При использовании неблокирующих функций передачи сообщений в MPI:
(1) возврат из функций происходит немедленно, адреса массивов с данными сохраняются во внутренние переменные, непосредственная передача будет выполнена в отдельном потоке с использованием сохраненных адресов массивов
(2) возврат из функций происходит сразу же по окончании копирования массивов данных во внутренние структуры библиотеки, непосредственная передача выполняется в отдельном потоке с использованием копий массивов
(3) возврат из функций происходит только по окончании передачи данных получателю
При индексном способе новый производный тип создается как:
(1) набор блоков разного размера из элементов исходного типа, при этом между блоками могут иметься разные промежутки по памяти
(2) набор блоков из элементов исходного типа, при этом между блоками могут иметься регулярные промежутки по памяти
(3) непрерывная последовательно элементов исходного типа
Для чего применяются симафоры:
(1) для синхронизации потоков
(2) для атомарного доступа к данным
(3) для определения участка кода, который будет выполнять только основной поток
В декартовой топологии множество процессов представляется в виде:
(1) прямоугольной решетки
(2) графа произвольного вида
(3) полного графа
Каким образом можно засечь время OpenMP программы:
(1) при помощи функции omp_get_wtime();
(2) при помощи функции get_wtime();
(3) при помощи функции omp_get_date();
В 2008 году мощность лидера TOP500:
(1) достигла одного петафлопса
(2) составила 15% мощности всех систем в TOP500
(3) выросла на три порядка по сравнению с 1997 годом
Необходимость создания инструментов для отладки и профилирования параллельных программ вызвана следующими причинами:
(1) принципиальными сложностями, возникающими при отладке и профилировании параллельных программ, по сравнению с последовательными
(2) исключительно маркетинговыми причинами; принципиальных проблем с отладкой и профилированием параллельных программ по сравнению с последовательными не возникает
(3) необходимостью повышения производительности труда разработчиков параллельного ПО
В чем состоит основная причина низкой производительности исходной версии программы Factorization:
(1) в неравномерном распределении нагрузки между потоками
(2) в неоптимальных настройках использованного компилятора
(3) в использовании слишком большого количества потоков
Какая интегрированная среда разработки является рекомендуемой и предоставляет максимум возможностей для использования с High Performance Server 2008:
(1) Visual Studio 2008
(2) Eclipse
(3) рекомендуется использовать инструменты командной строки: vim, gcc, gdb
Наборы тестов должны обладать свойствами:
(1) масштабируемости
(2) секретности исходного кода и используемых алгоритмов
(3) воспроизводимости
Какие из следующих утверждений являются верными:
(1) тест Linpack распространяется в виде исходных кодов, является свободно-распространяемым и может быть загружен со специализированного сайта
(2) тест Linpack может быть использован для тестирования только систем, работающих под управлением ОС семейства Unix
(3) тест Linpack не может использовать более одного процессора на каждом из узлов
Минимально необходимый набор операций для организации информационного взаимодействия между процессорами в вычислительных системах с распределенной памятью включает в себя только:
(1) операции приема и передачи данных
(2) операции передачи данных и коллективные операции
(3) только коллективные операции
Минимально необходимый набор операций для организации информационного взаимодействия между потоками в вычислительных системах с общей памятью включает в себя только:
(1) операции записи, чтения и синхронизации доступа к общей памяти
(2) операции записи и чтения данных из общей памяти
(3) асинхронные операции записи и чтения данных из общей памяти
Как задаются точки остановки в программе:
(1) указанием строки кода, где необходимо прервать выполнение программы
(2) указанием условия на некоторую переменную
(3) вызовом функции breakpoint
Кластерные вычислительные системы:
(1) составляют большинство в последних списках TOP500 самых высокопроизводительных систем
(2) не входят в список TOP500 самых высокопроизводительных систем
(3) представлены небольшим числом систем в списке TOP500 самых высокопроизводительных систем
Цикл разработки параллельных программ обычно устроен следующим образом:
(1) разработка архитектуры, реализация, отладка, оптимизация
(2) разработка архитектуры, реализация, оптимизация, отладка
(3) разработка архитектуры, отладка, оптимизация, реализация
При разделении множества чисел на одинаковые части по числу потоков (например, первый поток получает множество чисел от 1 до 50000, второй - от 50001 до 100000; двухъядерный процессор) наблюдаются следующее поведение:
(1) первый поток выполняет факторизацию, далее ждет завершения работы второго потока
(2) второй поток выполняет факторизацию, далее ждет завершения работы первого потока
(3) оба потока равномерно загружены вычислениями
Какие требования к аппаратному обеспечению накладывает High Performance Server 2008:
(1) x64 архитектура процессора
(2) аппаратная поддержка виртуализации
(3) не менее 2 вычислительных ядер на узле
Ядра (kernels) это:
(1) фрагменты кода, взятые из реальных приложений
(2) тесты, которые оценивают производительность на основе набора большого количества показателей и не привязаны к какому-либо отдельному приложению
(3) наиболее часто используемые программы для реализации тех или иных реальных задач
Intel® Visual Fortran Compiler for Windows необходим для выполнения лабораторной работы потому что:
(1) часть кода Linpack написано на языке Fortran
(2) Linpack при работе использует библиотеки времени исполнения (run-time) среды Visual Fortran
(3) с помощью линковщика Fortran осуществляется линковка с библиотеками BLAS
Номер процесса в рамках MPI именуется:
(1) рангом процесса
(2) идентификатором процесса
(3) дескриптором процесса
Количество потоков в рамках OpenMP программы:
(1) определяетья в начале выполнения программы
(2) обычно совпадает с количеством ядер вычислительной системы
(3) может быть изменено в процессе работы программы
Окно "Watch" в Microsoft Visual Studio 2008:
(1) позволяет переключаться между потоками текущего процесса
(2) позволяет переключаться между процессами параллельной MPI программы
(3) показывает значения выбранных пользователем переменных
Основным способом повышения производительности:
(1) в архитектуре Intel NetBurst была тактовая частота
(2) в архитектуре Intel Core является число инструкций, выполняемых процессором за такт
(3) в архитектуре Intel Core является число ядер
Процесс обнаружения ошибки в параллельных программах обычно устроен следующим образом:
(1) определение факта наличия ошибки, выяснение причин ошибки, поиск ошибки, определение способа устранения ошибки, устранение ошибки
(2) определение факта наличия ошибки, поиск ошибки, выяснение причин ошибки, определение способа устранения ошибки, устранение ошибки
(3) определение факта наличия ошибки, выяснение причин ошибки, определение способа устранения ошибки, поиск ошибки, устранение ошибки
При разделении множества чисел на четные и нечетные (например, первый поток получает нечетные числа, второй - четные; двухъядерный процессор) наблюдаются следующее поведение:
(1) первый поток выполняет факторизацию, далее ждет завершения работы второго потока
(2) второй поток выполняет факторизацию, далее ждет завершения работы первого потока
(3) оба потока равномерно загружены вычислениями
На какой популярной реализации стандарта MPI основан Microsoft MPI:
(1) Open MPI
(2) HP MPI
(3) MPICH2
Netperf относится к классу:
(1) микротестов
(2) ядер
(3) синтетических тестов
Результаты, показываемые тестом Linpack (при условии неизменности характеристик тестируемого программно-аппаратного комплекса) зависят:
(1) только от размерности задачи
(2) только от размерности задачи и геометрии решетки
(3) от значения всех параметров, задаваемых в файле HPL.dat
Указание используемого коммуникатора является:
(1) обязательным для всех операций передачи данных в MPI
(2) необязательным для некоторых операций передачи данных в MPI
(3) обязательным для некоторых операций передачи данных в MPI
При применении директивы #pragma omp paralle все данные используемые до директивы по умолчанию считаются:
(1) общими
(2) локальными для потока
(3) распределенными
Как называется ситуация, когда процессы параллельной программы взаимодействуют между собой без выполнения каких-либо синхронизирующих действий, что приводит к появлению трудно воспроизводимых ошибок, проявляющихся и исчезающих от запуска к запуску:
(1) критическая секция
(2) гонка процессов
(3) взаимная блокировка
Какие из перечисленных процессоров использует внеочередное (out-of-order) исполнение команд:
(1) архитектуры Intel Core
(2) семейства Power6
(3) процессоры AMD Phenom и AMD Opteron
(4) процессоры PowerXCell™ 8i
Под ситуацией "заброшенные замки" понимается:
(1) положение, возникающее при завершении работы одним из потоков, захватившим ресурс и не освободившим его
(2) утечка памяти, вызванная наличием запроса на выделение памяти при отсутствии ее освобождения
(3) ситуация, когда несколько потоков работают с разделяемыми данными, и конечный результат зависит от соотношения скоростей потоков
Подход, состоящий в разделении множества чисел на последовательность пачек небольшой длины с последующей последовательной раздачей этих пачек потокам (пачки раздаются поровну), демонстрирует хорошую производительность по следующим причинам:
(1) улучшает асимптотическую оценку сложности алгоритма факторизации
(2) обеспечивает равномерную загрузку вычислениями обоих потоков
(3) приводит к тому, что приложение преимущественно работает в режиме параллельного выполнения
Использование MS MPI вместо других реализаций MPI гарантирует:
(1) минимальную нагрузку на сеть передачи данных
(2) первоочередную обработку заданий встроенным планировщиком
(3) корректное освобождение ресурсов
Какие из перечисленных утверждений являются верными:
(1) тест Linpack решает систему линейных арифметических уравнений методом LU-факторизации
(2) тест Linpack предназначен для тестирования кластерных систем и не может быть использован для тестирования систем другой архитектуры
(3) тест Linpack, предназначенный для тестирования кластерных систем, использует фиксированную размерность задачи, равную 1000
Какие параметры, как правило, оказывают наибольшее значение на результат теста:
(1) размер задачи, топология вычислительной решетки, параметр, описывающий распределение векторов
(2) размер задачи
(3) тест Linpack не имеет параметров
Завершение функции MPI_Send означает, что:
(1) операция передачи начала выполняться и пересылка сообщения будет рано или поздно будет выполнена
(2) сообщение находится в состоянии передачи
(3) сообщение принято процессом-получателем при помощи функции MPI_Recv
Если в параллельном фрагменте используються переменные, объявленные вне параллельного фрагмента, но требуется, что бы они использовались локально в каждом потоке необходимо использовать следующее свойство директивы #pragma omp paralle:
(1) shared (list)
(2) private (list)
(3) num_threads (cnt)
Макрос ASSERT используется для:
(1) указания строчки кода, где необходимо прервать выполнение программы в отладочной конфигурации
(2) вывода отладочной информации в лог-файл
(3) контроля корректности внутренних переменных
Для работы с ускорителем ClearSpeed™ Advance™ X620 необходимы:
(1) специальный драйвер
(2) SDK и набор инструментов для написания и отладки программ
(3) компьютер с PCI-X разъемом на материнской плате
На эффективность работы параллельной программы существенное влияние оказывают следующие факторы:
(1) выбор примитивов синхронизации
(2) синхронизация между потоками
(3) доля времени, которое приложение проводит в режиме последовательного выполнения
(4) объем исходного кода программы
(5) балансировка вычислительной загрузки
(6) минимизация непроизводительных издержек при работе с потоками
Какие из следующих утверждений являются верными:
(1) в случае если размер пачки очень мал, следует ожидать падения производительности
(2) в случае если размер пачки очень велик, следует ожидать падения производительности
(3) оптимальный размер пачки полностью определяется используемым алгоритмом факторизации
Поток задач позволяет:
(1) запустить параллельно несколько однотипных независимых задач
(2) позволяет задать последовательность выполнения задач внутри одного задания
(3) позволяет задать последовательность выполнения заданий
NAS Parallel Benchmarks включает в себя:
(1) задачи в области вычислительной гидро- и аэродинамики
(2) вычисление интеграла методом Монте-Карло
(3) параллельную сортировку N целых чисел
Запуск теста в случае использования MPICH2 выглядит следующим образом:
(1) mpiexec -np X xhpl.exe (где X - количество процессов)
(2) mpiexec xhpl.exe
(3) xhpl.exe
Прием сообщений при помощи функции MPI_Recv может быть осуществлен:
(1) от любого адресата и с любым тегом при указании специальных значений в качестве параметров вызова функции
(2) от любого адресата, однако, тег сообщения должен быть указан однозначно
(3) от однозначно определяемого адресата с заданным тегом
Если при распараллеливании цикла использовалась директива #pragma omp parallel for, и программист решил распределить по три итерации на поток, то необходимо использовать следующее свойство:
(1) schedule (static , 3)
(2) schedule (dynamic , 3)
(3) schedule (guided , 3)
В каких случаях на рабочую станцию необходимо устанавливать High Performance Computing SDK:
(1) удаленный запуск параллельных программ на кластере под управлением High Performance Computing Server 2008
(2) разработка параллельных MPI программ с использованием Microsoft MPI
(3) проведение локальных тестовых запусков программ, написанных с использованием Microsoft MPI
Узлы мини-кластера T-Edge Mini могут быть соединены сетью:
(1) Gigabit Ethernet
(2) Infiniband
(3) Myrinet
Какие из следующих утверждений являются верными?
(1) необходимо избегать запуска других приложений во время профилирования параллельной программы. Деятельность посторонних приложений (особенно потребляющих много ресурсов) может существенно исказить интересующую информацию
(2) желательно производить профилирование несколько раз и для анализа выбирать тот запуск, когда приложение отработало быстрее всего
(3) для корректной работы отладчика параллельных программ необходимо осуществить несколько запусков и выбрать тот запуск, когда приложение отработало быстрее всего
Время, затраченное на следующие операции, может быть причислено к непроизводительным издержкам при работе с потоками:
(1) управление потоками
(2) работа с атомарными функциями ОС
(3) работа с критическими секциями
(4) вычисления в главной функции потока
Как задаются точки остановки в программе:
(1) указанием строки кода, где необходимо прервать выполнение программы
(2) указанием условия на некоторую переменную
(3) вызовом функции breakpoint
Какие из перечисленных утверждений являются верными:
(1) тест transfer использует функции MPI для тестирования производительности сети
(2) тест mpitest используется для тестирования базовых функций MPI
(3) тест mpitest может запускаться только локально (в режиме localonly)
Режим передачи по готовности может быть использован только если:
(1) операция приема сообщения уже инициирована
(2) при достаточном малом размере сообщения, менее размера системного буфера
(3) операция приема сообщения гарантированно будет запущена позднее момента начала передачи сообщения
При управляемом (guided) распределении итераций цикла итерации распределяются:
(1) итерации распределяються равномерными порциями
(2) вначале количество итераций отдаваемых потоку мало, а затем увеличивается
(3) вначале количество итераций отдаваемых потоку велико, а затем уменьшается
Для запуска сеанса параллельной отладки в Microsoft Visual Studio 2008 в качестве запускаемой команды (пункт MPIRun Command) в окне настройки MPI Cluster Debugger необходимо выбрать:
(1) исполняемый файл параллельной программы, скомпилированной с Microsoft MPI
(2) программу mpiexec из High Performance Computing SDK
(3) программу mpishim из папки Microsoft Visual Studio 2008
Особенностями тестового приложения, имитирующего архитектуру клиент-сервер путем создания клиентского и серверного потока в рамках одного процесса, является:
(1) активные потоки потребляют системные ресурсы, что может привести к нехватке оперативной памяти и значительному падению производительности
(2) происходит минимизация непроизводительных издержек
(3) полезная работа, которую совершают потоки, не компенсирует затраты на их создание/уничтожение
Окно "Watch" в Microsoft Visual Studio 2008:
(1) позволяет переключаться между потоками текущего процесса
(2) позволяет переключаться между процессами параллельной MPI программы
(3) показывает значения выбранных пользователем переменных
Функция блокирующего ожидания завершения одного обмена в MPI называется:
(1) MPI_Wait
(2) MPI_Waitall
(3) MPI_Waitone
Какая директива OpenMP может быть использована для синхронизации потоков:
(1) #pragma omp barrier
(2) #pragma omp waitall
(3) #pragma omp wait
Работа многих серверов связана с обработкой большого количества коротких запросов от какого-либо удаленного клиента. Обработка всех запросов в одном потоке обладает следующими особенностями:
(1) решение подходит для тех случаев, когда количество запросов к серверу достаточно велико, и обращения к серверу происходят часто
(2) подход крайне неэффективен при высокой частоте обращений к серверу
(3) если сервер производит обработку самостоятельно, время отклика будет очень большим, следовательно, сервер будет не успевать обрабатывать все запросы
Как называется ситуация, когда процессы параллельной программы взаимодействуют между собой без выполнения каких-либо синхронизирующих действий, что приводит к появлению трудно воспроизводимых ошибок, проявляющихся и исчезающих от запуска к запуску:
(1) критическая секция
(2) гонка процессов
(3) взаимная блокировка
Под коллективными операциями в MPI понимаются:
(1) операции передачи данными, в которых принимают участие все процессы используемого коммуникатора
(2) операции над группами процессов
(3) операции над коммуникаторами
Для написания кода отдельно для каждого потока необходимо использовать следующую директиву OpenMP:
(1) #pragma omp sections
(2) #pragma omp critical
(3) #pragma omp single
Работа многих серверов связана с обработкой большого количества коротких запросов от какого-либо удаленного клиента. При организации пула потоков наблюдаются следующие особенности:
(1) организация пула потоков значительно снижает непроизводительные издержки
(2) выбор примитивов синхронизации критичен для производительности приложения
(3) использование объектов синхронизации пользовательского уровня не позволяет организовать корректную работу пула потоков
Макрос ASSERT используется для:
(1) указания строчки кода, где необходимо прервать выполнение программы в отладочной конфигурации
(2) вывода отладочной информации в лог-файл
(3) контроля корректности внутренних переменных
Операция широковещательной рассылки данных это:
(1) операция рассылки значений ведущим процессом всем остальным процессам, все процессы получают рассылаемые данные целиком
(2) операция рассылки значений ведущим процессом всем остальным процессам, все процессы получают часть исходных данных
(3) операция рассылки различающихся значений ведущим процессом всем остальным процессам
Какую информацию возможно получить при помощи библиотечных функций OpenMP:
(1) количество потоков int omp_get_num_threads(void)
(2) количество вычислительных элементов int omp_get_num_procs(void)
(3) количество ядер на процессоре int omp_get_num_core(int numProc)
В каких случаях на рабочую станцию необходимо устанавливать High Performance Computing SDK:
(1) удаленный запуск параллельных программ на кластере под управлением High Performance Computing Server 2008
(2) разработка параллельных MPI программ с использованием Microsoft MPI
(3) проведение локальных тестовых запусков программ, написанных с использованием Microsoft MPI
Протяженность производного типа в MPI это:
(1) размер памяти в байтах, который нужно отводить для одного элемента рассматриваемого типа
(2) число байтов, которые занимает один элемент данных рассматриваемого типа
(3) смещение первого байта значений рассматриваемого типа
Если применялись все способы задания количества потоков, то какой способ задания потоков обладает наибольшим приоритетом:
(1) при помощи функции void omp_set_num_threads (int num_threads);
(2) задание переменной окружения OMP_NUM_THREADS
(3) задание свойство директив num_threads (cnt)
Для запуска сеанса параллельной отладки в Microsoft Visual Studio 2008 в качестве запускаемой команды (пункт MPIRun Command) в окне настройки MPI Cluster Debugger необходимо выбрать:
(1) исполняемый файл параллельной программы, скомпилированной с Microsoft MPI
(2) программу mpiexec из High Performance Computing SDK
(3) программу mpishim из папки Microsoft Visual Studio 2008
H-векторный и H-индексный способы создания данных отличаются от векторного и индексного способов тем, что:
(1) интервалы между блоками задаются в байтах, а не в элементах исходного типа данных
(2) разрешают использовать последовательность элементов исходного типа, между которыми могут быть одинаковые промежутки памяти
(3) разрешают использовать разные промежутки памяти между блоками
Каким образом действует функция int omp_test_lock (omp_lock_t &lock);:
(1) если замок свободен, функция его закрывает и возвращает значение true
(2) если замок занят, поток не блокируется, и функция возвращает значение false
(3) если замок занят, поток блокируется, и функция возвращает значение false
Топология типа тор в MPI является частным видом топологии типа:
(1) декартовой топологии
(2) графа произвольного вида
(3) полный граф
В каких операционных системах могут выполняться OpenMP программы:
(1) во всех для которых есть компилятор поддерживающей конструкции OpenMP
(2) только в Windows и Linux
(3) во всех