Эффективность многопоточных приложений
Анализ влияния многопоточности на скорость работы программы на компьютере с многоядерным процессором. Определение отношения времени выполнения многопоточного и однопоточного приложения к количеству логических процессоров компьютера и его загрузки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 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