|
|
|
Многопоточность и загрузка 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 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, возьми уже профайлер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:22 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wolverinа как вы вообще определили тогда что в диск не упирается? так что если отключить запись на ССД!(файла после анализа в другой каталог. и удаление его же из основного каталога) то ничего не меняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:22 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairфайлов сотни тысяч, размер от 1000 байт 2 года назад начали тут наши сотрудничать с одним "рукоблудом", который для неких задач управления удаленными устройствами закодил gsm/gprs модемы, все это дело управлялось через файлы на ftp, я им еще тогда сказал - пока вы там на коленке обслуживаете "пару" садоводческих товариществ - вы не упираетесь в проблему количества мелких файлов на серваке, это ущербная логика не поверили, ну и что - теперь переделали на mysql, не так давно меня пытались убедить что надо формировать 10 тык мелких файлов, чем 1 со всеми данными ) так что открывайте хотя бы штатный системный монитор и смотрите счетчики диска - вам не зря сразу об этом написали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:25 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Дегтярев ЕвгенийPcrepair, возьми уже профайлер Я то возьму, но где? и что это такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:27 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairтак что если отключить запись на ССД! ну видимо записи сотни тысяч не осуществляется и тут переполнение очереди записи нет, однако проблема с диском у вас никуда не делась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:27 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairоперации с памятью... если потоков 2 тогда 15 мб, если 100 тогда 0.8...1.3 гб(но без сбоев) Дело не в количестве потребляемой памяти, а в частоте выделения/освобождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:40 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairwolverinа как вы вообще определили тогда что в диск не упирается? так что если отключить запись на ССД!(файла после анализа в другой каталог. и удаление его же из основного каталога) то ничего не меняется У Вас с логикой совсем плохо или Вы про быстродействие без чтения просто написали не проверяя? Запись на диск может быть асинхронной, а чтение файла целиком - нет. Удаление без корзины - операция, практически не требующая дисковой активности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 11:59 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairпрограмма для обработки текстовых файлов поток считывает файл, изучает содержимое загрузка процессора 11-13% По моему опыту, наиболее вероятная причина: Kazantsev AlexeyМного операций с памятью, всё упирается в однопоточный менеджер памяти Моя рекомендация, исключить все операции, изменяющие переменные типа string, (и другие явные/неявные операции выделения памяти, если они есть), по крайней мере из тела цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 12:55 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
UridianМоя рекомендация, исключить все операции, изменяющие переменные типа string, (и другие явные/неявные операции выделения памяти, если они есть), по крайней мере из тела цикла. Или использовать фиксированные буфера вместо строк. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 13:07 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Uridian Моя рекомендация, исключить все операции, изменяющие переменные типа string, (и другие явные/неявные операции выделения памяти, если они есть), по крайней мере из тела цикла. Прежде чем давать такие рекомендации нужно, действительно, профилирование запустить. Маловероятно, чтобы в задаче, где не требуется постоянное реаллоцирование, тормозил именно менеджер памяти. Хотя, конечно, встречаются талантливые люди... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 13:10 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисМаловероятно, чтобы в задаче, где не требуется постоянное реаллоцирование, тормозил именно менеджер памяти IntToStr, и вот тебе пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 13:15 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyСоколинский БорисМаловероятно, чтобы в задаче, где не требуется постоянное реаллоцирование, тормозил именно менеджер памяти IntToStr, и вот тебе пожалуйста... в коде потока и вызываемых потоком функций IntToStr нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 14:27 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
PcrepairKazantsev Alexeyпропущено... IntToStr, и вот тебе пожалуйста... в коде потока и вызываемых потоком функций IntToStr нет Ну вот, одну интригу загубил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 14:30 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wadmanНо код лучше не показывать, т.к. гадать намного интереснее. +++ Дегтярев Евгенийвозьми уже профайлер --- Не спортивно. Так будет не интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 14:49 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
PcrepairВопрос: как всетаки загрузить проц на все 200% ?запустить 8 экземпляров программы. не, ну а чо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 14:55 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисМаловероятно, чтобы в задаче, где не требуется постоянное реаллоцирование, тормозил именно менеджер памяти. Хотя, конечно, встречаются талантливые людиего может быть столько неявного что ни в чем неповинный, но просто неискушенный пользователь и знать не увидит сколько на пустом казалось бы месте огребает, пока на ассемблерный код не посмотрит, либо профайлер или кто еще не подскажет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:04 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairв коде потока и вызываемых потоком функций IntToStr нет Ну чего в угадайку-то играть... Простейший способ... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 1. Подключаешь первым модулем в проект. 2. В потоке, в начале итерации, сохраняешь значения счётчиков: AllocMemCount, ReallocMemCount, FreeMemСount в локальные переменные. 3. В конце итерации считаешь разницу и получаешь количество обращений к менеджеру памяти. 4. ПРОФИТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:13 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Друзья, привет! Я, конечно, отстал в больничках, но мы не сгорели, не потонули. И разъясните, пожалуйста, почему он 200% хочет на единственной тачке? PcrepairВопрос: как всетаки загрузить проц на все 200% ? __________ Даже если многомашинную систему соберёт, всё равно N*100% не получит. Будут потери на связь, диски и другую лабуду-периферию. Хоть в азоте тачки утопи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:30 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Ghost WriterPcrepairВопрос: как всетаки загрузить проц на все 200% ?запустить 8 экземпляров программы. не, ну а чо ну в общем работает. если запустить два раза(на разные базы конечно) то загрузка проца удваивается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:35 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
GatorДрузья, привет! Я, конечно, отстал в больничках, но мы не сгорели, не потонули. И разъясните, пожалуйста, почему он 200% хочет на единственной тачке? PcrepairВопрос: как всетаки загрузить проц на все 200% ? __________ Даже если многомашинную систему соберёт, всё равно N*100% не получит. Будут потери на связь, диски и другую лабуду-периферию. Хоть в азоте тачки утопи. сарказм же, нельзя быть таким простым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:36 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair, нельзя продукты делать на 12% КПД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:41 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey1. Подключаешь первым модулем в проект. 2. В потоке, в начале итерации, сохраняешь значения счётчиков: AllocMemCount, ReallocMemCount, FreeMemСount в локальные переменные. 3. В конце итерации считаешь разницу и получаешь количество обращений к менеджеру памяти. 4. ПРОФИТ. первым модулем в проект? в манагере проекта что не заметил никакой иерархии модулей В потоке, в начале итерации Итерация в программировании — в широком смысле — организация обработки данных, при которой действия повторяются многократно, не приводя при этом к вызовам самих себя (в отличие от рекурсии) че не там итерации в потоке просто идет вызов функций и логика в конце в конце итерации то нет а вообще этот код не сломает компьютер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:45 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
GatorPcrepair, нельзя продукты делать на 12% КПД ну да ну да. для того и тему вывесил, чтоб КПД завысить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:47 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairвообще этот код не сломает компьютер? с таким ником наверное должно быть не страшно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:48 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Вот так пытаешься помочь человеку, а он идиот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:49 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyВот так пытаешься помочь человеку, а он идиот... ну значит плохо пытаешься. нет плохих учеников, но есть плохие учителя(Ц) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 15:55 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairну значит плохо пытаешься. нет плохих учеников, но есть плохие учителя(Ц) Иногда для педагогического эффекта требуются розги, причем не виртуальные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 16:01 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairнет плохих учеников, но есть плохие учителя(Ц) Да, да, можешь и дальше самоутешаться этой инфантильной глупостью. Или таки включить мозг и начать изучать как работает компьютер и программы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 16:01 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
PcrepairKazantsev AlexeyВот так пытаешься помочь человеку, а он идиот... ну значит плохо пытаешься. нет плохих учеников, но есть плохие учителя(Ц) +1 000 000! Отличный девиз для неудачника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 16:37 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair ну в общем работает. если запустить два раза(на разные базы конечно) то загрузка проца удваивается Вот! Это показатель того, что программа написана с ошибкой в распараллеливании потоков. Где-то есть бутылочное горлышко и потоки работают последовательно. Проверяйте синхронизацию с основным потоком, возможно где-то неявная синхронизация, например выделение памяти или какой-то компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 19:53 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairну значит плохо пытаешься. нет плохих учеников, но есть плохие учителя(Ц) интересный вы человек, вам предлагают варианты - вы не делаете ничего, но уже на 3 страницу перешли ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 19:57 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wolverinPcrepairну значит плохо пытаешься. нет плохих учеников, но есть плохие учителя(Ц) интересный вы человек, вам предлагают варианты - вы не делаете ничего, но уже на 3 страницу перешли ) если удалить повторы-цитаты и просто треп не по делу останется не более одной страницы но как говориться в таких случаях "нет у меня для вас других форумов" Вот! Это показатель того, что программа написана с ошибкой в распараллеливании программа очень простая: - создается поток и ему передается несколько параметров(строки и числа) - поток через трубу читает файл с ССД диска и определяет его статус - копирует в другой каталог - удаляет файл в первом каталоге число потоков от 2 до 100, загрузка проца одинакова, меняется только размер занимаемой памяти прога уже обработала несколько сот тысяч файлов без единого сбоя (исключение) ага! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 20:40 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair- создается поток и ему передается несколько параметров(строки и числа) Когда вы перестанете мыслить низкоуровневыми примитивами типа потока, и начнете думать более высокоуровневыми такими как ITask. Ведь и код проще и поддержка проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 21:14 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Ну вот пример Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Я тут совершенно не понимаю, почему процессор должен быть загружен. Положил в папку 35 файлов по 25 мб. Ну перенеслись они за какое-то время... процессор тут при чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 21:54 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
А вот если добавить Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. То и получим 100% на всех ядрах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 22:01 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
авторТо и получим 100% на всех ядрах. X-Cite это все познавательно, занимательно и очень интересно(работа с диском). но не имеет никакого отношения к загрузке проца в моем случае но все равно спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 22:38 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
PcrepairавторТо и получим 100% на всех ядрах. X-Cite это все познавательно, занимательно и очень интересно(работа с диском). но не имеет никакого отношения к загрузке проца в моем случае но все равно спасибо автор1. Комп(i7 8 вирт. ядер; 8гб ОЗУ; ВЫНь7 х64; SSD для хранения данных; ХЕ10.2.3) 8 одновременных тасок с внутренними циклами загрузят все ядра на 100%. Уберите вашу работу с потоками на таски и увидите результат.. Если конечно нет каких-то внутренних синхронизаций между ними и пока одна работает другие 7 ждут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2019, 22:55 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairесли удалить повторы-цитаты и просто треп не по делу останется не более одной страницы но как говориться в таких случаях "нет у меня для вас других форумов" если удалить все ваши посты, потому что они вообще ниачем, то может и еще меньше станет даже я погуглил варианты которые советуют разработчики крупных систем в вашей ветке - вы же не изучили ничего, все одно и то же городите как попугай, никакого анализа не сделано вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 05:41 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
8 одновременных тасок с внутренними циклами загрузят все ядра на 100% все таки задача не в том чтобы ПРОСТО загрузить проц на 100% а загрузить его на 100% задачами обработки данных. или имеется в виду Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. типа заменить поток на задание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 07:25 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
X-CitePcrepairпропущено... X-Cite это все познавательно, занимательно и очень интересно(работа с диском). но не имеет никакого отношения к загрузке проца в моем случае но все равно спасибо автор1. Комп(i7 8 вирт. ядер; 8гб ОЗУ; ВЫНь7 х64; SSD для хранения данных; ХЕ10.2.3) 8 одновременных тасок с внутренними циклами загрузят все ядра на 100%. Уберите вашу работу с потоками на таски и увидите результат.. Если конечно нет каких-то внутренних синхронизаций между ними и пока одна работает другие 7 ждут. А 8 одновременно потоков с внутренними циклами не загрузят все ядра на 100%? ITask - это интерфейс, обертка над TThread и пулом потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 09:44 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
ziv-2014 Вызвать асинхронно метод который выполнчет работу проще для понимания, чем копаться в наследниках tthread. Сама фраза передачи в поток строки и числа уже говорит о тотальном непонимании как это асе работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 10:11 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
X-CiteСама фраза передачи в поток строки и числа уже говорит о тотальном непонимании как это асе работает... т.е. чтение из одной области памяти разными потоками вызывает блокировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 10:15 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
wolverinX-CiteСама фраза передачи в поток строки и числа уже говорит о тотальном непонимании как это асе работает... т.е. чтение из одной области памяти разными потоками вызывает блокировки? Нет. С чего вдруг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 10:21 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
X-Citeziv-2014 Вызвать асинхронно метод который выполнчет работу проще для понимания, чем копаться в наследниках tthread. Сама фраза передачи в поток строки и числа уже говорит о тотальном непонимании как это асе работает... Я так полагаю вы тролите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 10:25 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
X-CiteНет. С чего вдруг? говорят тут про блокировки все, понять не могу где они ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 10:55 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Я вам привел минимальный код который выполняет мнимую полезную работу согласно вашим пунктам и нагружает соответственно все ядра. Читает файл. Что-то делает с ним. Записывает его в другое место и удаляет. У меня hdd. Все работает в параллели и все ядра загружены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2019, 11:08 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Кода, я так понимаю, мы так и не увидим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2019, 14:32 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
если автор уверен, что в его коде нет блокировок, то ... был у меня случай на Windows Server какой-то, режим питания стоял по умолчанию и проц никак не хотел "грузиться", но поменяли план электропотребления и чудо произошло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 12:24 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepair"программа параллельно не работает, и грузит только ОДНО ядро" вот тут не понял, распределением нагрузки ОС же заведует и при много потоках ОС должна все ресурсы отдать. и что такое "программа параллельно не работает" 12% загрузки 8 ядерного процессора это 1/8 от 100% загрузки 8ядерного процессора. Таким образом, реально загружено только 1 ядро из 8. То, что вы видите в диспетчере задач - ОС просто перекитывает ваш процесс с одного ядра на другое. И вы видите типа "пилу" на нескольких ядрах. Если бы у вас хоть еще 1 ядро было дополнительно загружено, вы бы увидели общую загрузку процессора между 13 и 25%. Если у вас в программе n потоков, но используется 1 ядро, это значит, что потоки параллельно не работают - где-то они затыкаются на монопольной синхронизации между потоками. Для дельфи есть несколько примеров работы с потоками, которые реально распараллеливаются по ядрам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 13:08 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Pcrepairпрограмма очень простая: - создается поток и ему передается несколько параметров(строки и числа) - поток через трубу читает файл с ССД диска и определяет его статус - копирует в другой каталог - удаляет файл в первом каталоге число потоков от 2 до 100, загрузка проца одинакова, меняется только размер занимаемой памяти прога уже обработала несколько сот тысяч файлов без единого сбоя (исключение) ага! давно известно, что обращение к диску (хоть HDD, хоть SDD) - это самая медленная операция. если вы упираетесь в скорость чтения/записи диска, то хоть в 100500 потоков запустите, все равно быстрее не станет. и, конечно, ожидать загрузки всех ядер процессора на 100% при дисковых операциях очень наивно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 13:50 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Как показывает практика, загрузить дисковую систему на 100% сложно, какие-то дополнительные телодвижения есть всегда, и они параллелятся вполне. Нужно подбирать очень особенную задачу наверно, чтобы от распараллеливания выигрыша вообще не было. Другое дело, что ожидать 100% загрузки ядер тоже не всегда стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:02 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
06.08.2019 17:02, makhaon пишет: > Как показывает практика, загрузить дисковую систему на 100% сложно отформатируй дискетку в Win95 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:03 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
kdvиспользуется 1 ядро, это значит, что потоки параллельно не работаютaffinitymask? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:07 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
makhaon Как показывает практика, загрузить дисковую систему на 100% сложно, какие-то дополнительные телодвижения есть всегда, и они параллелятся вполне. Нужно подбирать очень особенную задачу наверно, чтобы от распараллеливания выигрыша вообще не было. Берем 1 физичесое устройство (HDD или SDD) и копируем 100 файлов последовательно и 100 файлов параллельно. Параллельно будет медленее. Нужны весьма специфические условия (например, каждый фал на отдельном физическом носителе), чтобы распаралеливание дисковых операция дало ускорение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:22 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
makhaonКак показывает практика, загрузить дисковую систему на 100% сложновсем бы такую практику чтоб дисковая не перегружалась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 17:38 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
b0rkБерем 1 физичесое устройство (HDD или SDD) и копируем 100 файлов последовательно и 100 файлов параллельно. Параллельно будет медленее... При работе с одиночным HDD основное время занимает переход головки с дорожки на дорожку, особенно начало-конец + конец-начало диска. Если использовать асинхронный ввод-вывод, то можно существенно повысить скорость работы, путем уменьшения кол-ва таких переходов. Ну и порты завершения ввода-вывода в помощь для оптимизации процессорного времени. Крайне рекомендую 1-ю часть "Программирование серверных приложений для Windows 2000" Рихтера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 18:37 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
b0rkдавно известно, что обращение к диску (хоть HDD, хоть SDD) - это самая медленная операция неправда, есть еще сеть )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2019, 19:59 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Дискету с дисководом найдёшь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 09:52 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
vavan, Перегружается, если потоков много. Но мы же про один говорим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 09:54 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Alex9801, И часто встречается копирование в пределах тома? В реальной программе, а не в тестах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 09:57 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
b0rk, Предыдущее сообщение было адресовано этому человеку, не туда отписал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 09:59 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
makhaonПерегружается, если потоков много. Но мы же про один говорим?я хз сколько там потоков по дифолту, но мне для примера даже винрару приоритет понижать приходится и паузы ставить чтоб не ставил раком всю систему при упаковке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 10:34 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
Архиваторы успешно грузят проц на 100%. И работают при этом с диском активно. То же самое - редакторы/перекодировщики видео. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 12:45 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
YuRockАрхиваторы успешно грузят проц на 100%в моем случае проца-то и прочим доставалось достаточно а вот дисковая раком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 12:51 |
|
||
|
Многопоточность и загрузка 8-и ядерного процессора
|
|||
|---|---|---|---|
|
#18+
YuRockАрхиваторы успешно грузят проц на 100%. И работают при этом с диском активно. То же самое - редакторы/перекодировщики видео. архиваторы читают файлы в один поток, потом в несколько потоков жмут, и опять в один записывают. архиваторы умные люди писали однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2019, 12:58 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2039170]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
105ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 490ms |

| 0 / 0 |
