Главная /
Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний /
Вы написали параллельную программу с использованием OpenMP на языке C. Распараллеливание осуществляется за счёт одной строчки: '#pragma omp parallel for'. Другие средства OpenMP не используются, переменные окружения не меняются. Вы запустили вашу программ
Вы написали параллельную программу с использованием OpenMP на языке C. Распараллеливание осуществляется за счёт одной строчки: “#pragma omp parallel for”. Другие средства OpenMP не используются, переменные окружения не меняются. Вы запустили вашу программу 100 раз на 1-оядерной машине. 58 раз программа отработала корректно, 32 раза программа выдала не корректные данные, 10 раз программа не доработала до конца и завершила работу с ошибкой. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?
вопросПравильный ответ:
Parallel Inspector в режиме Memory Errors
Parallel Amplifier в режиме Hotspots
Parallel Inspector в режиме Threading Errors
Parallel Amplifier в режиме Concurrency
Сложность вопроса
84
Сложность курса: Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний
78
Оценить вопрос
Комментарии:
Аноним
Экзамен сдал на отлично. лол
18 авг 2018
Аноним
Благодарю за помощь по интуит.
04 июн 2016
Другие ответы на вопросы из темы программирование интуит.
- # Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). Semaphore Empty = N; // Буфер содержит N записейM = unlocked;Full = 0;() { Empty.P(); M.Lock(); AddItemToBuffer(); M.Unlock(); Full.V(); }() { full.P(); M.Lock(); RemoveItemFromBuffer(); M.Unlock(); empty.V(); }
- # В OpenMP-программе имеются две параллельные области. Возможна ли ситуация, когда один поток закончит выполнение обеих параллельных областей, в то время как другой поток все еще выполняет код первой параллельной области, при условии что все потоки запущены средствами OpenMP?
- # Для корректного завершения работы MPI-программы можно вызвать функцию:
- # Вы написали параллельную программу с использованием OpenMP на языке C. Эта программа работает корректно на подготовленных тестовых данных. Вы запустили вашу программу два раза на 4-хядерной машине. Первый раз вы запустили программу в один поток, и она работала 39 секунд, второй – в 4 потока и она работала 34 секунды. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?
- # Вам выдали работающую последовательную программу на языке C++. Вы выполняете оптимизацию программы. Чем вы воспользуетесь в первую очередь для получения более быстрой версии программы?