Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

ищу пример многопоточного копирования одного файла побайтно   Найти похожие ветки 

 
[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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.143 c
15-1266561272
Kerk
2010-02-19 09:34
2010.08.27
Глобальное потепление


2-1274419936
MKC
2010-05-21 09:32
2010.08.27
Отправка пакетов TCP


2-1265874675
tonich
2010-02-11 10:51
2010.08.27
Класс/Компонет


2-1271962588
Сергей
2010-04-22 22:56
2010.08.27
Замена и уберине лишнего (Делфи)


15-1264680746
ИТР-самоучка
2010-01-28 15:12
2010.08.27
"Толстый клиент" или "Тонкий клиент"