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

Валентин Юльевич Арьков
Организация параллельных потоков. Часть 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;

– версия операционной системы;

– разрядность операционной системы;

– число выполняемых потоков на ядро;

– число виртуальных процессоров;

– объём занятой оперативной памяти;

– объём виртуальной памяти

– наличие подкачки.

2.2. Среда разработки

Данная работа выполняется с использованием среды разработки Microsoft Visual Studio. Далее рассматриваются примеры программ на языке программирования С, хотя компилятор поддерживает также и С++.

В работе используется бесплатная версия среды разработки:

Community Edition.

Дистрибутив находится на сайте

VisualStudio.com.

Рекомендуется использовать английскую версию среды программирования.

Обратите внимание на название каталога, в который установлен компилятор.

В случае 32-разрядной ОС можно установить только 32-разрядные приложения. Каталог для установки:

Program Files.

В случае 64-разрядной ОС можно установить как 32-разрядные, так и 64-разрядные приложения. Каталоги для установки – соответственно:

Program Files (x86)

Program Files.

Далее мы будем создавать именно 32-разрядные приложения, причём работающие в командной строке.

Задание. Проверьте наличие компилятора на компьютере. Если компилятор установлен, запустите его. Если компилятор отсутствует, установите его.

Опишите в отчёте параметры компилятора:

– версия;

– язык интерфейса;

– разрядность.

Рейтинг@Mail.ru