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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн Toska

  • Автор темы
  • Участник
  • *
  • Сообщений: 118
    • Просмотр профиля
Два ядра
« : 10 Ноября 2009, 13:24:02 »
Установил Ubuntu 9.04 на машину с двух ядерным Core 2 Duo - всё ОК, но при работе приложений жестко грузится только одно ядро, а у второго загрузка едва до 4% доходит. Так и должно быть? (На Win при загрузке одного ядра более 45% нагрузка распределялась на оба ядра).
« Последнее редактирование: 10 Ноября 2009, 15:54:15 от Toska »

Оффлайн Sam Stone

  • Старожил
  • *
  • Сообщений: 1131
    • Просмотр профиля
Re: Два ядра
« Ответ #1 : 10 Ноября 2009, 13:40:34 »
Цитировать
Так и должно быть?
Да. Не расчитанные на многопоточность программы никак не смогут загрузить больше одного ядра
Цитировать
На Win при загрузке одного ядра более 45% нагрузка распределялась на оба ядра
наивный :)
Jellyfish 6.5.0-45-generic
2690v4 64Gb

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #2 : 10 Ноября 2009, 13:48:39 »
наивный :)

Он правильно говорит, в винде, если даже софт не заточен на многопоточность, нагрузка с одного ядра делится на два, по 50% каждое ядро грузится. Достаточно взглянуть на диспетчер задач

Оффлайн athost

  • Старожил
  • *
  • Сообщений: 1897
    • Просмотр профиля
Re: Два ядра
« Ответ #3 : 10 Ноября 2009, 13:58:00 »
Говоря "наивный", он имел ввиду, и правильно кстати, что это дядя Билл тебе показывает про якобы "распределение нагрузки". На самом деле действительность очень далека от показаний "диспетчера задач" ;D

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #4 : 10 Ноября 2009, 14:08:23 »
Говоря "наивный", он имел ввиду, и правильно кстати, что это дядя Билл тебе показывает про якобы "распределение нагрузки". На самом деле действительность очень далека от показаний "диспетчера задач" ;D

Я знаю, что процессор не загружается на 100%, только лиш на 50% и я об этом четко сказал в предыдущем посте. А вы сначало разберитесь сами, что к чему, а потом говорите, что мне показывает дядя билли. Архитектура ОС разная и нагрузка на проц распределяется по разному. Если вам не нравится как в винде распределяется нагрузка, то пожалуйста, можете привязать софт к любому ядру и будет как в Linuxе нагружаться одно ядро, но зато на все 100%. Автор ветки поэтому и задал вопрос почему в винде так, а в Linuxе эдак. По этому прежде чем попытаться сумничать, лучше сначало разобраться в даном вопросе.
Если вам не нравится диспетчер задач, то можете использовать ProcessExplorer от стороннего производителя, показания всеравно не изменется
« Последнее редактирование: 10 Ноября 2009, 14:11:36 от mlserg »

aleman

  • Гость
Re: Два ядра
« Ответ #5 : 10 Ноября 2009, 14:45:02 »
Тут всегда все говорят что Windows врет, обманывает а Linux весь такой правильный.
Поражение видать трудная штука.

Оффлайн gashome

  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Два ядра
« Ответ #6 : 10 Ноября 2009, 15:12:16 »
А я заметил странную вещь - в KDE распределиние равномерно идёт, в GNOME и Openbox постоянно одно ядро сильнее грузится

Оффлайн Gena_Zakharov

  • Участник
  • *
  • Сообщений: 154
    • Просмотр профиля
Re: Два ядра
« Ответ #7 : 10 Ноября 2009, 15:32:25 »
Если приложение конструктивно не использует параллельность, то занимать одновременно оно может только одно ядро.
Но поскольку процессов всегда больше, чем ядер, то выполнение любой задачи периодически прерывается. Восстанавливаться оно может либо на том же ядре (и тогда оно будет сильнее загружено в среднем), либо на другом (тогда будет загрузка 50% обоих ядер но реально никакой параллельности и выигрыша в скорости нет).
Выбор стратегии зависит от планировщика процессов.

Единственное доказательство параллельной работы программы -- загрузка обоих ядер на 100% Все остальное не информативно. В htop даже можно увидеть 2 потока, каждый на своем ядре.

Dell Inspiron 1501
OS: Ubuntu 10.04 / Gentoo

Оффлайн Toska

  • Автор темы
  • Участник
  • *
  • Сообщений: 118
    • Просмотр профиля
Re: Два ядра
« Ответ #8 : 10 Ноября 2009, 15:36:17 »
А я заметил странную вещь - в KDE распределиние равномерно идёт, в GNOME и Openbox постоянно одно ядро сильнее грузится
Дело не в том , что сильнее грузится, а в том что второе ядро практически простаивет при полной загрузке первого , что на мой взгляд не есть хорошо.

Пользователь решил продолжить мысль 10 Ноября 2009, 15:37:40:
Если приложение конструктивно не использует параллельность, то занимать одновременно оно может только одно ядро.
Но поскольку процессов всегда больше, чем ядер, то выполнение любой задачи периодически прерывается. Восстанавливаться оно может либо на том же ядре (и тогда оно будет сильнее загружено в среднем), либо на другом (тогда будет загрузка 50% обоих ядер но реально никакой параллельности и выигрыша в скорости нет).
Выбор стратегии зависит от планировщика процессов.

Единственное доказательство параллельной работы программы -- загрузка обоих ядер на 100% Все остальное не информативно. В htop даже можно увидеть 2 потока, каждый на своем ядре.



А распаралеливание процессов разве не задача операционной системы?

aleman

  • Гость
Re: Два ядра
« Ответ #9 : 10 Ноября 2009, 15:41:14 »
Посмотрел у себя.. Прекрасно распараллеливает,  то одно нагрузит то другое.
Ubuntu 9.10 (x64)

Оффлайн mlserg

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #10 : 10 Ноября 2009, 15:48:02 »
(тогда будет загрузка 50% обоих ядер но реально никакой параллельности и выигрыша в скорости нет).
Выбор стратегии зависит от планировщика процессов.

А никто и не говорил о распараллеливании однопоточной проги. Именно это, о чем вы говорите, я и имел ввиду. На разных осях по разному работает планировщик процессов

Оффлайн yatirann

  • Активист
  • *
  • Сообщений: 497
    • Просмотр профиля
Re: Два ядра
« Ответ #11 : 10 Ноября 2009, 15:51:52 »
А я заметил странную вещь - в KDE распределиние равномерно идёт, в GNOME и Openbox постоянно одно ядро сильнее грузится
вы хотите сказать, что распределением нагрузки на ядра занимается графическое окружение? ???
be bamboocho

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Два ядра
« Ответ #12 : 10 Ноября 2009, 15:54:27 »
А распаралеливание процессов разве не задача операционной системы?
Неделимое неделится. Нельзя распаралелить атомарную задачу. О чем было уже сказано выше. Или речь про планировщик? Так он и есть часть операционной системы.

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

Оффлайн Meskalito

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Re: Два ядра
« Ответ #13 : 10 Ноября 2009, 17:38:48 »
наивный :)

Он правильно говорит, в винде, если даже софт не заточен на многопоточность, нагрузка с одного ядра делится на два, по 50% каждое ядро грузится. Достаточно взглянуть на диспетчер задач

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

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

Оффлайн Sam Stone

  • Старожил
  • *
  • Сообщений: 1131
    • Просмотр профиля
Re: Два ядра
« Ответ #14 : 10 Ноября 2009, 18:08:08 »
Для неверующих чукчей: через диспетчер задач отдайте только одно ядро программе. Получите именно то, что и должно быть: одно ядро 100% загрузка, остальные - ноль. Опять же: 50% это общий датчик на все ядра, емнип. Надо смотрее подробную инфу по всем ядрам в диспетчере задач.
Возьмите старый П4 с гипертредингом и включите его (HT) - ядро одно, однако проц будет загружен на 50-55%. Колдунство что ли?
Так что эти проценты просто по разному показываются в Linuxе и в винде. Ни больше, ни меньше.

Если вы напишете диспетчер или еще какую-нить лабуду, которая будет распараллеливать однопоточные приложения (с соответствующим увеличением производительности/уменьшением времени выполнения), я уверен, что вас мелкософт, оракл, сан и прочие с радостью возьмут на работу :)
Jellyfish 6.5.0-45-generic
2690v4 64Gb

 

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