[linux] SMP : Linux vs. Win

Jozef Kosoru jkosoru na qbsw.sk
Pondělí Listopad 5 12:57:14 CET 2001


> > > o trochu rychlejsia. ale ak program pouziva theady alebo viac 
> > > procesov moze bezat teoreticky takme N (pocet procakou) krat 
> > > rychlejsie. takze napriklad X ti nepojde omoc rychlejsie ale apache 
> > > ano ;)
> > 
> > OK. Takze ked pred kompilaciou balika pri ./configure --help zistim, 
> > ze mozem --enable-threads, tak ak som dobre porozumel, budem pri behu 
> > tejto aplikacie benefitovat z dvoch procesorov.
> 
> ak si to dobre pametam tak ano.

Nie, je to hlupost! Jedna vec je samotna kompilacia programu. Ak
'make' zisti (ak ma tu schopnost), ze bezi na viac-procesorovej masine,
dokaze kompilovat program s efektivnym vyuzitim vsetkym procesorov.

Druha vec je samotny skompilovany program. --enable-threads vacsinou
znamena, ze sa maju kniznice kompilovat ako thread-safety, teda, ze
ich funkcie mozu byt volane z viacerych vlakien naraz. (to je casto
netrivialny problem). V pripade programov to moze znamenat, ze sa
maju s takymi kniznicami linkovat. V neposlednom rade tato volba
moze ovplyvnit niektore prepinace kompilatora (zavisi od platformy),
aby generoval tzv. reentrantny kod, teda kod vhodny na paralelny
beh.

Efektivne vyuzitie vsetkych procesorov zavisi od architektury
samotneho programu. Viac-vlaknove programy mozu bezat aj
na jedno-procesorovych systemoch a poskytovat vyssi vykon ako
jedno-vlaknove ekvivalenty. Vsetko sa odvija od navrhu algoritmov
priamo v zdrojakoch, neexistuje ziaden prepinac kompilatora, ktory
by prinutil jedno-vlaknovu alebo zle napisanu viac-vlaknovu aplikaciu
aby vyuzila viac-procesorove prostredie.

jozef kosoru







Další informace o konferenci linux