Эффективность многопоточных приложений
Анализ влияния многопоточности на скорость работы программы на компьютере с многоядерным процессором. Определение отношения времени выполнения многопоточного и однопоточного приложения к количеству логических процессоров компьютера и его загрузки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 27.01.2019 |
Размер файла | 57,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.Ru/
Размещено на http://www.Allbest.Ru/
Размещено на http://www.Allbest.Ru/
Казанский государственный технический университет им. А.Н. Туполева
Зеленодольский институт машиностроения и информационных технологий (филиал)
Кафедра машиностроения и информационных технологий
Эффективность многопоточных приложений
Кадомский А.А., студент
Захаров В.А., старший преподаватель
г. Зеленодольск
Аннотация
В статье анализируется влияние многопоточности на скорость работы программы на компьютере с многоядерным процессором. Пример обеих программ (однопоточной и многопоточной) был выполнен на языке программирования C#.
Ключевые слова: потоки, процессы, многопоточность, эффективность.
Процесс - это программа (приложение), представленная в операционной системе как задача и управляемая супервизором задач. Для выполнения операционная система выделяет процессу необходимые ресурсы, в частности, область памяти, называемую адресным пространством процесса.
Под потоком понимают выполняющийся программный код.
Выполнение процесса начинается с выполнения основного потока, представленного главной функцией main или WinMain в языках С/С++ и Main() на языке C#. Основной поток инициирует, выполняет и завершает работу процесса [1, с. 160].
Из основного потока могут быть запущены дополнительные (рабочие) потоки, которые будут выполняться параллельно с основным и другими потоками.
Поток, в отличие от процесса, не имеет собственных ресурсов, поэтому все запущенные потоки будут выполняться в одном и том же адресном пространстве своего процесса.
Итак, если в программе запускаются дополнительно к основному потоку ещё и рабочие потоки, то приложение становится многопоточным. Возникает вопрос об эффективности многопоточных приложений относительно однопоточных. Для примера был взят интеграл:
,
который многократно численно вычислялся. Вычисления выполнялись на компьютере с процессором
Intel® Core™ i3-4170 CPU@3,7 GHz (2 ядра, 4 логических процессора). Тексты обеих программ (однопоточной и многопоточной) были написаны на языке C#. В многопоточной программе количество потоков было равно 4.
многопоточность загрузка логический многоядерный процессор
Рис. 1. Время работы однопоточных и многопоточных приложений при небольшом количестве вычислений
Рис. 2. Относительная эффективность многопоточных и однопоточных приложений
Как мы видим из графиков на рис. 1, многопоточный вариант программы при малом количестве вычислений может быть даже более медленным, чем однопоточный. Точка перехода для данного варианта приложения приблизительно равна 1200 вычислениям интеграла. С ростом количества вычислений эффективность многопоточного варианта относительно однопоточного возрастает.
На рис. 2 приводится отношение времени выполнения многопоточного и однопоточного приложения при очень больших количествах вычислений. Как видно из данного рисунка, отношение времени выполнения стремится к количеству логических процессоров компьютера, что свидетельствует о высокой (почти 100%) загрузке многоядерного процессора при работе многопоточного приложения.
Литература
1. Медведев В.И. Особенности объектно-ориентированного программирования на C++/CLI, C# и Java. 2-е изд., испр. и доп. Казань: РИЦ «Школа», 2010. 444 с.
Размещено на allbest.ru
...Подобные документы
Технология создания многопоточных приложений в современных системах программирования с использованием языка C# в Visual Studio.NET. Разработка алгоритма и структуры программы. Описание и особенности тестирования приложения с разным количеством потоков.
курсовая работа [773,0 K], добавлен 14.03.2013Появление первого поколения ЭВМ, элементарная база процессоров и оперативных запоминающих устройств, скорость обработки данных. ЭВМ для планово-экономических расчетов. Архитектура машин V поколения: скорость выполнения вычислений и логических выводов.
презентация [1,3 M], добавлен 25.11.2015Общие сведения о таймерах, история их возникновения и применение. Развитие и совершенствование языков программирования. Разработка приложения "Таймер" для выключения и отмены отключения компьютера, показа времени начала работы программы и ее автозагрузки.
курсовая работа [182,9 K], добавлен 30.01.2015Разработка программы в среде Microsoft Visual C++ для вывода системной информации о компьютере, его оперативной памяти, процессоре, ip-адресе, принтерах, текущем видеорежиме и дисках. Использование программы Sysinfo для анализа работы компьютера.
курсовая работа [667,3 K], добавлен 24.04.2011Разработка справочной системы по визуальным компонентам языка программирования Delphi. Возможность сохранения измененных свойств компонент в файле с возможностью их загрузки в будущем. Логика работы приложения и разработка программного обеспечения.
курсовая работа [602,4 K], добавлен 22.01.2015Методы и средства программирования в операционной системе Mac OS X при помощи функций языка Си. Принципы создания многопоточных приложений и нитей, организация их корректного выполнения. Разработка программы состояний автомобилей на заправочной станции.
курсовая работа [200,5 K], добавлен 07.11.2012Проблемы создания многоядерных процессоров, новейшие классификации и перспективы развития. Особенности реализации многоядерной архитектуры: параллельные вычисления, программное обеспечение. Инструментарий для разработки многопоточных приложений.
курсовая работа [605,4 K], добавлен 21.03.2013Особенности и закономерности представления данных в компьютере, структура двоичной системы. Память компьютера: классификация, принципы работы, основные характеристики, программное и технологическое обеспечение. Работа с объектами приложений MS Office.
контрольная работа [250,9 K], добавлен 03.04.2016Как изготавливается процессор. Выбор процессора для офисного, игрового и домашнего компьютеров. Как заменить центральный процессор в компьютере. Повышение быстродействия процессоров, тактовой частоты, быстродействия памяти, понижение таймингов.
дипломная работа [1,7 M], добавлен 29.04.2014Разработка многопоточного приложения, выполняющего обмен данными между двумя процессами и анализ содержимого служебной области системного диска. Описание логической структуры программы, создание программы-инсталлятора, методика и результаты испытаний.
курсовая работа [4,3 M], добавлен 27.03.2011Разработка программного кода. Анализ набора функций, необходимых для реализации приложения. Создание компонента Timer. Получение списка имен процессов запущенных на локальном компьютере. Проверка правильности работы программы и соответствия требованиям.
курсовая работа [2,3 M], добавлен 05.01.2013- Определение аппаратного обеспечения компьютера. Синтез логических схем на элементах 2И-НЕ и 2-ИЛИ-НЕ
Определение состава аппаратной части компьютера Samsung NP355V4C-S01RU с помощью программного обеспечения и стандартных средств Windows. Построение логической структуры. Синтез комбинационного устройства в базисах логических элементов И-НЕ, ИЛИ-НЕ.
курсовая работа [648,0 K], добавлен 10.12.2013 Анализ уязвимостей в многопоточных программах, написанных на языке С++. Создание программного обеспечения, выполняющего анализ многопоточных программ, написанных на С++, на предмет наличия в них ошибок синхронизации типа "гонки" и "заброшенные замки".
курсовая работа [755,9 K], добавлен 20.09.2016Текстовые документы в текстовом процессоре, автоматизация обработки электронных таблиц. Операционные системы, их версии; определение информатики, информации, компьютера, определение аппаратного и программного обеспечения, формулы и расчеты на компьютере.
лабораторная работа [23,5 K], добавлен 17.09.2010Разработка программного решения по созданию мобильного приложения. Изучение технологий для разработки приложений. Анализ работы торговых агентов. Обоснование выбора языка программирования. Проектирование интерфейса структуры и верстка, листинг программы.
дипломная работа [2,2 M], добавлен 08.06.2017Основы организации приложения в Windows. Посылка и передача сообщений для окон. Создание и отображение главного окна приложения. Деактивация приложения, его фазы. Сообщения клавиатуры и функции для работы с ней. Определение состояния отдельных клавиш.
лекция [65,7 K], добавлен 24.06.2009Разновидности, производительность современных процессоров. Предназначение оперативной памяти. Микросхемы персонального компьютера. Постоянное запоминающее устройство. Тактико-технических характеристики процессоров. Перспективы развития памяти компьютера.
реферат [61,9 K], добавлен 22.11.2016Обработка текстовой информации на компьютере. Знакомство с текстовым процессором Microsoft Word. Создание, форматирование текстовых документов, выполнение операций с фрагментами текста. Копирование, перемещение, удаление. Создание и редактирование таблиц.
лабораторная работа [672,8 K], добавлен 19.12.2013Изучение структуры компьютера и принципов его функционирования. Центральный процессор и основной цикл его работы. Выполнение арифметических операций в ЭВМ. Разработка программы реализации арифметического выражения и отладка ее с помощью отладчика TD.
контрольная работа [87,3 K], добавлен 12.03.2011Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011