Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Внизищу пример многопоточного копирования одного файла побайтно Найти похожие ветки
← →
[true]TRIx © (2010-04-18 06:01) [0]используя массив под буфер ищи пример многопоточного копирования
← →
Leonid Troyanovsky © (2010-04-18 16:12) [1]
> [true]TRIx © (18.04.10 06:01)
> используя массив под буфер ищи пример многопоточного копирования
Ищи пример побуферного копирования.
--
Regards, LVT.
← →
Демо © (2010-04-18 17:45) [2]
> ищу пример многопоточного копирования одного файла побайтно
Тебе сколько потоков сделать?
← →
Anatoly Podgoretsky © (2010-04-18 19:00) [3]> [true]TRIx (18.04.2010 06:01:00) [0]
Хочешь замедлить процесс копирования? Так есть более простые методы, без потоков
← →
Anatoly Podgoretsky © (2010-04-18 19:09) [4]Удалено модератором
← →
Anatoly Podgoretsky © (2010-04-18 19:09) [5]Удалено модератором
← →
[true]TRIx © (2010-04-19 02:24) [6]нужны потоки. так как читает в бфер и долго обрабатывает там данные, нужна максимальная загрузка. или это еще дольше будет работать?
← →
[true]TRIx © (2010-04-19 02:27) [7]1 берем кусок
2 обрабатываем кусок, массив (долго)
хотелось бы сравнить скорость в один поток и в несколько.
← →
Германн © (2010-04-19 02:37) [8]
> [true]TRIx © (19.04.10 02:24) [6]
>
> нужны потоки. так как читает в бфер и долго обрабатывает
> там данные
В рамках одного локального компьютера? Имхо бред.
← →
Германн © (2010-04-19 02:40) [9]Процессор-то всё равно один.
А если несколько, то это требует специального решения.
← →
Eraser © (2010-04-19 03:56) [10]> [7] [true]TRIx © (19.04.10 02:27)
а в чем сложность то? создавай столько потоков, сколько имеется т.н. исполнительных потоков процессора.
← →
Eraser © (2010-04-19 03:56) [11]> [9] Германн © (19.04.10 02:40)
intel core i7 - восемь исполнительных потоков.
← →
sniknik © (2010-04-19 07:10) [12]и восемь дисков, на которые копируется "один файл побайтно"?
> Хочешь замедлить процесс копирования? Так есть более простые методы, без потоков
+1
← →
Sha © (2010-04-19 09:32) [13]> нужны потоки. так как читает в бфер и долго обрабатывает там данные
Ну так и обрабатывай параллельно.
Причем тут параллельное чтение?
← →
[true]TRIx © (2010-04-19 09:38) [14]как сделать обработку под 2 процессора сразу, с максимальной загрузкой? можно инфу
← →
Сергей М. © (2010-04-19 09:39) [15]
> [true]TRIx © (19.04.10 09:38) [14]
SetThreadAffinityMask
← →
Sha © (2010-04-19 10:36) [16]> как сделать обработку под 2 процессора сразу
Как создать 2 доп. потока описано в справке, примеры есть в папке Demos.
С другой стороны, мне представляется маловероятным,
что начинающий столкнулся с тяжелой вычислительной задачей.
Интересно было бы узнать, что за задача такая?
← →
brother © (2010-04-19 10:49) [17]а многопоточность при чтении разве поможет?
← →
DVM © (2010-04-19 11:27) [18]Скорость чтения-записи на один поток была как то ограничена искусственно каким-либо факторами (по аналогии со скачиванием файла с сервера через Интернет), то многопоточное чтение-запись помогли бы. А так разницы не будет.
← →
Демо © (2010-04-19 12:40) [19]
> brother © (19.04.10 10:49) [17]
> а многопоточность при чтении разве поможет?
Скорость чтения одного файла в любом случае ограничена возможностями железа. При чтении из нескольких потоков скорость будет замедлена, возникнут дополнительные накладные расходы.
С другой стороны у автора конкретная задача, никак не связанная со скоростью именно копирования.
> [true]TRIx © (19.04.10 02:24) [6]
> нужны потоки. так как читает в бфер и долго обрабатывает
> там данные, нужна максимальная загрузка. или это еще дольше
> будет работать?
Сделаю пример попозже.
← →
Eraser © (2010-04-20 01:50) [20]я так понял у автора данных не так уж и много, затык не скорости записи, а скорости обработки. пусть пояснит?
← →
Демо © (2010-04-20 01:55) [21]В формулировке автора реализация не так проста, как кажется.
Всё равно добью пример - из принципа.
← →
Германн © (2010-04-20 02:05) [22]
> Демо © (20.04.10 01:55) [21]
>
> В формулировке автора реализация не так проста, как кажется.
>
> Всё равно добью пример - из принципа.
А какая у автора формулировка задачи?
Сможет ли твой, Саша пример, помочь автору?
← →
Демо © (2010-04-20 02:21) [23]
> > > В формулировке автора реализация не так проста, как
> кажется.> > Всё равно добью пример - из принципа.А какая
> у автора формулировка задачи?Сможет ли твой, Саша пример,
> помочь автору?
Автору вряд ли сможет помочь полностью. Но автор хоть увидит, что овчинка выделки не стоит.
А вот мозги тренировать и разминать их иногда полезно-)
Я периодически берусь за какую-нибудь задачку и решаю.
В данном случае нетривиальная логика - много факторов согласовать нужно.
Ту задачу, которая прозвучала в первом постинге, вообще не так просто решить.
Немудрено, что автор не нашёл примеров в интернете.
Если посмотреть на задачу более абстрактно, то ТЗ можно изменить так:
Есть некоторое количество источников данных и соответствующее им количество приёмников.
Объём данных, которые необходимо транспортировать от каждого источника к приёмнику известен.
Требуется обеспечить транспортировку данных из всех источников до приёмников с заданным ограничением количества объёма данных в единицу времени.
Применения:
- Cкачивание файлов из интернета с ограничением скорости (например, со скоростью не более 1Мбит/сек):
- Фоновое резервное копирование данных в локальной сети, не перегружая её;
← →
Германн © (2010-04-20 02:47) [24]
> Демо © (20.04.10 02:21) [23]
Ну Саш. Я очень сильно сомневаюсь, что ты правильно угадал задачу автора.
Если учесть [6], то я за Sha © (19.04.10 09:32) [13].
И за Sha © (19.04.10 10:36) [16].
Не хочется решать X, когда нужно решить Z.
← →
QAZ (2010-04-20 10:54) [25]Удалено модератором
← →
[true]TRIx © (2010-04-20 21:28) [26]Все проще. Мне надо максимум скорости в обработке.
тс.
есть файл, я его считываю допустим с кусками по 1 мб и затем обрабатываю
скопировал кусок, теперь обрабатывается и пока не считывает другой кусок, при этом загрузка процессора маленькая и скорость обработки не устраивает.
Вопрос такой: будет ли толк в потоках, в плане скорости обработки файла на максимум.
тс
считал кусок - обрабатываю, в это время другой поток считывает кусок и начинает обрабатывать.. и предположим таких 4 потока.
Будет ли это быстрее.. или есть какие-то альтернативы?
← →
[true]TRIx © (2010-04-20 21:28) [27]Забыл сказать, файлики у меня не хилые, могут быть и по 10 и выше гигов.
← →
Anatoly Podgoretsky © (2010-04-20 21:57) [28]> [true]TRIx (20.04.2010 21:28:26) [26]
Раз нагрузка на процессор низкая, то это значит лишь одно, что система чем то другим занимается, а не обработкой.
← →
Leonid Troyanovsky © (2010-04-20 22:20) [29]
> [true]TRIx © (20.04.10 21:28) [26]
> Будет ли это быстрее.. или есть какие-то альтернативы?
8 процессоров, 16 потоков.
Будет быстрее. Наверное.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2010-04-20 22:22) [30]
> Anatoly Podgoretsky © (20.04.10 21:57) [28]
> Раз нагрузка на процессор низкая, то это значит лишь одно,
Тормозной диск :)
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2010-04-20 22:44) [31]> Leonid Troyanovsky (20.04.2010 22:22:30) [30]
Ну и как тогда помогут потоки, ведь процессор все равно не нагружен. Может над диском и дисковыми операциями надо работать, наверное.
← →
Демо © (2010-04-20 22:50) [32]
> скопировал кусок, теперь обрабатывается и пока не считывает
> другой кусок,
Это обработка даёт низкий процент загрузки процессора или чтение с диска?
← →
Leonid Troyanovsky © (2010-04-20 22:53) [33]
> Anatoly Podgoretsky © (20.04.10 22:44) [31]
> не нагружен. Может над диском и дисковыми операциями надо
> работать, наверное.
Точно, выкинуть такой диск, на...верное :)
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2010-04-20 23:24) [34]> Leonid Troyanovsky (20.04.2010 22:53:33) [33]
И четырех процессорную машину с восьми ядерными ксеонами.
← →
Германн © (2010-04-21 01:21) [35]
> Это обработка даёт низкий процент загрузки процессора или
> чтение с диска?
>
А ты автору объясни как это узнать. Ибо он имхо "плавает" в теме. См. [27]
← →
QAZ (2010-04-21 13:02) [36]ну для начала могбы сказать какое время обработки тебя не устраивает
с учетом того что средняя максимальная скорость чтения дисков примерно 40Мб\сек
10 гиг быстрей чем за 250 сек ты не обработаеш в принципе
а в данном случае будет возможно быстрей будет читать блоками по 10мб
← →
Sha © (2010-04-21 13:28) [37]> а в данном случае будет возможно быстрей будет читать блоками по 10мб
Не будет.
← →
QAZ (2010-04-21 15:20) [38]
> Не будет.
считать 10раз по 1м дольше чем 1раз по 10м
← →
Sha © (2010-04-21 15:47) [39]> считать 10раз по 1м дольше чем 1раз по 10м
считать 10 раз по 1м, производя вычисления с прочитанными данными,
быстрее чем считать 10м, а потом все вычислить.
← →
QAZ (2010-04-21 15:53) [40]не логично :) в данном случае тормоз-диск, а не проц
> при этом загрузка процессора маленькая
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.067 c