⇚ На страницу книги

Читать Организация параллельных потоков. Часть 1. Лабораторный практикум

Шрифт
Интервал

© Валентин Юльевич Арьков, 2020


ISBN 978-5-4498-3657-1

Создано в интеллектуальной издательской системе Ridero

Введение

Большинство современных процессоров в настольных компьютерах и мобильных устройствах – многоядерные. Чтобы эффективно использовать такие вычислительные ресурсы, необходимо составлять параллельные программы. Для этого можно задействовать параллельные потоки либо параллельные процессы.

В данной работе рассматривается технология параллельного программирования потоков Microsoft Windows встроенными средствами, без специальных библиотек. Для составления и компиляции программ на Си используется бесплатная интегрированная среда разработки Microsoft Visual StudioCommunity 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;