'
Научный журнал «Вестник науки»

Режим работы с 09:00 по 23:00

zhurnal@vestnik-nauki.com

Информационное письмо

  1. Главная
  2. Архив
  3. Вестник науки №12 (69) том 4
  4. Научная статья № 170

Просмотры  21 просмотров

Абакаров Г.М.

  


АНАЛИЗ И ОЦЕНКА МНОГОПОТОЧНОСТИ ДЛЯ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ *

  


Аннотация:
в представленной статье проанализировано воздействие многопоточности на производительность программ в контексте компьютеров с многоядерными процессорами. Автор подробно рассмотрел ключевые аспекты, включая работу с потоками, процессами, и оценку эффективности выполнения программ. В контексте данного текста, процесс определен как программа, воспринимаемая операционной системой как задача и управляемая супервизором задач. Процессы получают необходимые ресурсы, включая адресное пространство памяти, от операционной системы. Поток, в свою очередь, представляет собой выполняющийся программный код, запуск которого начинается с выполнения основного потока. Основной поток инициирует, выполняет и завершает работу процесса, и при необходимости может запускать дополнительные (рабочие) потоки, которые могут выполняться параллельно.   

Ключевые слова:
многопоточность, процесс, поток, программирование, оптимизация   


С каждым годом, с развитием многоядерных процессоров, вопрос эффективного использования вычислительных ресурсов становится все более актуальным. Одним из ключевых подходов к повышению производительности программ является использование многопоточности. В рамках исследования рассмотрены примеры реализации программы как однопоточной, так и многопоточной на языке программирования C#. Проанализированы ключевые аспекты работы с потоками, процессами и оценки эффективности. Цель статьи - анализ воздействия многопоточности на производительность программы на компьютере с многоядерным процессором. Приведен пример реализации программы как однопоточной, так и многопоточной на языке программирования C#. Ключевые аспекты включают в себя работу с потоками, процессами, многопоточность и оценку эффективности. Процесс в данном контексте представляет собой программу (приложение), воспринимаемую операционной системой как задачу и управляемую супервизором задач. Операционная система выделяет необходимые ресурсы процессу, включая адресное пространство процесса, представляющее область памяти. Под потоком понимается выполняющийся программный код. Запуск процесса начинается с выполнения основного потока, представленного главной функцией main (или WinMain в С/С++) и Main() в C#. Этот основной поток инициирует, выполняет и завершает работу процесса. Возможно, запуск дополнительных (рабочих) потоков из основного потока, которые могут выполняться параллельно с основным и другими потоками. В отличие от процесса, поток не обладает собственными ресурсами, и все запущенные потоки выполняются в одном и том же адресном пространстве своего процесса. Таким образом, если помимо основного потока в программе запускаются дополнительные рабочие потоки, приложение становится многопоточным. Возникает вопрос об эффективности многопоточных приложений по сравнению с однопоточными. При анализе эффективности многопоточных приложений относительно однопоточных важно учесть, что дополнительные (рабочие) потоки могут выполняться параллельно, увеличивая общую скорость выполнения задачи. Это особенно заметно при выполнении вычислительно интенсивных операций, таких как вычисление интеграла, где разделение задачи на подзадачи для многопоточного выполнения может привести к улучшению производительности. Однако стоит отметить, что при использовании многопоточности необходимо учитывать возможные проблемы синхронизации и доступа к общим ресурсам, таким как область памяти. Несоблюдение корректной синхронизации может привести к гонкам данных и другим нежелательным явлениям, влияющим на стабильность программы. Таким образом, хотя многопоточность может значительно улучшить производительность в определенных сценариях, эффективное использование этой техники требует внимательного управления и оптимизации для предотвращения потенциальных проблем, а также для максимизации выигрыша от параллельного выполнения задач. /В данном контексте был исследован метод вычисления интеграла, который многократно применялся на компьютере с процессором Intel Core i5-4170 CPU 3, 5 GHz (2 ядра, 4 логических процессора). Реализация обеих программ (однопоточной и многопоточной) выполнена на языке программирования C#. В случае многопоточной программы было использовано 4 потока для параллельного выполнения вычислений. /Рис. 1. Время работы однопоточных и многопоточных приложений при небольшом количестве вычислений./Рис. 2. Относительная эффективность многопоточных и однопоточных приложений.Выводы. Из представленных на рисунках графиках можно сделать вывод, что при ограниченном объеме вычислений многопоточная версия программы проявляет даже более низкую скорость выполнения по сравнению с однопоточной. Переходная точка для данного варианта приложения наблюдается примерно при 1200 вычислениях интеграла. Однако с увеличением объема вычислений эффективность многопоточной версии по сравнению с однопоточной существенно улучшается. На рисунке 2 представлено отношение времени выполнения многопоточной и однопоточной версий приложения при значительных объемах вычислений. Заметно, что данное отношение стремится к числу логических процессоров компьютера, что указывает на высокую (почти 100%) загрузку многоядерного процессора при работе многопоточного приложения. Эти результаты подчеркивают важность оптимизации и адаптации многопоточных приложений к конкретным характеристикам аппаратного обеспечения. Необходимость тщательной настройки числа потоков и синхронизации становится ключевым моментом для достижения оптимальной производительности в зависимости от характера задачи и доступных вычислительных ресурсов.   


Полная версия статьи PDF

Номер журнала Вестник науки №12 (69) том 4

  


Ссылка для цитирования:

Абакаров Г.М. АНАЛИЗ И ОЦЕНКА МНОГОПОТОЧНОСТИ ДЛЯ ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЙ // Вестник науки №12 (69) том 4. С. 1094 - 1099. 2023 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/11988 (дата обращения: 19.05.2024 г.)


Альтернативная ссылка латинскими символами: vestnik-nauki.com/article/11988



Нашли грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики) ?
- напишите письмо в редакцию журнала: zhurnal@vestnik-nauki.com


Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2023.    16+




* В выпусках журнала могут упоминаться организации (Meta, Facebook, Instagram) в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25 июля 2002 года № 114-ФЗ 'О противодействии экстремистской деятельности' (далее - Федеральный закон 'О противодействии экстремистской деятельности'), или об организации, включенной в опубликованный единый федеральный список организаций, в том числе иностранных и международных организаций, признанных в соответствии с законодательством Российской Федерации террористическими, без указания на то, что соответствующее общественное объединение или иная организация ликвидированы или их деятельность запрещена.