powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как в Linux убедиться что многопоточная программа равномерно загружает ядра
17 сообщений из 17, страница 1 из 1
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771651
PierreVanStulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

У меня есть программа, которая может обрабатывать данные в несколько потоков (threads), что по заявлению ее разработчиков существенно улучшает скорость получения результатов при наличии много(ядерной)процессорной среды (в программе реализован хорошо распараллеливаемый алгоритм).

Но как я могу убедиться, что она равномерно загружает ядра? Программа работает в ОС Linux. При исполнении top видно, что она хорошо загружает CPU, но как понять, что программа равномерно загружает все доступные мне ядра?

[img=https://www.sql.ru/images/Безымянный.png]
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771652
PierreVanStulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинка с результатом вывода top:
https://ibb.co/wrPbQmS
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771654
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PierreVanStulov,

это вам надо в тему про Unix, при чем тут программирование, вы же не пишете программу.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771656
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а так, htop показывает нагрузку на ядрах

...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771657
PierreVanStulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понимаю, htop также выдает агрегированную информацию по загрузке ядер всеми процессами. А можно как-нибудь посмотреть, как грузит ядра отдельный процесс?
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771662
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
fish-pc% 
fish-pc% ps aux | grep vlc
fish     21522 39.0  1.3 2071648 212304 ?      SNl  фев09  43:20 /usr/bin/vlc --started-from-file /home/fish/Загрузки/The.Lord.of.the.Rings-The.Return.of.the.King.2003.Extended-Cut.BDRip-AVC.-HQCLUB.mkv
fish     24341  0.0  0.0   6292  2292 pts/2    S+   00:36   0:00 grep vlc
fish-pc% 


Код: sql
1.
top -p21522 



...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771663
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PierreVanStulov,

Мне кажется что главная задача все таки обеспечить перформанс решаемой задачи в целом.
А равномерная утилизация ядер - задача вторичная. Более того. Утилизация ресурсов и эффективность не всегда связаны линейно.

Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39771664
Лысый дядька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо добавить, что во-первых несколько потоков таки могут физически исполняться параллельно на одном ядре с технологией hyper threading, а во-вторых многопоточность может дать профит на одном ядре за счет распараллеливания простоев - когда много потоков одновременно запрашивают внешние ресурсы.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39772485
PierreVanStulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лысый дядька,

проблема в том, что
Код: powershell
1.
top -p 21522



оставляет только один процесс, но статистика по загрузке процессоров %Cpu0, %Cpu1, ... остается суммарной для всех процессов системы.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39772486
PierreVanStulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonPierreVanStulov,

Мне кажется что главная задача все таки обеспечить перформанс решаемой задачи в целом.
А равномерная утилизация ядер - задача вторичная. Более того. Утилизация ресурсов и эффективность не всегда связаны линейно.

Модератор: Тема перенесена из форума "Программирование".

Да, это ясно, но мне всетаки хотелось как-нибудь понять, какой эффект дает распараллеливание.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39772490
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PierreVanStulovmaytonPierreVanStulov,

Мне кажется что главная задача все таки обеспечить перформанс решаемой задачи в целом.
А равномерная утилизация ядер - задача вторичная. Более того. Утилизация ресурсов и эффективность не всегда связаны линейно.

Модератор: Тема перенесена из форума "Программирование".

Да, это ясно, но мне всетаки хотелось как-нибудь понять, какой эффект дает распараллеливание.
На это может ответить разработчик который это приложение сделал параллельным.

Всё остальное будет нашими домыслами. Кстати почитай про закон Амдала.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39772495
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PierreVanStulovмне всетаки хотелось как-нибудь понять, какой эффект дает распараллеливание.

Так замеряй целевую метрику: время обработки данных. Можешь выделять ей последовательно
увеличивающееся количество ядер через taskset и смотреть насколько это время уменьшится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39772984
kernelpanic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pidstat -p <PID> -t покажет на каких ядрах запланировано исполнение потоков внутри процесса PID

Либо из первоисточников с собственным парсингом (смотреть в секцию runnable tasks):
cat /proc/sched_debug
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39773457
transpose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PierreVanStulov,

Можно запускать программу как time programname. В конце time покажет usertime and systemtime. Это косвенно говорит, насколько все ускорилось.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39773461
transpose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, я смотрю там уже 4GB swap используется. Это зачем? Может освободить программе побольше памяти, а то она может именно из-за этого тормозить.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39774382
PierreVanStulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kernelpanicpidstat -p <PID> -t покажет на каких ядрах запланировано исполнение потоков внутри процесса PID

Либо из первоисточников с собственным парсингом (смотреть в секцию runnable tasks):
cat /proc/sched_debug

Спасибо! Вот это уже близко к тому, что я хотел.

transpose Кстати, я смотрю там уже 4GB swap используется. Это зачем? Может освободить программе побольше памяти, а то она может именно из-за этого тормозить.


С этим еще нужно разбираться.
...
Рейтинг: 0 / 0
Как в Linux убедиться что многопоточная программа равномерно загружает ядра
    #39774499
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PierreVanStulovпроблема в том, что
Код: powershell
1.
top -p 21522



оставляет только один процесс, но статистика по загрузке процессоров %Cpu0, %Cpu1, ... остается суммарной для всех процессов системы.Shift+h нажать в top нужно.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как в Linux убедиться что многопоточная программа равномерно загружает ядра
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]