![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ищу пример многопоточного копирования одного файла побайтно
[true]TRIx © (2010-04-18 06:01:00)используя массив под буфер ищи пример многопоточного копирования
Styx (2010-04-23 15:39:00) [1]Думаю, что
первое - 50%, второе - 50%
Так будет, если специально affinity не выставлять.
Sha (2010-04-23 15:06:00) [2]> [true]TRIx © (23.04.10 05:00) [42]
> процессор загружен всего на 50% тс на одно ядро
Как загружены ядра?
первое - 0%, второе - 50%
или
первое - 0%, второе - 100%
Демо (2010-04-23 10:57:00) [3]
> все равно оно не загрузится, так как чтение с диска будет
> делать паузу при загрузке процесса обработки буфера.
Как раз в том случае, когда процесс чтения с диска занимает продолжительное время,обработка информации в дополнительном потоке увеличит общую скорость.
Во время операции чтения/записи процессор вообще не загружен. Именно в это время возможно обрабатывать параллельно данные в памяти.
[true]TRIx (2010-04-23 05:00:00) [4]Еще раз. У меня 2 ядра, программа в диспетчере выполняется под 2мя ядрами (галки).
Считывает куски по 512 кб, процессор загружен всего на 50% тс на одно ядро, меня такая скорость обработки не устраивает, пробовал ставить куски больше - результата нет. Я прекрасно понимаю, что диск тормозит процесс обработки. Хотелось бы включить обработку на всю мощь, не знаю как это задействовать. Обработка буфера достаточно тормозная, идет конвертирование.. стоит ли париться насчет потоков, или можно пример как подключить оба ядра на обработку всего этого дела. Думаю без разници, что я включу каким-то макаром второе ядро на полную загрузку, все равно оно не загрузится, так как чтение с диска будет делать паузу при загрузке процесса обработки буфера.
Sha (2010-04-21 16:03:00) [5]Логика умеет прекрасно объяснять наблюдаемые факты,
но не так хорошо справляется с их предсказанием.
QAZ (2010-04-21 15:53:00) [6]не логично :) в данном случае тормоз-диск, а не проц
> при этом загрузка процессора маленькая
Sha (2010-04-21 15:47:00) [7]> считать 10раз по 1м дольше чем 1раз по 10м
считать 10 раз по 1м, производя вычисления с прочитанными данными,
быстрее чем считать 10м, а потом все вычислить.
QAZ (2010-04-21 15:20:00) [8]
> Не будет.
считать 10раз по 1м дольше чем 1раз по 10м
Sha (2010-04-21 13:28:00) [9]> а в данном случае будет возможно быстрей будет читать блоками по 10мб
Не будет.
QAZ (2010-04-21 13:02:00) [10]ну для начала могбы сказать какое время обработки тебя не устраивает
с учетом того что средняя максимальная скорость чтения дисков примерно 40Мб\сек
10 гиг быстрей чем за 250 сек ты не обработаеш в принципе
а в данном случае будет возможно быстрей будет читать блоками по 10мб
Германн (2010-04-21 01:21:00) [11]
> Это обработка даёт низкий процент загрузки процессора или
> чтение с диска?
>
А ты автору объясни как это узнать. Ибо он имхо "плавает" в теме. См. [27]
Anatoly Podgoretsky (2010-04-20 23:24:00) [12]> Leonid Troyanovsky (20.04.2010 22:53:33) [33]
И четырех процессорную машину с восьми ядерными ксеонами.
Leonid Troyanovsky (2010-04-20 22:53:00) [13]
> Anatoly Podgoretsky © (20.04.10 22:44) [31]
> не нагружен. Может над диском и дисковыми операциями надо
> работать, наверное.
Точно, выкинуть такой диск, на...верное :)
--
Regards, LVT.
Демо (2010-04-20 22:50:00) [14]
> скопировал кусок, теперь обрабатывается и пока не считывает
> другой кусок,
Это обработка даёт низкий процент загрузки процессора или чтение с диска?
Anatoly Podgoretsky (2010-04-20 22:44:00) [15]> Leonid Troyanovsky (20.04.2010 22:22:30) [30]
Ну и как тогда помогут потоки, ведь процессор все равно не нагружен. Может над диском и дисковыми операциями надо работать, наверное.
Leonid Troyanovsky (2010-04-20 22:22:00) [16]
> Anatoly Podgoretsky © (20.04.10 21:57) [28]
> Раз нагрузка на процессор низкая, то это значит лишь одно,
Тормозной диск :)
--
Regards, LVT.
Leonid Troyanovsky (2010-04-20 22:20:00) [17]
> [true]TRIx © (20.04.10 21:28) [26]
> Будет ли это быстрее.. или есть какие-то альтернативы?
8 процессоров, 16 потоков.
Будет быстрее. Наверное.
--
Regards, LVT.
Anatoly Podgoretsky (2010-04-20 21:57:00) [18]> [true]TRIx (20.04.2010 21:28:26) [26]
Раз нагрузка на процессор низкая, то это значит лишь одно, что система чем то другим занимается, а не обработкой.
[true]TRIx (2010-04-20 21:28:00) [19]Все проще. Мне надо максимум скорости в обработке.
тс.
есть файл, я его считываю допустим с кусками по 1 мб и затем обрабатываю
скопировал кусок, теперь обрабатывается и пока не считывает другой кусок, при этом загрузка процессора маленькая и скорость обработки не устраивает.
Вопрос такой: будет ли толк в потоках, в плане скорости обработки файла на максимум.
тс
считал кусок - обрабатываю, в это время другой поток считывает кусок и начинает обрабатывать.. и предположим таких 4 потока.
Будет ли это быстрее.. или есть какие-то альтернативы?
[true]TRIx (2010-04-20 21:28:00) [20]Забыл сказать, файлики у меня не хилые, могут быть и по 10 и выше гигов.