Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.065 c
2-1270625230
stovat
2010-04-07 11:27
2010.08.27
Применение формата для Label


2-1269273213
Nostalgia
2010-03-22 18:53
2010.08.27
очереди


15-1272032376
Демо
2010-04-23 18:19
2010.08.27
Ассоциативные массивы в БД


15-1260451155
Nootr
2009-12-10 16:19
2010.08.27
Где в ADO указывается адрес сервера?


11-1221227877
Kukushka-Q
2008-09-12 17:57
2010.08.27
DLL для MS Access





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский