Организация параллельных потоков. Часть 1. Лабораторный практикум
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

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

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

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

Лабораторный практикум






12+

Оглавление

  1. Организация параллельных потоков. Часть 1
  2. Введение
  3. 1. Общие сведения о работе
    1. 1.1. Составление и оформление отчёта
    2. 1.2. Ключевые определения
  4. 2. Организация вычислительных экспериментов
    1. 2.1. Конфигурация компьютера
    2. 2.2. Среда разработки
  5. 3. Приёмы программирования
    1. 3.1. Программа Hello, World!
    2. 3.2. Диапазоны значений переменных
    3. 3.3. Параметры командной строки
    4. 3.4. Локализация вывода на экран
    5. 3.5. Числа в командной строке
  6. 4. Последовательные вычисления
    1. 4.1. Программа суммирования
    2. 4.2. Время работы программы
    3. 4.3. Пакетная обработка
    4. 4.4. Загрузка в Excel
  7. 5. Параллельные вычисления
    1. 5.1. Создание потока
    2. 5.2. Привязка процесса к ядрам
    3. 5.3. Параллельные потоки и ситуация гонки
    4. 5.4. Критическая секция
    5. 5.5. Взаимодействие потоков
    6. 5.6. Эффективность распараллеливания
  8. 6. Параллельное численное интегрирование
    1. 6.1. Варианты заданий
    2. 6.2. График функции
    3. 6.3. Грубая оценка
    4. 6.4. Аналитическое решение
    5. 6.5. Метод прямоугольников
    6. 6.6. Исследование погрешностей
    7. 6.7. Параллельное интегрирование
  9. ЛИТЕРАТУРА

Введение

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

В данной работе рассматривается технология параллельного программирования потоков 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. Организация вычислительных экспериментов

...