Организация параллельных потоков. Часть 1
Лабораторный практикум
Валентин Юльевич Арьков
© Валентин Юльевич Арьков, 2020
ISBN 978-5-4498-3657-1
Создано в интеллектуальной издательской системе Ridero
Большинство современных процессоров в настольных компьютерах и мобильных устройствах — многоядерные. Чтобы эффективно использовать такие вычислительные ресурсы, необходимо составлять параллельные программы. Для этого можно задействовать параллельные потоки либо параллельные процессы.
В данной работе рассматривается технология параллельного программирования потоков Microsoft Windowsвстроенными средствами, без специальных библиотек. Для составления и компиляции программ на Си используется бесплатная интегрированная среда разработки Microsoft Visual Studio Community Edition.
Общие теоретические сведения об организации параллельных вычислений можно найти в соответствующей литературе [1—6]. В данной работе мы рассматриваем только основы организации параллельных потоков.
1. Общие сведения о работе
Целью работы является изучение технологии программирования параллельных потоков Microsoft Windows.
Основные этапы выполнения работы:
— Процессы и потоки
— Процессоры и ядра
— Компилятор
— Параллельные потоки
— Состояние процесса
— Время выполнения
— Ускорение и эффективность
— Привязка задач к ядрам
— «Гонка» за доступ к данным
— Критическая секция
По результатам выполнения работы оформляется отчёт.
1.1. Составление и оформление отчёта
Отчёт оформляется в виде рабочей книги Microsoft Excel.
Состав отчёта:
— Титульный лист
— Оглавление
— Остальные листы
Для удобства навигации вкладки листов нумеруем.
В оглавлении делаем ссылку на каждый лист.
Подробнее оформление отчёта в пакете Excelописано в работе [7].
Задание. Создайте файл отчёта и оформите титульный лист и оглавление.
1.2. Ключевые определения
Перед началом выполнения работы необходимо определиться с основными терминами.
Задание. Выясните, что означают перечисленные термины:
— прикладная программа (application);
— алгоритм программы
— исходный текст программы;
— компилятор;
— вычислительный процесс (process);
— поток исполнения / выполнения (thread);
— многопоточность;
— центральный процессор (CPU);
— ядро микропроцессора (Core);
— HyperThreading;
— виртуальный процессор.
Заметим, что независимо от физической конфигурации компьютера, операционная система представляет все вычислительные устройства как виртуальные процессоры.
Задание. Запустите Task Manager( Диспетчер задач) и определите следующие параметры:
— число виртуальных процессоров;
— размер доступной оперативной памяти;
— число выполняемых процессов;
— число потоков — общее и в каждом процессе;
— уровень загрузки процессора в целом и каждого виртуального процессора.
2. Организация вычислительных экспериментов
2.1. Конфигурация компьютера
Возможности улучшения вычислительной производительности компьютера ограничены его конфигурацией. Поэтому нам предстоит познакомиться со своим компьютером.
Задание. Ознакомьтесь с конфигурацией компьютера и параметрами системы с помощью следующих средств:
— свойства компьютера;
— диспетчер устройств;
— параметр окружения NUMBER OF PROCESSORS;
— сайт производителя процессора;
— диспетчер задач.
Опишите в отчёте конфигурацию и состояние системы:
— процессор;
— разрядность процессора;
— число ядер;
— поддержка HyperThreading;
— версия операционной системы;
— разрядность операционной системы;
— число выполняемых потоков на ядро;
— число виртуальных процессоров;
— объём занятой оперативной памяти;
— объём виртуальной памяти
— наличие подкачки.
Данная работа выполняется с использованием среды разработки Microsoft Visual Studio. Далее рассматриваются примеры программ на языке программирования С, хотя компилятор поддерживает также и С++.
В работе используется бесплатная версия среды разработки:
Community Edition.
Дистрибутив находится на сайте
VisualStudio.com.
Рекомендуется использовать английскую версию среды программирования.
Читать дальше
Конец ознакомительного отрывка
Купить книгу