1

Дамы и Господа.

Сейчас у многих есть компьютеры с многоядерными процессорами. Минимум два ядра. А то и больше. Есть ли в этом смысл в Linux?

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

$ uname -a
Linux localhost 2.6.31-gentoo-r10 #1 SMP PREEMPT Mon Mar 1 14:07:00 EET 2010 i686 Intel(R) Pentium(R) Dual CPU T2330 @ 1.60GHz GenuineIntel GNU/Linux

На текущий момент я вижу выгоду от "второго ядра" только при компиляции исходников.  В Gentoo есть make.conf флаг smp, который используется (по крайней мере, у меня) всего в одном пакете - в GIMP. Видимо, стоит предполагать, что GIMP в многоядерной среде "ускоряется", хотя бы в части функций.

Такие дела.  Спрашивается - нафига козе баян?

2

Собственно, никто и не обещал, что на N ядрах все будет работать в N раз быстрее, чем на одном. Рост производительности будет лишь в многопоточных приложениях, как я понимаю. Если же приложение изначально сделано однопоточным и "распараллеливанию" не поддается, дополнительные ядра на скорость его работы не повлияют.

3 (22.03.2010 14:47:57 отредактировано YUKLA)

Дык. Я это прекрасно понимаю.

Мне бы хотелось узнать:

1. Какие из десктопных приложений кроме GIMP имеют поддержку многопоточности? В частности - офисные приложения, Web-браузеры и так далее.
2. Есть ли эффект от многоядерности в части X11? Если нет - то ожидается ли?

Если никакого эффекта для десктопного пользователя нет - зачем тогда ему многоядерность?
Если такой эффект есть - как его максимально использовать? Что настроить?

4

YUKLA, поищи те, у которых есть USE="threads"
Многопоточность полезна только при ресурсоёмких вычислениях. Таких как архивация, компиляция, кодирование, и т.п...

5

Flaming пишет:

YUKLA, поищи те, у которых есть USE="threads"

Увы, и таких не много. wine, python, xmlrpc и ffmpeg  А хотелось бы как минимум xorg-server...

6

YUKLA, ну какие в xorg-server могут быть параллельные вычисления? Посудите сами...
Разве что если несколько X-сессий запустить независимо друг от друга на разных терминалах от разных пользователей... Есть мысль о том, что тогда для каждого пользователя будет отдельный процесс X. Но я не уверен...

7

Flaming пишет:

YUKLA, ну какие в xorg-server могут быть параллельные вычисления? Посудите сами...
Разве что если несколько X-сессий запустить независимо друг от друга на разных терминалах от разных пользователей... Есть мысль о том, что тогда для каждого пользователя будет отдельный процесс X. Но я не уверен...

Сервер обрабатывает запросы от X-клиент(ов)а. Асинхронно. В этом контексте много-ядерность и много-нитевость ой как востребована.

8

Интересная мысль. А может, он так и делает? Вы проверяли?

Вот чего не знаю, того не знаю. ac

9

Flaming пишет:

Интересная мысль. А может, он так и делает? Вы проверяли?

Вот чего не знаю, того не знаю. ac

Одним из флагов для сборки xorg-server является флаг nptl:

euse -I nptl
global use flags (searching: nptl)
************************************************************
[+ CD ] nptl - Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)

Installed packages matching this USE flag: 
media-libs/mesa-7.5.2
sys-devel/gcc-4.3.4
x11-base/xorg-server-1.6.5-r1

Однако, чисто визуально (исходя из графика загрузки процессорных ядер при старте "тяжелых" GUI приложений класса Seamonkey или Openoffice) - работает ОДИН процессор.

10

у меня двухядрёный процессор. в режиме нормальной работы оба ядра нагружаются почти равномерно.

Linux можно любить, можно НЕ любить, но совершенно точно его уже нельзя игнорировать.

11

Loky пишет:

у меня двухядрёный процессор. в режиме нормальной работы оба ядра нагружаются почти равномерно.

Это все очень субъективно - ведь параллельно работает подсистема памяти, сетевая подсистема, дисковая и так далее. Поиграйтесь с x11perf и посмотрите на результат.

Вообще, при наличии времени, наиболее точные оценки в росте производительности чисто X Server можно было бы получить, проведя запуск

x11perf -all

на SMP-ядре и на однопроцессороном ядре.

12

у меня впечателние что сам x11perf не умеет работать с многопоточностью. Суммарная нагрузка не превысила 84 процента, в то время как при обычной работе иксы запросто захапывают 100% когда им нужно. Нагрузка от теста легла на оба процессора, хотя и не равномерной.

Linux можно любить, можно НЕ любить, но совершенно точно его уже нельзя игнорировать.