Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Параллельное выполнение пересекающихся задач
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Zorro



Joined: 17 Feb 2005
Posts: 322
Location: Орел-Москва

Post (Separately) Posted: Sat Jan 20, 2007 01:37    Post subject: Reply with quote

Yams wrote:
Кроме того, WinXP отвратительно работает с двухъядерниками: она не умеет запускать одну программу сразу на двух ядрах. Две на двух - пожалуйста, а вот распараллелить потоки одной программы на два ядра она не умеет. Тестировал при помощи Тотала на машине друга, результат - всегда 50% загрузка на 2, 3 и более процессах копирования. Здесь могу ошибаться!!! Проверял только на одной машине

Вот только не надо валить на XP, ОК? Ты сам заметил, что две программы на двух процессорах работают без проблем. Дело совсем не в XP, а как раз в этих программах, которые не заточены под многопоточность. В интернете навалом статей по этой теме.
_________________
Приключение — это когда ковыляешь по грязи и снегу, страдая от язв на ногах, глистов, дизентерии и голода, а тебя преследуют те, кто твердо настроен тебя как минимум убить.
Sysadminz.Ru
Back to top
View user's profile Send private message
vserd



Joined: 26 Apr 2005
Posts: 118

Post (Separately) Posted: Mon Jan 22, 2007 15:09    Post subject: Reply with quote

Quote:

Вопрос: как соотносятся t(X)+t(Y) и t(X+Y)?

Как ни странно, но неравенство на современных компьютерах будет вот таким вот: t(X)+t(Y) > t(X+Y)

хм....
Для вычислительных задач на двух и более процессороной системе, при правильно построенном софте это справедливо.
Для дисковых операций t(X+Y) запросто может быть гораздо медленнее чем t(X)+t(Y). Сам на этом споткнулся при копировании DVD на два логических диска по F5->в фон. если копировался в два потока, время составило более 30 минут. Если в один поток (F5-F2), тогда время составило около 16 минут.
Back to top
View user's profile Send private message
Yams



Joined: 17 Oct 2005
Posts: 115
Location: Тверь

Post (Separately) Posted: Mon Jan 22, 2007 15:31    Post subject: Reply with quote

Quote:
Для дисковых операций t(X+Y) запросто может быть гораздо медленнее чем t(X)+t(Y).

Согласен, не совсем был в теме. Для операции с файлами всё зависит, конечно же, от того, откуда и куда копируется. Рассуждения выше я проговорил насчёт именно вычислений, то бишь основная нагрузка именно на процессор, а не на жёсткий диск.
Zorro, спорить не буду, соглашусь Smile Знания у меня по этому вопросу не настолько глубокие, руководствовался только своим личным опытом. Никак не удавалось мне найти описание в Windows MSDN способа задействовать оба ядра одной программой. Но это уже оффтоп, думаю, обсуждать здесь этот вопрос не стоит Smile
_________________
In Pascal we trust
Back to top
View user's profile Send private message
Zorro



Joined: 17 Feb 2005
Posts: 322
Location: Орел-Москва

Post (Separately) Posted: Mon Jan 22, 2007 17:31    Post subject: Reply with quote

Yams, посмотри на 3DNews, кажется там были статьи про двухядерные процессоры и про то, что почти нет программ, под них заточенных.
_________________
Приключение — это когда ковыляешь по грязи и снегу, страдая от язв на ногах, глистов, дизентерии и голода, а тебя преследуют те, кто твердо настроен тебя как минимум убить.
Sysadminz.Ru
Back to top
View user's profile Send private message
Nik



Joined: 01 Jan 2005
Posts: 583
Location: Киров

Post (Separately) Posted: Mon Jan 22, 2007 19:43    Post subject: Reply with quote

Под два ядра заточены последние версии DivX, XviD (может и других кодеков), WinRAR и 3D Studio MAX. Это из самых распространённых...
_________________
Качественный хостинг.
Back to top
View user's profile Send private message
Kent



Joined: 14 Dec 2004
Posts: 208

Post (Separately) Posted: Mon Jan 22, 2007 22:15    Post subject: Reply with quote

+ видеокодек x264, архиватор 7zip.
Back to top
View user's profile Send private message
Yams



Joined: 17 Oct 2005
Posts: 115
Location: Тверь

Post (Separately) Posted: Mon Jan 22, 2007 23:04    Post subject: Reply with quote

Убедили, беру свои слова обратно Smile
_________________
In Pascal we trust
Back to top
View user's profile Send private message
Lazy Crazy



Joined: 16 Jan 2005
Posts: 400

Post (Separately) Posted: Tue Jan 23, 2007 02:00    Post subject: Reply with quote

vserd wrote:
[Сам на этом споткнулся при копировании DVD на два логических диска по F5->в фон. если копировался в два потока, время составило более 30 минут. Если в один поток (F5-F2), тогда время составило около 16 минут.

Копировал с DVD привода?

Разговор ушёл немного в сторону. Главное - не время, затраченное компьютером, а время, потраченное человеком. И копирование "пересекающееся", а не просто две никак несвязанные между собой задачи.
_________________
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Tue Jan 23, 2007 03:49    Post subject: Reply with quote

2Lazy Crazy
Выслушав прения сторон, я лишь укрепился в своем мнении:
1) Те задачи, которые ты поставил изначально, удобнее выполнять последовательно. Это позволит а) устранить потенциальные конфликты б) повысить безопасность; в) сэкономить время на возможные переименования после окночания копирования;
2) Если подобные задачи приходится решать часто, то оптимальный путь - батник или скрипт, заточенный под конкретные условия. Гнаться за излишней универсальностью, по моему, неразумно. Еще раз подчеркну, что оный батник должен обеспечить именно последовательное, непересекающееся, выполнение задач. Тогда (если исключить время на написание и отладку батника) человеку нужно будет лишь запустить процесс. Итого: затраты времени человеком минимизированы.
Если же условия "пересечения" достаточно сложны, то выхода два: 1) все делать вручную: 2) написать батник с универсальностью, стремящейся к бесконечности. В ряде случаев последнее вообще невозможно.
Пример: нужно скопировать все файлы из A в B, а потом из C в A, но лишь более новые и с меньшим объемом. Это точно можно сделать с помощью xxcopy (ссылка в моем первом посте). При увеличении количества и сложности условий (и уменьшении числа возможных выполнений) задача остается решаемой, но на определенном этапе в целях экономии времени будет выгоднее пойти врукопашную, чем писать и отлаживать супер-сверх-мега-универсальный алгоритм.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
vserd



Joined: 26 Apr 2005
Posts: 118

Post (Separately) Posted: Tue Jan 23, 2007 11:50    Post subject: Reply with quote

2 Lazy Crazy
Quote:
Копировал с DVD привода?

Естественно :)
Quote:

Главное - не время, затраченное компьютером, а время, потраченное человеком. И копирование "пересекающееся", а не просто две никак несвязанные между собой задачи.

Ну это так кажется.... Я тоже думал что запуская копирование в два потока я потрачу меньше времени чем в последовательном копировании, в результате..... потратил больше :(
В пересекающемся копировании есть очень большая проблема как узнать что файл уже был скопирован???? Универсального решения нет, и товарищь Гислер не будет ее реализовывать.... Он и более нужные вещи неохотно реализует....
Так что проще и безопаснее будет выполнить это последовательно, и, с достаочно высокой вероятностью, возможно быстрее.
Back to top
View user's profile Send private message
Lazy Crazy



Joined: 16 Jan 2005
Posts: 400

Post (Separately) Posted: Thu Jan 25, 2007 14:07    Post subject: Reply with quote

vserd wrote:
2 Lazy Crazy
Quote:
Копировал с DVD привода?

Естественно Smile

Ещё бы с FDD попробовал... Very Happy Very Happy Very Happy
vserd wrote:

В пересекающемся копировании есть очень большая проблема как узнать что файл уже был скопирован????

Программа, которая копирует, не знает, завершилась ли операция? Shocked Shocked Shocked
_________________
Back to top
View user's profile Send private message
Lazy Crazy



Joined: 16 Jan 2005
Posts: 400

Post (Separately) Posted: Thu Jan 25, 2007 14:35    Post subject: Reply with quote

Вахмурка wrote:
2Lazy Crazy
Выслушав прения сторон,

Если не секрет - какие именно? Обсуждение, как я уже писал, ушло в сторону (не без вашей помощи Wink ), а именно по означенной проблеме толком никто не высказался.
Вахмурка wrote:

я лишь укрепился в своем мнении:
1) Те задачи, которые ты поставил изначально, удобнее выполнять последовательно. Это позволит а) устранить потенциальные конфликты б) повысить безопасность; в) сэкономить время на возможные переименования после окночания копирования;

Просто повтор того, что вы писали в самом начале, опять высосанная из пальца безопасность... Sad
Вахмурка wrote:

2) Если подобные задачи приходится решать часто, то оптимальный путь - батник или скрипт, заточенный под конкретные условия. Гнаться за излишней универсальностью, по моему, неразумно. Еще раз подчеркну, что оный батник должен обеспечить именно последовательное, непересекающееся, выполнение задач.

Какое тогда отношение это имеет к поставленной задаче? Shocked
Вахмурка wrote:

Тогда (если исключить время на написание и отладку батника)

Интересно, а почему это время надо исключать??? Shocked Shocked Shocked
Вахмурка wrote:

человеку нужно будет лишь запустить процесс. Итого: затраты времени человеком минимизированы.
Если же условия "пересечения" достаточно сложны, то выхода два: 1) все делать вручную: 2) написать батник с универсальностью, стремящейся к бесконечности. В ряде случаев последнее вообще невозможно.

Вот вы сами и согласились, что батник неприемлем и зачем было его вообще вспоминать?
Вахмурка wrote:

Пример: нужно скопировать все файлы из A в B, а потом из C в A, но лишь более новые и с меньшим объемом. Это точно можно сделать с помощью xxcopy (ссылка в моем первом посте).

Т.е. тот же батник...
Вахмурка wrote:

При увеличении количества и сложности условий (и уменьшении числа возможных выполнений) задача остается решаемой, но на определенном этапе в целях экономии времени будет выгоднее пойти врукопашную, чем писать и отлаживать супер-сверх-мега-универсальный алгоритм.

Всё же, похоже, вы немного не о том...
Ну хорошо, давайте такой пример приведу. Ни параллельное, ни последовательное выполнение задач - вообще одна-единственная задача: скопировать из одной папки в другую. НО - какие-то файлы заменить, а какие-то пропустить. Причём файлы большие, копируются медленно (например, vserd с DVD копирует... Wink ) - придётся довольно долго сидеть ждать каждый файл, чтобы указать для него соответствующее действие. А вот если бы сразу иметь возможность получить список файлов, для которых возникнет вопрос и указать для них необходимое действие (или, ещё универсальней - задать алгоритм, по которому будет приниматься решение) - тогда вы согласитесь, что человек сэкономит себе время? Параллельное выполнение пересекающихся задач - просто частный, более сложный случай этой ситуации; я никак не мог предположить, что может возникнуть сомнение, что человеческое время будет сэкономлено.
_________________
Back to top
View user's profile Send private message
vserd



Joined: 26 Apr 2005
Posts: 118

Post (Separately) Posted: Thu Jan 25, 2007 16:43    Post subject: Reply with quote

Lazy Crazy
Quote:
Ещё бы с FDD попробовал...

А на дискетке обїем не большой, там такое время не успевает набежать.... Но принцып тотже...
Quote:

Программа, которая копирует, не знает, завершилась ли операция?

в паралельном выполнении может и не знать....
Смотря как написанно... В данный момент не знает.

Quote:

одна-единственная задача: скопировать из одной папки в другую. НО - какие-то файлы заменить, а какие-то пропустить. Причём файлы большие, копируются медленно (например, vserd с DVD копирует... ) - придётся довольно долго сидеть ждать каждый файл, чтобы указать для него соответствующее действие. А вот если бы сразу иметь возможность получить список файлов, для которых возникнет вопрос и указать для них необходимое действие (или, ещё универсальней - задать алгоритм, по которому будет приниматься решение) - тогда вы согласитесь, что человек сэкономит себе время? Параллельное выполнение пересекающихся задач - просто частный, более сложный случай этой ситуации; я никак не мог предположить, что может возникнуть сомнение, что человеческое время будет сэкономлено.

это звучит так что сделайте то, что сам не знаю что....
1. Считать файлы из источника,
2. считать файлы из приемника,
3. найти совпадающие файлы
......
4. Написать понятный интерфейс чтобы можно было в нем разобраться
5. проверить этот интерфейс на некотором множестве тестеров.
6. найти список алгоритмов который будет покрывать 80% от пользователей программы.
......
7. Пользователь должен будет вручную указать какие файлы пропускать/обновлять. И не ошибиться при этом.....
8. начать процесс копирвания.
И в итоге
функция нужна ~0.1% существующим пользователям, трудо затраты приблизительно 2-4 недели на придумываение/кодирование и еще 2 месяца на сбор инфы об удобстве...
Частота использования маленькая, постоянные вопросы как этим пользоваться и зачем оно нужно....

Пользователь из СНГ, из СНГ покупателей очень мало, так мало, что даже язык не охота включать в дистрибутив, и потратить около 3 месяцев на неизвестно что??? да не вжизнь.

Я бы на это не подписался, или подписался за очень хорошие деньги....
Back to top
View user's profile Send private message
Lazy Crazy



Joined: 16 Jan 2005
Posts: 400

Post (Separately) Posted: Fri Jan 26, 2007 02:31    Post subject: Reply with quote

vserd wrote:

Quote:

Программа, которая копирует, не знает, завершилась ли операция?

в паралельном выполнении может и не знать....
Смотря как написанно... В данный момент не знает.

Кто именно не знает? Confused TC? Дык он вроде как и не умеет subj... Или ты имеешь в виду разные процессы - тогда само собой разумеется... Wink

vserd wrote:

Quote:

одна-единственная задача: скопировать из одной папки в другую. НО - какие-то файлы заменить, а какие-то пропустить. Причём файлы большие, копируются медленно (например, vserd с DVD копирует... ) - придётся довольно долго сидеть ждать каждый файл, чтобы указать для него соответствующее действие. А вот если бы сразу иметь возможность получить список файлов, для которых возникнет вопрос и указать для них необходимое действие (или, ещё универсальней - задать алгоритм, по которому будет приниматься решение) - тогда вы согласитесь, что человек сэкономит себе время? Параллельное выполнение пересекающихся задач - просто частный, более сложный случай этой ситуации; я никак не мог предположить, что может возникнуть сомнение, что человеческое время будет сэкономлено.

это звучит так что сделайте то, что сам не знаю что....
1. Считать файлы из источника,
2. считать файлы из приемника,
3. найти совпадающие файлы
......
4. Написать понятный интерфейс чтобы можно было в нем разобраться
5. проверить этот интерфейс на некотором множестве тестеров.
6. найти список алгоритмов который будет покрывать 80% от пользователей программы.

Покрывают жеребцы кобыл... Smile Вы с Вахмуркой всё пытаетесь убедить всех, что это никому не нужно и, притом, чертовски опасно. По сути дела речь идёт о расширении опций при копировании. Если уж вообще невозможен индивидуальный подход к каждому файлу (хотя при групповом переименовании это сделано), то хотя бы правила для разных шаблонов чем уж так сложно задать? И, кстати, это будет не опасней, а, в определённых случаях, безопасней ручной работы. Сидит пользователь, тупо жмёт "заменить" и на сотом файле делает это для файла, для которого ни в коем случае делать было нельзя... Shocked Либо же он спокойно запускает копирование, зная, что для нужного шаблона стоит правило "пропустить". Если бы можно было такие правила для копирования ещё и задавать, как правила по умолчанию, то можно спокойно доверять работу по копированию пользователям, которые... ну сам знаешь, какие они бывают иногда... Very Happy

Вот это, на мой взгляд, абсолютно выполнимо. Я же спрашивал, нельзя ли расширить задачу до параллельных работ (что, естественно, сложнее; но при решении первого уровня задачи и до этого уже близко).

vserd wrote:

......
7. Пользователь должен будет вручную указать какие файлы пропускать/обновлять. И не ошибиться при этом.....

А что он делает сейчас??? Shocked
vserd wrote:

8. начать процесс копирвания.
И в итоге
функция нужна ~0.1% существующим пользователям, трудо затраты приблизительно 2-4 недели на придумываение/кодирование и еще 2 месяца на сбор инфы об удобстве...
Частота использования маленькая, постоянные вопросы как этим пользоваться и зачем оно нужно....

Пользователь из СНГ

Почему ты уверен, что удобная и безопасная функция, существенно облегчающая рутинную работу будет интересна только на этой территории???
vserd wrote:

, из СНГ покупателей очень мало, так мало, что даже язык не охота включать в дистрибутив, и потратить около 3 месяцев на неизвестно что??? да не вжизнь.

Я бы на это не подписался, или подписался за очень хорошие деньги....

Напомнил одного знакомого, который постоянно всем говорит, что час его работы стоит $100. Но только вот ему никогда за его работу столько не платил... Laughing (извини, если обидел)
_________________
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Fri Jan 26, 2007 20:03    Post subject: Reply with quote

2Lazy Crazy
Да, ни один из нас другого не понял. Попробую более открытым текстом:
Параллельное выполнение пересекающихся задач не имеет ни единого преимущества перед последовательным выполнением СВЯЗАННЫХ задач.
А вот если ты поставишь вопрос следующим образом: "Как скопировать файлы из А в В, а потом (ПОТОМ) из С в А, учитывая предыдущее копирование?", то это будет другая, более интересная и полезная тема. Хотя, если я правильно понял, ТС тут уже будет совсем ни при чем.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group