← Back to team overview

sslug-teknik team mailing list archive

Re: Hvordan er det med Linux programme og flertåede

 

Hej Mogens.

(Undskyld mit lidt sene svar)

Mogens Kjaer wrote:
Peter Maersk-Moller wrote:
Korrekt. Da de ikke deler process og adresserum, kan de ikke køre
samtidigt. Det vil kræve to sæt MMU/cache-sæt og det har HT ikke.
Men HT er nu ikke så usmart. Det er faktisk ret genialt, men med
begrænsninger. Nogle af dem fjerner Dual-core.
For mig ser en HT maskine ligesådan ud som en SMP maskine,
hvor de to CPU'er dog påvirker hinanden (kraftigt).
Et eksempel:
Et simpelt multithreaded program (Mandelbrot,
uden grafik, uden IO).
1 tråd: 18.57 sek
2 tråde: 14.83 sek

Øhh. Er det konklusionen, eller siger du, at med en tråd tager det 18.57s og med to tråde,
tager det 14.83s ? Jeg antager det sidste.

Kører jeg nu:
"1 tråds jobbet" to gange efter hinanden: 37.05 sek (18.53 sek / job)
To "1 tråds job" kørt samtidigt: 29.64 sek (14.82 sek / job)

Der må være et eller andet galt. Når du køre en-tråd-et-program eller
en-tråd-to-programmer-sekventielt, tager det ca. 18s. per program.
Når du kører en-tråd-to-programmer-parallelt, tager hvert program ca. 14s.

Så her er noget der ikke kan være korrekt, med mindre der
er en ændret forudsætning mellem de to eksempler som påvirker
det hele. Er der det ?

Dernæst, HT virker ikke godt, hvis de to tråde deler ressourcer.
Gør de det ? Kan vi antage følgende ?

  1) Testmaskinen kører stort set ingewn andre ting OVERHOVEDET.
     Kør en "init 1" for at være sikker.
  2) De to trådes programkode (CODE) fylder lidt (kan være i cpu-cachen)
  3) De to tråde tilgår stort set ikke ydre ressourcer
     eller enheder
  4) De to tråde bruger kun lidt data (DATA)
  5) Sidst men ikke mindst, de to tråde bruger ikke MMX/MMXE/SSE/SSE2

Kan vi antage det ?

I sidste tilfælde deler de to job jo ikke adresserum.

Hvis din maskine er belastet (bare lidt), vil to processer parallelt samlet
få mere CPU-tid end to processer sekventielt. Helt sikker på at der ikke er
nogen anden belastning ?

De er kørt på en 3 GHz Pentium 4 HT maskine med
en Fedora Core 3 kerne: 2.6.10-1.770_FC3smp
Det er ikke den store forbedring, HT giver, det
svarer til at køre på en 3.7 GHz maskine. Det skyldes
måske at de to tråde påvirker CPU'en ens, så det
er de samme ressourcer, de slås om.

Ja, der er noget med dine resultater som indikerer en ressourcekonflikt.
HT er vanskeligt.

--PMM

+----------------------------------------------------------+
| Kabel-TV over Internettet   --   http://www.streamtv.dk/ |
+----------------------------------------------------------+



Follow ups

References