Linux SMP

6 отговора 273 прегледа
#1

Linux SMP

kakwo e nuzhno za da se izpolzwat dwa ili poweche procesora na edna linux mashina? Dostatuchno li e samo qdroto da e kompilirano sus SMP i da si gi wizhda wsichkite procesori ili trqbwa i software da se precompilira s flagowe za multiprocessor support?

Отговор
в отговор на Adr. #2

Re: Linux SMP

Nuzen ti e samo SMP na kernel-a - ako si s Debian i Intel Pentium si ima daze gotov. Ina4e Software si varvi rasbirase sas normalnite versii - ne e nusno d asi kompilirash sobstveni - osven ako ne si s Gentoo rasbira se :-)
Dokato sarezda kernel-a ti se pojavjavat gore v ljavo 2 pingvina a ne e edin , ina4e mozesh da vidish i v proc-sistemata
Viel Spaß

Отговор
в отговор на nesnaen #3

тааака ли? :>

а на мен що не ми се появяват пингвини... :> та чак пък два... много пиене ще да е било...

Отговор
в отговор на Osogovetz #4

Re: тааака ли? :>

moge i poveche :) ... v zavisimost ot kolichestvoto :) ... ot kakvoto i da e

Отговор
в отговор на Adr. #5

Mи и с Ентерпрайз кърнела си върви

Даже с хипер треадинг от 2 ЦПУ-тата стават 4.
го фигюр

:)))

Отговор
в отговор на Dilithium #6

Re: Mи и с Ентерпрайз кърнела си върви

Vjarno e - no te nesa kato realni - hyperthreading si ima predimstva i nedostataci - savisi ot application-a.
4 nevinage e pove4e ot 2

Отговор
в отговор на Adr. #7

Предупреждение

Ако софтуерът, който използваш е направен с мисъл за поддръжка на много процесори, _може_ и да ти се наложи да го прекомпилираш. Не се знае. Обикновено не се налага. Малко теория, за да ме разбереш:

Вторият процесор не може директно да помогне на другия. Примерно единия да изпълнява четните, а другия нечетните по ред инструкции . Обикновено в масовото програмиране се използва следния подход: задачата се разбива на няколко независими подзадачи, като всяка подзадача може да се изпълнява от втори (трети, ...) процесор. Ако нямаш свободен процесор, задачата чака, докато някой се освободи. Или, на нея се превключва от време на време (случаят, в който всяка задача работи в собствена нишка). Този подход е достатъчно добър в общия случай, няма особено големи синхронизационни проблеми.

Така че, ако създателите на софтуера са се погрижили да си разделят задачата на части, в 99% от случаите няма какво повече да правиш. Програмата просто ще почне да ползва втория процесор, ако го има.

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

Та всъщност, предупреждението ми е, че ако програмата, която използваш не е мислена за много процесори, няма да спечелиш от втория си процесор. Разбира се, ако пуснеш втора програма, тя ще тръгне на него и ще си на делавера, но само една програма, ако не е мислена, няма да почне да работи по-бързо.

Отговор