Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX и Hardware > Поддерживает ли ядро Линукса 4-х ядерные процы?


Автор: Andrey1 4.3.2008, 10:40
Думаю купить комп, и думаю, поддерживает ли ядро Линукса 4-х ядерные процы?

Автор: MAKCim 4.3.2008, 11:10
Цитата(Andrey1 @  4.3.2008,  10:40 Найти цитируемый пост)
Думаю купить комп, и думаю, поддерживает ли ядро Линукса 4-х ядерные процы?

и даже больше

Автор: powerfox 4.3.2008, 15:22
Модератор: перенёс в железо.

Автор: bilbobagginz 4.3.2008, 22:44
4 говоришь ?  smile  smile  smile 
он и 128 может: http://members.optusnet.com.au/clausen/sgi/
не знаю насколько хорошо линь делает это чем соляра, но на данной железке соляра не побежит.

Автор: Стас 5.3.2008, 09:52
У меня на Intel Core 2 Quad Q6600 линуксы летают! В OpenSuse 10.3 даже включилась поддержка SMP! Opensuse наверное думает, что работает на 
четырехпроцессорной машине! smile  smile  smile  

Автор: MAKCim 5.3.2008, 09:58
Цитата(Стас @  5.3.2008,  09:52 Найти цитируемый пост)
В OpenSuse 10.3 даже включилась поддержка SMP! Opensuse наверное думает, что работает на 
четырехпроцессорной машины!

а это не так разве?  smile 

Автор: Стас 5.3.2008, 10:06
Цитата

а это не так разве?

По сути так.  smile  4 в одном.   smile  А какой толк от SMP? Грузит ядра не равномерно - два ядра под 90% остальные 5 -10%. 

Автор: Andrey1 5.3.2008, 13:12
Цитата(MAKCim @  4.3.2008,  11:10 Найти цитируемый пост)
и даже больше 

Я слышал, что winXP не поддерживает больше двух ядер...

Цитата(Стас @  5.3.2008,  09:52 Найти цитируемый пост)
У меня на Intel Core 2 Quad Q6600 линуксы летают!

А я вот посмотрел на тесты http://www.fcenter.ru/online.shtml?articles/hardware/processors/23056
и решил брать Core 2 Duo пошустрее...

Добавлено через 3 минуты и 19 секунд
Цитата(Стас @  5.3.2008,  10:06 Найти цитируемый пост)
Грузит ядра не равномерно - два ядра под 90% остальные 5 -10%. 

Вот вот... и вопрос в том, проблема ли это ядра, софта или проца smile....

Автор: ZeeLax 5.3.2008, 14:17
Цитата(Andrey1 @  5.3.2008,  16:12 Найти цитируемый пост)
Я слышал, что winXP не поддерживает больше двух ядер...

А причем тут WinXP?

Автор: nickless 5.3.2008, 15:31
Цитата(Стас @  5.3.2008,  08:06 Найти цитируемый пост)
 А какой толк от SMP? Грузит ядра не равномерно - два ядра под 90% остальные 5 -10%

А ты как хотел?
Проведи эксперимент - открой 4 терминала и запусти там по очереди 
Код

cat /dev/urandom > /dev/null

наблюдая за загрузкой процессоров smile 

Автор: powerfox 5.3.2008, 15:43
Цитата(Andrey1 @  5.3.2008,  14:12 Найти цитируемый пост)
Я слышал, что winXP не поддерживает больше двух ядер...

А как же тогда Core Quad работает на XP. Я видел, как его тестировали в XP. Но, кажется, он неправильно опредялялся (но это имеет суть?). В Linux всё поддерживается.

Автор: Andrey1 5.3.2008, 17:23
Цитата(ZeeLax @  5.3.2008,  14:17 Найти цитируемый пост)
А причем тут WinXP? 

ну значит проблема есть и не все так просто...

Автор: ZeeLax 5.3.2008, 17:35
Цитата(Andrey1 @  5.3.2008,  20:23 Найти цитируемый пост)
ну значит проблема есть и не все так просто... 

Какая проблема? ;)

Автор: nickless 5.3.2008, 17:38
Цитата(Andrey1 @  5.3.2008,  15:23 Найти цитируемый пост)
ну значит проблема есть и не все так просто... 

У XP возможно есть, но какое отношение проблемы Windows XP имеют к линуксу? smile 

Автор: MAKCim 5.3.2008, 18:20
Цитата(powerfox @  5.3.2008,  15:43 Найти цитируемый пост)
А как же тогда Core Quad работает на XP

а почему не должен работать?
SMP - это по желанию, также как и 64-х битный режим
а вообще, все это глупости
нормально все у XP с многопроцессорностью
по крайней мере с двумя ядрами точно

Автор: powerfox 5.3.2008, 20:59
Цитата(MAKCim @  5.3.2008,  19:20 Найти цитируемый пост)
А как же тогда Core Quad работает на XP

а почему не должен работать?


MAKCim, так я к этому и написал.

Цитата(powerfox @  5.3.2008,  16:43 Найти цитируемый пост)
Цитата(Andrey1 @  5.3.2008,  14:12 Найти цитируемый пост)
Я слышал, что winXP не поддерживает больше двух ядер...

А как же тогда Core Quad работает на XP


Автор: bilbobagginz 5.3.2008, 22:31
ребят я тут запутался.
во первых ядро линукс - в контексте оперативных систем != ядро многоядерного процессора.

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

"ядро" (kernel) в ос-ях - это ПО, обеспечивающее работоспособность и распределение аппаратных ресурсов в комьютере. 

SMP, насколько мне известно, значит Symmetric MultiProcessing. т.е. симметричная многопроцессорность.
т.е. ядро ОС с этим свойством может работать с более чем одним физическим процессором, распределив между процессорами (или "ядрами"-cores) задачи по надобности.
"симметричное" оно, так как В отличие от ассиметричной многопроцессорности (NUMA=non uniform memory access), где не все процессоры подключены к одному и тому же основному накопителю, т.е. RAM. В SMP системах все процессоры подключаются к единой системе памяти, и есть нужда синхронизировать доступ каждого к этому модулю памяти.

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

в линуксе сo включенным SMP проблем не должно быть.

удачи всем.


На вопрос "что мне лучше: 4-х ядерный процессор или Core 2 Duo?" нужно просто понять устройство многоядерного процессора.

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

с др. стороны, если у вас приложение нагружает процессор, без особо большого количества данных, превышающего или напрягающего шину данных процессора (front side bus), то вам таки ДА стоит использовать 4-х ядерный процессор.

Мир Вам.

Автор: MAKCim 5.3.2008, 22:54
Цитата(bilbobagginz @  5.3.2008,  22:31 Найти цитируемый пост)
"ядро" (core) в процессорах - это вроде как чипсет, копию которого размножили на силиконовом куске, и соединили на общей шине ввода/вывода.

1. чипсет - это чипсет  smile 
2. ядро - это совокупность устройств выполнения (execution engine) и регистров
к устройствам выполнения относятся: АЛУ, декодеры, BTB, устройство вычисления адреса, MMU, кэш L1 и т. д
Цитата(bilbobagginz @  5.3.2008,  22:31 Найти цитируемый пост)
"ядро" (kernel) в ос-ях - это ПО, обеспечивающее работоспособность и распределение аппаратных ресурсов в комьютере. 

не только
Цитата(bilbobagginz @  5.3.2008,  22:31 Найти цитируемый пост)
SMP, насколько мне известно, значит Symmetric MultiProcessing. т.е. симметричная многопроцессорность.
т.е. ядро ОС с этим свойством может работать с более чем одним физическим процессором, распределив между процессорами (или "ядрами"-cores) задачи по надобности.

на SMP-системе код ядра ОС может выполнять любой процессор (например при переходе процесса (код которого выполняет процессор) на нулевое кольцо)
в то время как на AMP-системе код ядра выполняется на каком-то одном процессоре
под процессором я понимаю или физическое ядро (т. к любой процессор имеет по крайней мере одно ядро), или HT-ядро в рамках физического ядра

Автор: vinter 5.3.2008, 23:58
Цитата(MAKCim @  5.3.2008,  23:54 Найти цитируемый пост)
на SMP-системе код ядра ОС может выполнять любой процессор (например при переходе процесса (код которого выполняет процессор) на нулевое кольцо)в то время как на AMP-системе код ядра выполняется на каком-то одном процессоре

Максим что то не очень понятно что ты имел ввиду, вот например виндовое ядро: когда процесс переходит в привелегированный режим
и допустим начинает выполнять какое нибудь действие с повышенным IRQL, то тут какая бы ни была система, другой процессор становиться в очередь и не может выполнять код ядра. С другой стороны когда до другого проца дойдет очередь он тоже будет выполнять код ядра.. Тогда судя по твоему посту все ситсемы существующие сейчас(настольные) есть SMP?
Я не спорю, я действительно не понял поста, хотелось бы более подробного объяснения, если возможно smile
По теме: по поводу поддержки многопроцессорности можно вообще не волноваться, Хардварники всегда отстают от Софтварников, к тому же появившиеся настольные восьмиядерники еще одно тому подтверждение, раз выпустили их на рынок значит ОСи их потдерживают.

Автор: bilbobagginz 6.3.2008, 05:52
во! начинается интересный разговор. smile
можно ядро в контексте core назвать "библиотекой реализующей процессор типа X"
а многоядерный процессор получается процессор, на котором реализованы несколько штук типа X, и 
соединены на общей шине данных, и частично общим кешем с L2 и выше.
но это нас пока не очень колышит smile

насчет AMP, есть вообще реализации AMP систем ?
мне не приходилось читать о таких системах....
а как обстоит дело с памятью в таких системах ? нужна DSM, как и в NUMA-архитектурах ?

Автор: bilbobagginz 6.3.2008, 06:20
Цитата(vinter @  5.3.2008,  23:58 Найти цитируемый пост)
Максим что то не очень понятно что ты имел ввиду, вот например виндовое ядро: когда процесс переходит в привелегированный режим

в общем одна из самых больших проблем безопасности в многоядерных процессорах - грязный кеш.
если в кеше находится информация привелегированного процесса, а пользователь вставил в тот процессор свой код, возможно при хитроумном использовании памяти он сможет получить доступ к данным предыдущего процесса. На этой штуке кирдыкнулся hyperthreading
Цитата(vinter @  5.3.2008,  23:58 Найти цитируемый пост)
значит ОСи их потдерживают.

не факт.
и не факт что хардварники отстают.
просто по экономическим предпосылкам рынка до того как распродали все выпущенные железки предыдущей модели, не стоит вносить новые и более хитрые - народ не будет покупать старые, а это огромные деньги на ветер.
Цитата(MAKCim @  5.3.2008,  22:54 Найти цитируемый пост)
2. ядро - это совокупность устройств выполнения (execution engine) и регистров

тут можно поспорить, и определение сделать более общим:
если ядро - "реализация A/D преобразователя", то "единиц выполнения" там может и не быть, только память и преобразователи.

core в HDL терминологии, AFAIK это "распространяемая и неизменная функциональная единица". напр. фирма Xilinx, продает пгрограммируемый чип (Virtex-5) с встроенными несколькими 32х40 DSP cores. каждый такой DSP48E умеет делать несколько базовых DSP операций.

Автор: MAKCim 6.3.2008, 10:37
Цитата(vinter @  5.3.2008,  23:58 Найти цитируемый пост)
вот например виндовое ядро: когда процесс переходит в привелегированный режим
и допустим начинает выполнять какое нибудь действие с повышенным IRQL, то тут какая бы ни была система, другой процессор становиться в очередь и не может выполнять код ядра.

что такое IRQL?
грубо говоря, это число, определяющее возможность выполнения определенного действия и его приоритет
к примеру, каждое аппаратное прерывание имеет определенный IRQL
любой процессор в любой момент времени имеет определенное значение IRQL
при возникновении некоторого события ассоциированное с ним значение IRQL сравнивается с IRQL текущего процессора
если оно больше, чем IRQL процессора, то событие обрабатывается, иначе не обрабатывается
т. е IRQL процессора глобален для самого процессора, но локален для ОС
имплементация IRQL может использовать аппаратный регистр TPR (Task Priority Register) в APIC, вместо програмной реализации

Цитата(vinter @  5.3.2008,  23:58 Найти цитируемый пост)
Тогда судя по твоему посту все ситсемы существующие сейчас(настольные) есть SMP?

Linux, Windows и Mac на MP-системах являются SMP

Цитата(vinter @  5.3.2008,  23:58 Найти цитируемый пост)
По теме: по поводу поддержки многопроцессорности можно вообще не волноваться, Хардварники всегда отстают от Софтварников, к тому же появившиеся настольные восьмиядерники еще одно тому подтверждение, раз выпустили их на рынок значит ОСи их потдерживают.

с точки зрения програмного интерфейса все многоядерные процессоры для ОС одинаковы
ОС, поддерживающая 2 ядра, будет поддерживать и 4, и 8 ядер
другой вопрос, как хорошо
поэтому для эффективной работы с большим количеством ядер, необходима некоторая модификация алгоритмов

Цитата(bilbobagginz @  6.3.2008,  05:52 Найти цитируемый пост)
насчет AMP, есть вообще реализации AMP систем ?

точно сказать не могу, но предполагаю, что есть

Цитата(bilbobagginz @  6.3.2008,  05:52 Найти цитируемый пост)
а как обстоит дело с памятью в таких системах ? нужна DSM, как и в NUMA-архитектурах ? 

SMP и AMP - это логические организации ОС, которые поддерживают MP
т. е ОС вполне может быть AMP на аппаратной UMA-архитектуре

Цитата(bilbobagginz @  6.3.2008,  06:20 Найти цитируемый пост)
в общем одна из самых больших проблем безопасности в многоядерных процессорах - грязный кеш.
если в кеше находится информация привелегированного процесса, а пользователь вставил в тот процессор свой код, возможно при хитроумном использовании памяти он сможет получить доступ к данным предыдущего процесса.

TLB сбрасывается при каждом переключении контекста
так что ОС, использующие страничную адресацию, защищены
Цитата(bilbobagginz @  6.3.2008,  06:20 Найти цитируемый пост)
если ядро - "реализация A/D преобразователя", то "единиц выполнения" там может и не быть, только память и преобразователи.

единицы выполнения в ядре есть всегда, т. к всегда есть ALU  smile 
что такое A/D преобразователь?

Автор: bilbobagginz 6.3.2008, 14:53
analog->digital converter устройство для съема сигнала в компьютер.
используется для разных целей, напр для съема данных с датчика, или напр. для записи звука в компьютерной аудио-плате.
кроме чистой аналоговой электроники есть там кое-какая довольно стандартная цифровая логика, которая и предоставляется как "hdl" библиотека, или IP core. т.е. готовый спланированный и проверенный логически модуль.

потом его кто-то (фирма проектирующая приложение, т.е. устройство, которому нужен A/D) покупает и на основе данного фактически кода, у нее есть модуль a/d.

в принципе особенно много таковых в сфере FPGA, CPLD, т.е. программируемые камни.


Автор: Soldat 11.3.2008, 01:30
В WinXP всё упераеться в лицензию.

Автор: xotey 14.3.2008, 17:59
Обсуждение ушло в сторону от исходного.
Как говорится: начали за жизнь -- кончили за упокой :)

Относительно начальной темы вопроса: у меня на рабочей машине установлен Debian GNU/Linux testing (lenny) (версия ядра: 2.6.22) и используется четырехядерный процессор:
Код

~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Quad CPU           @ 2.40GHz
stepping        : 7
cpu MHz         : 2400.030
cache size      : 4096 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4801.79
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Quad CPU           @ 2.40GHz
stepping        : 7
cpu MHz         : 2400.030
cache size      : 4096 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4799.20
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Quad CPU           @ 2.40GHz
stepping        : 7
cpu MHz         : 2400.030
cache size      : 4096 KB
physical id     : 0
siblings        : 4
core id         : 2
cpu cores       : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4799.21
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Quad CPU           @ 2.40GHz
stepping        : 7
cpu MHz         : 2400.030
cache size      : 4096 KB
physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4799.35
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Так что по поводу поддерживаемости четырех ядер беспокоиться не надо.

P.S.
А еще у нас есть довольно-таки старенький монстрик под названием ALR -- на нем установлено целых 6 (!) процессоров Pentium II и работает он под управлением Debian 3.1 (ядро 2.4.24)
Самое поразительное то, что все 6 процессоров видны!

Автор: JackYF 14.3.2008, 18:43
Цитата(xotey @  14.3.2008,  16:59 Найти цитируемый пост)
Самое поразительное то, что все 6 процессоров видны! 

а в чём поразительность?

Автор: xotey 14.3.2008, 19:06
Поразительно то, что сама архитектура Pentium II не подразумевает SMP из более, чем 4-х процессоров.

Автор: MAKCim 14.3.2008, 20:40
Цитата(xotey @  14.3.2008,  19:06 Найти цитируемый пост)
Поразительно то, что сама архитектура Pentium II не подразумевает SMP из более, чем 4-х процессоров. 

нет
архитектура APIC для P5/P6 поддерживает до 16 процессоров

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)