powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Многопоточность и загрузка 8-и ядерного процессора
25 сообщений из 90, страница 1 из 4
Многопоточность и загрузка 8-и ядерного процессора
    #39843705
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть следующая ситуация:
1. Комп(i7 8 вирт. ядер; 8гб ОЗУ; ВЫНь7 х64; SSD для хранения данных; ХЕ10.2.3)
2. программа для обработки текстовых файлов в многопоточном режиме (настройка от 2 до 100 потоков)
- вызывается поток
- потоку передается путь к файлу
- поток считывает файл, изучает содержимое(есть несколько циклов ДЛЯ с большим числом итераций)
- поток принимает решение и копирует файл в другие каталоги

Результаты:
- сколько не выставляй количество потоков, все рано загрузка процессора 11-13% (всегда только 4-е ядра загружены на 25%) - это все по манагеру задач конечно
- пропорциональный рост потребляемой памяти, тут все понятно

Вопрос: как всетаки загрузить проц на все 200% ?
видимо есть какие то варианты?
или какието встроенные ограничения?

Всем ответившим по делу заранее спасибо.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843722
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

1. Много дисковой активности, всё начинает упираться в диск
2. Много операций с памятью, всё упирается в однопоточный менеджер памяти
3. Потоки манипулируют разделяемыми данными, вися на блокировках
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843749
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairвсе рано загрузка процессора 11-13%
100% / 8 ядер = ... о ужас, 12.5. То есть, программа параллельно не работает, и грузит только ОДНО ядро.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843765
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,
А если заменишь ssd на hdd - то, о ужас, загрузка процессора ещё уменьшится.
PS: И всё же, что за мода - пытаться вогнать компутер в ступор?...
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843773
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

отделить операции чтения и особенно записи от зависимости к количеству потоков, эмпирическим путем установить при каком достигается 100% загрузка очереди диска - создать свою очередь файлов, которую уже анализировать отдельными потоками, на диск же делать запись большими кусками, а не кучей мелких задач.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843774
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

еще как вариант по железу - собрать из ссд раид 0 с чередованием )
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843775
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PcrepairВопрос: как всетаки загрузить проц на все 200% ?

формально получается на все 800% )
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843776
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverinеще как вариант по железу - собрать из ссд раид 0 с чередованием )
+ раид контроллер внешний с большим кешем и обратной записью ))
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843792
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairнастройка от 2 до 100 потоков
Попробуй поиграться с affinity mask.
Я грузил процессор на 100%, задействовав все ядра.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843795
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanПопробуй поиграться с affinity mask.
Я грузил процессор на 100%, задействовав все ядра. У меня в расчетной задачи грузится на 100% без игр с масками, даже антивирь эпизодически беспокоится, не вирус ли.
У автора, скорее всего, где-то бутылочное горло типа Synchronize()
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843810
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисУ меня в расчетной задачи грузится на 100% без игр с масками
Если потоков больше, чем ядер, то так или иначе ОС примерно распараллелит.
Я обычно ограничиваю по количеству ядер и в этом случае бывает всякое.
Проще ручками указать.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843819
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
насчет Synchronize() идея интересная, но нет все по прежнему

в диск ничего не упирается, если отключить запись все по прежнему

операции с памятью... если потоков 2 тогда 15 мб, если 100 тогда 0.8...1.3 гб(но без сбоев), но загрузка проца по прежнему

"программа параллельно не работает, и грузит только ОДНО ядро" вот тут не понял, распределением нагрузки ОС же заведует и при много потоках ОС должна все ресурсы отдать. и что такое "программа параллельно не работает"

"Попробуй поиграться с affinity mask" ??? а моЖет для потока выставить tpHigher, tpHighest сейчас tpNormal
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843825
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair"Попробуй поиграться с affinity mask" ??? а моЖет для потока выставить tpHigher, tpHighest сейчас tpNormal
Это из другой оперы и вряд-ли поможет.

Но код лучше не показывать, т.к. гадать намного интереснее.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843830
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairв диск ничего не упирается, если отключить запись все по прежнему

а при одном потоке такая же загрузка ядра?
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843833
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairнасчет Synchronize() идея интересная, но нет все по прежнему Это я как пример привел, таких проблемных мест может быть много.

Pcrepairв диск ничего не упирается, если отключить запись все по прежнему
А если отключить чтение - просто инициализровать буфер случайными байтами?


операции с памятью... если потоков 2 тогда 15 мб, если 100 тогда 0.8...1.3 гб(но без сбоев), но загрузка проца по прежнему

"программа параллельно не работает, и грузит только ОДНО ядро" вот тут не понял, распределением нагрузки ОС же заведует и при много потоках ОС должна все ресурсы отдать. и что такое "программа параллельно не работает"

"Попробуй поиграться с affinity mask" ??? а моЖет для потока выставить tpHigher, tpHighest сейчас tpNormal

[/quote]
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843835
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"А если отключить чтение - просто инициализровать буфер случайными байтами?" ну тогда обрабатывать будет нечего и ессевтвенно производительность скакнет до небес даже со случайными байтами

вообще программа анализирует тексты(строки) в частности там есть много циклов ДЛЯ и ПОВТОР в том числе сравнение может идти 1500 строк с 50000 строк. может это уже проц быстрее не тянет? или где ограничение...
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843838
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair"А если отключить чтение - просто инициализровать буфер случайными байтами?" ну тогда обрабатывать будет нечего и ессевтвенно производительность скакнет до небес даже со случайными байтами

Если так, значит именно чтение и тормозит. Логично?
У Интела есть ряд примочек для ускорения работы с дисками для пары SSD-HDD, мне в свое время это помогло разрешить похожую проблему, когда после перехода c W7 на W10 внезапно стало все работать в разы медленнее, затык был именно на дисковых операциях.
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843839
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

на одном ядре попробуйте без потоков
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843842
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair"А если отключить чтение - просто инициализровать буфер случайными байтами?" ну тогда обрабатывать будет нечего и ессевтвенно производительность скакнет до небес даже со случайными байтами
а как вы вообще определили тогда что в диск не упирается?
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843846
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

а какой средний размер и количество файлов?
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843879
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverinPcrepair,
отделить операции чтения и особенно записи от зависимости к количеству потоков, эмпирическим путем установить при каком достигается 100% загрузка очереди диска - создать свою очередь файлов, которую уже анализировать отдельными потоками, на диск же делать запись большими кусками, а не кучей мелких задач.
wolverinеще как вариант по железу - собрать из ссд раид 0 с чередованием )
wolverin+ раид контроллер внешний с большим кешем и обратной записью ))

может сначала проблему найти?
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843885
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийможет сначала проблему найти?
а я как написал?
wolverinэмпирическим путем установить при каком достигается 100% загрузка очереди диска
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843907
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairили где ограничение...

Ограничение в том, что ты всё ещё продолжаешь писать валидный, но совершенно кривой код.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843931
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wolverinPcrepair, а какой средний размер и количество файлов?
файлов сотни тысяч, размер от 1000 байт до 20 мбайт. были еще от 20 до 100 мб но там уже памяти не хватает и поэтому такие файлы из обработки исключаются. да там и нет ничего полезного это дефектные данные
...
Рейтинг: 0 / 0
Многопоточность и загрузка 8-и ядерного процессора
    #39843936
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

возьми уже профайлер
...
Рейтинг: 0 / 0
25 сообщений из 90, страница 1 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Многопоточность и загрузка 8-и ядерного процессора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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