← Back to team overview

sslug-teknik team mailing list archive

Re: Hvad er det lige det hedder ?

 

René Madsen wrote:
> Det vil sige at jeg skal til at omskrive alle de programmer jeg ønsker at få
> større ydelse i, eller ?

Typisk ja. Men ikke nødvendigvis gennemgribende. Som du nok ved, vil et
flertrådet program være i stand til at udnytte en SMP maskines ekstra
processorer, i og med at du - programmøren - har opdelt hovedopgaven i
mindre opgaver, der samarbejder på en veldefineret facon. Problemet er,
at denne programmeringsmodel (tråde, synkronisering med mutex, delt
lager) kun er defineret indenfor konteksten "på en enkelt maskine, evt.
fordelt på flere processorer med adgang til de samme ressourcer (RAM,
grafikkort, filer etc.)".

For at fordele arbejdet på flere *maskiner*, kan man benytte flere
programmeringsmodeller, hvoraf en er stort set den samme som den
ovennævnte - distribueret delt lager (normalt bare kaldet DSM, omend
dette også kan dække andre modeller). Der findes andre, såsom
beskedudveksling (message passing, eksempelvis PVM og (tror jeg)
Beowulf), regionbaseret programmering (CVM) og mobile delte objekter
(Emerald (?), Orca), og spørgsmålet er, hvilken der er den bedste for
dig, til det foreliggende problem.

Sagen er, at forskellen på den normale situation med tråde og delt lager
på en enkelt arbejdsstation med 1..N processorer er ret forskellig fra
distribueret delt lager, i og med at tilgangstiderne - både latenstid og
båndbredde - til distribueret delt lager er langt højere (1-2
størrelsesordener på normale netværk) end til "lokalt" delt lager, som
man kender det fra POSIX tråde. Derfor kan man ikke altid regne med at
et program der er skrevet flertrådet, vil fungere godt (skalere, dvs.
udnytte flere maskiner til at opnå højere ydelse) under *distribueret*
delt lager.

Kort sagt bør man overveje kommunikationsinfrastrukturen i sit program
grundigt, før man begynder at flytte det til en distribueret
programmeringsmodel. Hvis det udfører mange synkroniseringer, kan det
typisk ikke betale sig. Hvis du ikke kan forvente bedre ydelse ved at
tage den nemme vej (altså bruge DSM i stedet for tråde, og dermed undgå
større omskrivning af programmet), er du bedre tjent med at lave et helt
nyt program, der er tilpasset de ændrede omstændigheder der gælder for
arbejdsdeling på netværkede arbejdsstationer.

Igen: se http://hjem.get2net.dk/dduck/sense.html for mere. Jeg kan også
sende dig mit speciale som .ps, men det er ret stort...

Anders

> 
> De programmer jeg har tænkt mig at køre er Blender og Gimp, vil sådanne
> programmer kunne få et større flow ? Eller skal de omskrives til Clustering
> ... det skal de vel ...
> 
> Mvh.
> 
> René
> 
> >
> >
> > Peter Toft, Ph.D. [pto@xxxxxxxx] http://www.sslug.dk/~pto
> >
> > "Open Source and Linux: All of us win"

-- 
Anders S. Johansen, Jagtvej 109, 3.tv, 2200 Kbh. N +045 35836565
Wisdom = TANJ + TANSTAAFL


References