|
|
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть следующая ситуация: 1. Комп(i7 8 вирт. ядер; 8гб ОЗУ; ВЫНь7 х64; SSD для хранения данных; ХЕ10.2.3) 2. программа для обработки текстовых файлов в многопоточном режиме (настройка от 2 до 100 потоков) - вызывается поток - потоку передается путь к файлу - поток считывает файл, изучает содержимое(есть несколько циклов ДЛЯ с большим числом итераций) - поток принимает решение и копирует файл в другие каталоги Результаты: - сколько не выставляй количество потоков, все рано загрузка процессора 11-13% (всегда только 4-е ядра загружены на 25%) - это все по манагеру задач конечно - пропорциональный рост потребляемой памяти, тут все понятно Вопрос: как всетаки загрузить проц на все 200% ? видимо есть какие то варианты? или какието встроенные ограничения? Всем ответившим по делу заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2019, 20:46 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, 1. Много дисковой активности, всё начинает упираться в диск 2. Много операций с памятью, всё упирается в однопоточный менеджер памяти 3. Потоки манипулируют разделяемыми данными, вися на блокировках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2019, 21:46 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairвсе рано загрузка процессора 11-13% 100% / 8 ядер = ... о ужас, 12.5. То есть, программа параллельно не работает, и грузит только ОДНО ядро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 00:06 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, А если заменишь ssd на hdd - то, о ужас, загрузка процессора ещё уменьшится. PS: И всё же, что за мода - пытаться вогнать компутер в ступор?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 03:38 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, отделить операции чтения и особенно записи от зависимости к количеству потоков, эмпирическим путем установить при каком достигается 100% загрузка очереди диска - создать свою очередь файлов, которую уже анализировать отдельными потоками, на диск же делать запись большими кусками, а не кучей мелких задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 06:10 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, еще как вариант по железу - собрать из ссд раид 0 с чередованием ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 06:14 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
PcrepairВопрос: как всетаки загрузить проц на все 200% ? формально получается на все 800% ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 06:17 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wolverinеще как вариант по железу - собрать из ссд раид 0 с чередованием ) + раид контроллер внешний с большим кешем и обратной записью )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 06:26 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairнастройка от 2 до 100 потоков Попробуй поиграться с affinity mask. Я грузил процессор на 100%, задействовав все ядра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 07:31 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wadmanПопробуй поиграться с affinity mask. Я грузил процессор на 100%, задействовав все ядра. У меня в расчетной задачи грузится на 100% без игр с масками, даже антивирь эпизодически беспокоится, не вирус ли. У автора, скорее всего, где-то бутылочное горло типа Synchronize() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 07:41 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисУ меня в расчетной задачи грузится на 100% без игр с масками Если потоков больше, чем ядер, то так или иначе ОС примерно распараллелит. Я обычно ограничиваю по количеству ядер и в этом случае бывает всякое. Проще ручками указать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 08:35 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
насчет Synchronize() идея интересная, но нет все по прежнему в диск ничего не упирается, если отключить запись все по прежнему операции с памятью... если потоков 2 тогда 15 мб, если 100 тогда 0.8...1.3 гб(но без сбоев), но загрузка проца по прежнему "программа параллельно не работает, и грузит только ОДНО ядро" вот тут не понял, распределением нагрузки ОС же заведует и при много потоках ОС должна все ресурсы отдать. и что такое "программа параллельно не работает" "Попробуй поиграться с affinity mask" ??? а моЖет для потока выставить tpHigher, tpHighest сейчас tpNormal ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 08:47 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair"Попробуй поиграться с affinity mask" ??? а моЖет для потока выставить tpHigher, tpHighest сейчас tpNormal Это из другой оперы и вряд-ли поможет. Но код лучше не показывать, т.к. гадать намного интереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 08:53 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairв диск ничего не упирается, если отключить запись все по прежнему а при одном потоке такая же загрузка ядра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:00 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairнасчет Synchronize() идея интересная, но нет все по прежнему Это я как пример привел, таких проблемных мест может быть много. Pcrepairв диск ничего не упирается, если отключить запись все по прежнему А если отключить чтение - просто инициализровать буфер случайными байтами? операции с памятью... если потоков 2 тогда 15 мб, если 100 тогда 0.8...1.3 гб(но без сбоев), но загрузка проца по прежнему "программа параллельно не работает, и грузит только ОДНО ядро" вот тут не понял, распределением нагрузки ОС же заведует и при много потоках ОС должна все ресурсы отдать. и что такое "программа параллельно не работает" "Попробуй поиграться с affinity mask" ??? а моЖет для потока выставить tpHigher, tpHighest сейчас tpNormal [/quote] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:05 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
"А если отключить чтение - просто инициализровать буфер случайными байтами?" ну тогда обрабатывать будет нечего и ессевтвенно производительность скакнет до небес даже со случайными байтами вообще программа анализирует тексты(строки) в частности там есть много циклов ДЛЯ и ПОВТОР в том числе сравнение может идти 1500 строк с 50000 строк. может это уже проц быстрее не тянет? или где ограничение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:11 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair"А если отключить чтение - просто инициализровать буфер случайными байтами?" ну тогда обрабатывать будет нечего и ессевтвенно производительность скакнет до небес даже со случайными байтами Если так, значит именно чтение и тормозит. Логично? У Интела есть ряд примочек для ускорения работы с дисками для пары SSD-HDD, мне в свое время это помогло разрешить похожую проблему, когда после перехода c W7 на W10 внезапно стало все работать в разы медленнее, затык был именно на дисковых операциях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:18 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, на одном ядре попробуйте без потоков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:18 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair"А если отключить чтение - просто инициализровать буфер случайными байтами?" ну тогда обрабатывать будет нечего и ессевтвенно производительность скакнет до небес даже со случайными байтами а как вы вообще определили тогда что в диск не упирается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:20 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, а какой средний размер и количество файлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 09:25 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wolverinPcrepair, отделить операции чтения и особенно записи от зависимости к количеству потоков, эмпирическим путем установить при каком достигается 100% загрузка очереди диска - создать свою очередь файлов, которую уже анализировать отдельными потоками, на диск же делать запись большими кусками, а не кучей мелких задач. wolverinеще как вариант по железу - собрать из ссд раид 0 с чередованием ) wolverin+ раид контроллер внешний с большим кешем и обратной записью )) может сначала проблему найти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 10:06 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийможет сначала проблему найти? а я как написал? wolverinэмпирическим путем установить при каком достигается 100% загрузка очереди диска ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 10:18 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairили где ограничение... Ограничение в том, что ты всё ещё продолжаешь писать валидный, но совершенно кривой код. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 10:53 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wolverinPcrepair, а какой средний размер и количество файлов? файлов сотни тысяч, размер от 1000 байт до 20 мбайт. были еще от 20 до 100 мб но там уже памяти не хватает и поэтому такие файлы из обработки исключаются. да там и нет ничего полезного это дефектные данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:18 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39843792&tid=2039170]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 422ms |

| 0 / 0 |
