Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Два ядра  (Прочитано 8247 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #30 : 11 Ноября 2009, 14:32:22 »
интересно на 4-х ядерном будет показывать 25% загрузку на каждом ядре? :-)

Хз, тоже интересно, кто нибудь может проверить?

Оффлайн sht0rm

  • Старожил
  • *
  • Сообщений: 3397
    • Просмотр профиля
Re: Два ядра
« Ответ #31 : 11 Ноября 2009, 14:42:19 »

Оффлайн vi@tor

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Два ядра
« Ответ #32 : 11 Ноября 2009, 15:30:24 »
Сложилось впечатление, что некоторые господины воспринимают распараллеливание как некую магию, которую  можно только наблюдать по "приборам" типа диспетчера задач.
Хочется спросить: а этот ваш "честный немикрософтский диспетчер" работает на нулевом кольце привилегий или он работает на 3 кольце и за всей информацией обращается к винде, т.к. на 3 кольце доступа к железу нет? Но это скорее вопрос о корректности измерений и маркетинговых ходах микрософта. Мне бы хотелось сделать акцент на другом.

Приведу аналогию: есть задача, которую один человек выполняет за определенное время, например это сборка АК-47. мы хотим ускорить  этот процесс и даем для этого помощника. Возникает задача разделить обязанности между двумя "сборщиками" так, чтобы они друг другу не мешали и результат получился такой какой надо и за меньшее время. Думаю задача эта не так проста, не смотря на то, что нам полностью известен  и алгоритм, и результат, который мы хотим получить. А теперь внимание вопрос: смогут ли 2 человека разделить эту задачу ровно по 50%? Будут ли они при этом работать в 2 раза быстрее? а 4 человека во сколько раз будут быстрее и с каким распределением? а 8?

Тем кому этот пример кажется надуманным и неподходящим, могут попробовать распараллелить простейшую "пузырьковую" сортировку и написать сюда как же два ядра/процесса/потока/человека будут ее выполнять.

Вообщем мое мнение, что реальное распараллеливание есть только для многопоточных приложений, которые имеют несколько потоков, каждый из которых можно выполнять на отдельном ядре. Все остальное - надувательство и профанация. Да и почитайте про распараллеливание алгоритмов - это целая наука и я сомневаюсь, что Windows легко умеет это делать.

З.Ы.
Если Windows умеет замечательно распределять работу WinRar равномерно по ядрам, то зачем же автор Евгений Рошаль старался писал многопоточный режим? Типа не все версии виндов так умеют?:)
« Последнее редактирование: 11 Ноября 2009, 15:41:39 от vi@tor »

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Два ядра
« Ответ #33 : 11 Ноября 2009, 16:11:48 »
Цитировать
Вообщем мое мнение, что реальное распараллеливание есть только для многопоточных приложений, которые имеют несколько потоков, каждый из которых можно выполнять на отдельном ядре. Все остальное - надувательство и профанация. Да и почитайте про распараллеливание алгоритмов - это целая наука и я сомневаюсь, что Windows легко умеет это делать.
   

Подписываюсь под каждым словом. Надо это где-нибудь на видном месте гвоздями прибить :)

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #34 : 11 Ноября 2009, 17:37:09 »
Вы видимо смысл моих постов не понимаете или не хотите понимать. Еще раз повторяю (уже в который раз) я про распараллеливании однопоточной проги ни слова не сказал. Про это я вам обьяснил сразу, в третьем своем посте, на первой странице этой ветки. Прочтите очень внимательно мои посты с самого начала.
С самого начала был разговор, что в винде процесс выполняется на всех ядрах (как выяснилось путем постоянной переброски с одного на другой), а на Linuxе только на одном (если процесс однопоточный). Это я и пытаюсь обьяснить неверующим.
И при чем здесь вообще диспетчер задач? Что вы им заладили? у вас какая то психологическая травма в детстве произошла с участием диспетчера задач? с чего вы взяли, что он показывает неправильно загруженность процессора? Можете при помощи датчиков температуры сами убедиться, что второе ядро всетаки нагружается. Но только не надо опять плести, что я вам говорю про распараллеливании потока, и не надо рассказывать мне, что амд и интел сговорились с майкрософтом и те начали ставить датчики температуры которые подстраиваются под злобный, врущий и пожирающий маленьких детей диспетчер задач   ;),  лучше перечитайте очень внимательно тему.
И так, что мы имеем:
1) однопоточное приложение в Linuxе работает всегда только на одном ядре
2) в Windowsе поток работает на всех ядрах, но только по очереди, путем переброски с одного на другой, то есть, в один момент времени работу совершает одно ядро.

Надеюсь спора больше не будет. На ошибки внимание не обращайте.

Оффлайн Geo

  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Re: Два ядра
« Ответ #35 : 11 Ноября 2009, 19:21:24 »
 У меня нетбук Lenovo S10. Процессор Intel Atom N270. Одно ядро, но с поддержкой гипертрейдинг. В системном мониторе показывает 2 ядра по 800 МГц каждое вместо одного на 1600 МГц.
Так вот, загрузка обоих ядер на любом приложении примерно одинакова, причем первое фиктивное ядро часто нагружено на 5 - 15 % больше второго.
Вот вам и "многоядерность" :)

P.S. А "отзывчивость" на клаву и мышь субъективно по ощущению на нетбуке лучше, чем на стационарном компе с одноядерным DURON1300 с RAM 1Gb и такой-же системой 9.04.
Хотя видеокарта GF6600gt на порядок шустрее чем встроенная Intel GMA на нетбуке.
« Последнее редактирование: 11 Ноября 2009, 19:37:32 от Geo »
Lenovo S10, UNR 10.04, gnome, COMPAQ Presario, Mint13, mate
Desktop AthlonXP, 1Gb, Mint11, gnome
Desktop Core2Duo, 6Gb, Mint12(PAE), gnome

Оффлайн Toska

  • Автор темы
  • Участник
  • *
  • Сообщений: 118
    • Просмотр профиля
Re: Два ядра
« Ответ #36 : 11 Ноября 2009, 19:49:22 »
BRAVO, MLSERG !

Оффлайн Dixi257

  • Активист
  • *
  • Сообщений: 287
    • Просмотр профиля
Re: Два ядра
« Ответ #37 : 11 Ноября 2009, 20:19:06 »
1) однопоточное приложение в Linuxе работает всегда только на одном ядре
2) в Windowsе поток работает на всех ядрах, но только по очереди, путем переброски с одного на другой, то есть, в один момент времени работу совершает одно ядро.
А я люблю кодировать видео в Linux и наблюдать (процесс долгий, иногда несколько часов) при помощи gkrellm, как ложиться нагрузка на ядра. И вижу я, что как утверждение 1, так и утверждение 2 истинны под Linux Ubuntu.

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #38 : 11 Ноября 2009, 21:03:42 »
утверждение 1, так и утверждение 2 истинны под Linux Ubuntu.

С этим спорить не буду, так тоже может быть. А вы уверены что кодер не многопоточный? на сколько грузится проц?

Оффлайн Geo

  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Re: Два ядра
« Ответ #39 : 11 Ноября 2009, 21:43:50 »
 Второе утверждение неверно в принципе ни в Linuxе с ядром 2.6 SMP, ни в Windows XP и более новых с включенной поддержкой многопроцессорности.

Поищите в гугле, там много статей на эту тему 8)

P.S. Дураки не проектируют ядра. А среди программеров прикладного софта их вполне достаточно :P

Пользователь решил продолжить мысль 11 Ноября 2009, 22:08:49:
К началу темы
Цитировать
Установил Ubuntu 9.04 на машину с двух ядерным Core 2 Duo - всё ОК, но при работе приложений жестко грузится только одно ядро, а у второго загрузка едва до 4% доходит. Так и должно быть? (На Win при загрузке одного ядра более 45% нагрузка распределялась на оба ядра).

Toska если это так, то это ненормально. Может твое ядро Ubuntu не включило SMP?
Проверь
Цитировать
uname -a
grep -c ^processor /proc/cpuinfo
cat /proc/cpuinfo
« Последнее редактирование: 11 Ноября 2009, 22:08:49 от Geo »
Lenovo S10, UNR 10.04, gnome, COMPAQ Presario, Mint13, mate
Desktop AthlonXP, 1Gb, Mint11, gnome
Desktop Core2Duo, 6Gb, Mint12(PAE), gnome

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #40 : 11 Ноября 2009, 22:18:55 »
Второе утверждение неверно в принципе ни в Linuxе с ядром 2.6 SMP, ни в Windows XP и более новых с включенной поддержкой многопроцессорности.

Спорить надоело, предоставьте свое докозательство, я свое предоставил (на мой взгляд убедительное), хотябы ссылку на ресурс где описывается обратное

Пользователь решил продолжить мысль 11 Ноября 2009, 22:22:05:
Toska если это так, то это ненормально. Может твое ядро Ubuntu не включило SMP?
Проверь

Постойте, вы же сказали что распраделение НАГРУЗКИ (не распараллеливание) неверно впринципе, тогда как это может быть ненормально?
« Последнее редактирование: 11 Ноября 2009, 22:22:05 от mlserg »

Оффлайн Geo

  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Re: Два ядра
« Ответ #41 : 11 Ноября 2009, 23:35:28 »
  mlserg, потому что поток для ядра - это неделимый квант, и только дурак будет тратить
ресурсы процессоров на переброску неделимого потока с одного ядра на другое ради какой-то
"балансировки нагрузки". Итак, что бы обслуживать разными ядрами один и тот-же процесс приходится многократно оперировать со стеками потоков в кэше.
А ядро Windows как и ядро Linux писали отнюдь не дураки.

Откройте системный монитор на вкладке "Процессы", и вы увидите сколько их выполняется одновременно в вашем Linux (или Windows) и почти каждое из них состоит из множества потоков.
И если у вас одно ядро при этом загружено, а другое нет - что-то явно не в порядке.
Типично сам системный монитор запускает несколько десятков потоков и существенно нагружает процессор со всеми его ядрами. А планировщик балансирует нагрузку, что бы потоки более-менее равномерно получали доступ к ресурсам.
« Последнее редактирование: 11 Ноября 2009, 23:56:49 от Geo »
Lenovo S10, UNR 10.04, gnome, COMPAQ Presario, Mint13, mate
Desktop AthlonXP, 1Gb, Mint11, gnome
Desktop Core2Duo, 6Gb, Mint12(PAE), gnome

Оффлайн Meskalito

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #42 : 11 Ноября 2009, 23:42:27 »
Второе утверждение неверно в принципе ни в Linuxе с ядром 2.6 SMP, ни в Windows XP и более новых с включенной поддержкой многопроцессорности.

Поищите в гугле, там много статей на эту тему 8)


Geo как то непонятно, вы считаете что нити не перебрасываются с ядра на ядро?
Набирите в своем любимом поисковике THREAD MIGRATION

Или просто почитайте http://portal.acm.org/citation.cfm?id=1105745
В русскоязычном виде увы не нашел.

Оффлайн levine

  • Активист
  • *
  • Сообщений: 256
    • Просмотр профиля
Re: Два ядра
« Ответ #43 : 12 Ноября 2009, 00:00:47 »
параллельно смотрим на ProcessExplorer (который делали не майкрософт)

Если речь о Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx , то его делал Марк Русинович, который, как известно, на данный момент плоть от плоти Microsoft. Но это не важно, потому что я в обычном Диспетчере Задач Висты регулярно наблюдал, как загрузку процессора перекашивает на одно ядро, так что вот так.

Оффлайн Dixi257

  • Активист
  • *
  • Сообщений: 287
    • Просмотр профиля
Re: Два ядра
« Ответ #44 : 12 Ноября 2009, 00:22:26 »
Вот как у меня работает avidemux. На многопотоковость непохоже. http://video.yandex.ru/users/dwm257/view/1/

 

Страница сгенерирована за 0.02 секунд. Запросов: 19.