Когда дано вначале было слово, В нем жизнь была сама и дивный свет. Все, чтобы не сказали, было ново. В дела был преосуещствлен завет. В чести бывал слагавший изреченья Философ, иль оратор, иль поэт. Увы, словес сакральное значенье Ушло в небытие з много лет лет. Вся фальшь неисполнимых обещаний, Все, сказанное «к слову», невзначай, Повисло в тя

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

Организация параллельных потоков. Часть 1. Лабораторный практикум Валентин Юльевич Арьков В данной лабораторной работе рассматриваются основы организации параллельных потоков с помощью стандартных вызовов операционной системы.В работе используется бесплатная интегрированная среда разработки. Приводятся примеры программ на языке Си. Организация параллельных потоков. Часть 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; – версия операционной системы; – разрядность операционной системы; – число выполняемых потоков на ядро; – число виртуальных процессоров; – объём занятой оперативной памяти; – объём виртуальной памяти – наличие подкачки. 2.2. Среда разработки Данная работа выполняется с использованием среды разработки Microsoft Visual Studio. Далее рассматриваются примеры программ на языке программирования С, хотя компилятор поддерживает также и С++. В работе используется бесплатная версия среды разработки: Community Edition. Дистрибутив находится на сайте VisualStudio.com. Рекомендуется использовать английскую версию среды программирования. Обратите внимание на название каталога, в который установлен компилятор. В случае 32-разрядной ОС можно установить только 32-разрядные приложения. Каталог для установки: Program Files. В случае 64-разрядной ОС можно установить как 32-разрядные, так и 64-разрядные приложения. Каталоги для установки – соответственно: Program Files (x86) Program Files. Далее мы будем создавать именно 32-разрядные приложения, причём работающие в командной строке. Задание. Проверьте наличие компилятора на компьютере. Если компилятор установлен, запустите его. Если компилятор отсутствует, установите его. Опишите в отчёте параметры компилятора: – версия; – язык интерфейса; – разрядность. 3. Приёмы программирования 3.1. Программа Hello, World! Hello, World – это первая программа для знакомства со средой разработки и процедурой компиляции. Запустите Visual Studio. Создайте новый проект. File – New – Project. Выберите создание консольного приложения: Create a new project – Empty project – Next. Укажите название проекта: Project name. Каталог для хранения проекта: Location. Ставим галочку в строке: Place solution and project in the same directory. Нажмите кнопку Create. Добавьте файл с исходным текстом к проекту: Solution Explorer – Source Files – [Контекстное меню] – Add – New Item. В окне Add New Item установите Visual C++ – Code – C++ File (.cpp). Укажите название файла и его расположение. Нажмите кнопку Add. Введите текст программы (рис. 3.1). Рис. 3.1. Программа Hello, World Сохраните файл, нажав комбинацию клавиш: Ctrl + S. Установите конфигурацию проекта Release; х86. Чтобы скомпилировать исполняемый файл, вызываем в верхнем меню Build – Solution. Для запуска программы на выполнение используем комбинацию клавиш: [Ctrl + F5]. Сохранение файла вызывается с помощью следующей комбинации клавиш: [Ctrl + S]. Рекомендуем создавать проекты в подкаталогах одного рабочего каталога. Названия проектов, файлов и каталогов должны быть короткими и информативными. Чем короче путь к файлу, тем легче будет до него добраться в командной строке. Задание. Ознакомьтесь с историей программы «Hello, World» на сайте Википедии. Выясните, как правильно переводится эта фраза на русский язык. Задание. Прочитайте в Википедии статью Консоль. Выясните, что означает слово «консоль». Задание. Создайте проект и запустите программу на выполнение: – Создайте новый проект. – Добавьте файл типа *.С. – Введите исходный текст программы. – Скомпилируйте проект и запустите программу. – Скомпилируйте проект. – Запустите программу из среды разработки. – Запустите программу из Проводника Windows. Для работы в командной строке нужно запустить командное окно: [Win + R] – cmd – OK. Чтобы перейти на нужный диск, введите букву и двоеточие. Например, для перехода на диск D:, нужно ввести d: Переход между каталогами – команда cd. Чтобы подняться один на уровень выше по файловому дереву, используем команду cd.. Просмотр содержимого каталога: dir. Для запуска программы на выполнение введите название программы Задание. Запустите командную строку, перейдите в каталог своей программы и запустите её на выполнение. 3.2. Диапазоны значений переменных В нашей работе мы будем иметь дело с большими целыми числами – счётчиками и суммами. Поэтому при объявлении типа переменной нужно учитывать максимальное значение, которое можно будет записать в эту переменную. Диапазон значений переменной зависит от количества байт. Стандартные целые типы используют 1, 2, 4 или 8 байт. Кроме количества байтов, нужно учитывать наличие знака: – числа со знаком (signed) – числа без знака (unsigned). Зная эти параметры, можно приблизительно оценить диапазон возможных значений. Для грубых оценок можно считать, что 2^10 приблизительно равно 10^3. Задание. Составьте список целых типов и оцените диапазон их значений. 3.3. Параметры командной строки Программу (исполняемый файл типа *.EXE) обычно запускают на выполнение несколькими способами: – среда разработки; – Проводник Windows; – файловый менеджер типа FAR. При запуске программы на выполнение из Проводника обычно ограничиваются указанием имени исполняемого файла. Задание. Запустите свою программу тремя перечисленными способами. Командная строка – это один из первых видов компьютерных интерфейсов. Он может также упоминаться под другими названиями: – командное окно; – интерпретатор командной строки; – командный процессор; – command prompt. При запуске программы в командной строке у нас появляются дополнительные возможности. После имени исполняемого файла file. exe можно дополнительно указать любые параметры param1, param2, param3, напечатав их через пробел: file param1 param2 param3. Расширение имени файла EXE можно не указывать. В данной работе мы будем использовать параметры (аргументы) командной строки. Эти параметры попадают «внутрь» программы и доступны для использования во время выполнения программы. Конец ознакомительного фрагмента. Текст предоставлен ООО «ЛитРес». Прочитайте эту книгу целиком, купив полную легальную версию (https://www.litres.ru/v-u-arkov/parallelnye-potoki-windows-laboratornyy-praktikum/?lfrom=688855901) на ЛитРес. Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.
Наш литературный журнал Лучшее место для размещения своих произведений молодыми авторами, поэтами; для реализации своих творческих идей и для того, чтобы ваши произведения стали популярными и читаемыми. Если вы, неизвестный современный поэт или заинтересованный читатель - Вас ждёт наш литературный журнал.