Avatar billede vigsoe Nybegynder
22. maj 2000 - 12:30 Der er 5 kommentarer og
1 løsning

Multiprocessor

Jeg har spørgsmål ang. brug af multiprocessor på PC platforme. Jeg er i besiddelse af et 3D finite element program som jeg skal udføre beregninger med. I den forbindelse vil jeg selvfølgelig have fat i den bedste maskine (læs: den maskine der hurtigst kan beregne mine problemer). Derfor har jeg tænkt på at investere i en PC med 2 processorer. Mine spørgsmål er som følger:
- Hvordan fungerer det hvis et program IKKE er skrevet til at udnytte flere processorer. Vil det så automatisk (under Windows NT) blive eksekveret under brug af begge processorer? Og hvad hvis et program ER skrevet til flerprocessor brug, vil man så i det pågældende program kunne vælge hvor mange processorer det skal benytte?
- Hvilke processorer er de bedste når det kommer til floating point operations? To processorer fordobler vel nok ikke FLOPS-tallet, men hvor meget kan man regne med at få ud af DUAL-processor teknologien?
- Hvor finder jeg FLOPS specifikationer?
Avatar billede gnarf Nybegynder
22. maj 2000 - 13:19 #1
Hvis et program IKKE er skrevet til at udnytte flere processorer, så vil programmet som hovedregel ikke køre bedre ligegyldig om der er 1 eller 2 processorer i maskinen.

Hvis programmet derimod er konstrueret til at kunne eksekveres 2 gange samtidigt, f.eks. på forskellige beregninger, så vil du næsten få den dobbelte ydelse ved 2 processorer.

Med hensyn til hvilke PC processorer der er gode til floating point beregninger, så har det altid været Intel's stærke side, lige indtil AMD kom med Athlon processorerne.

Mine anbefalinger er derfor:
Hvis programmet kan udnytte multiprocessorer: 2x Pentium III
Hvis programmet ikke kan udnytte multiprocessorer: Den største Athlon du har råd til.
Avatar billede vigsoe Nybegynder
22. maj 2000 - 14:14 #2
Hvordan beregner multi-processorer: I parallel, altså med begge processorer på een gang, hvor de supplerer hinanden. Eller skal man som skrevet eksekvere programmet to gange for at få glæde af det ( og det vil jeg i parantes bemærket ikke få glæde af da de jo ikke vil øge regnekraften på min simulering!)
Avatar billede gnarf Nybegynder
22. maj 2000 - 15:28 #3
Det afhænger jo netop af programmet! Derfor skal de skrives til det.

Jeg er ikke 100% sikker på hvordan det foregår i windows NT/2000 men jeg har arbejdet en del med Java, også på multiprocessor platforme. Man kan i Java vælge at ens program skal indeholde flere tråde. En tråd kan så eksempelvis foretage en bestemt type beregning, mens en anden tråd læser fra disk. Det kunne også tænkes at beregningen kunne opsplittes i 2 dele, som kunne køre parallelt, som hver processor så kunne udføre, og til sidst bruger den ene processor så resultaterne til at færdiggøre beregningen.    Anyway, det afhænger altså af den enkelte opgave.

Jeg ved at f.eks. Quake3 som understøtter multiprocessing (men maks 2 processorer), der kører stort set hele spillet på den ene processor, og nummer 2 bliver brugt til at hjælpe med nogle tunge grafikberegninger. Eksempelvis kan processor 1 beregne ting som, spiller positioner, projektilers baner osv. mens processor 2 laver matrice og vektor beregner på baggrundsgrafik.

Hele kernen i problemet er at programmet skal være skrevet til multiprocessing, og det i sig selv er en hel disciplin inden for programmering.
Avatar billede gnarf Nybegynder
22. maj 2000 - 15:35 #4
Det med at eksekvere programmet 2 gange, er som du selv skriver ikke altid optimalt, og slet ikke i din simulering.

Men jeg tog det bare med som eksempel. Jeg har en gang arbejdet med noget billedbehandling, hvor vi splittede billederne op i 2 halvdele, og lavede transformationer på hver halvdel for sig. På en multiprocessorplatform opnåede vi derfor dobbelt hastighed.

Det er et nemt "trick" hvis opgaven egner sig til det, men det gør den jo ikke altid :(

Ideen med multiprocessor platforme er jo naturligvis at programmerne skal skrives til det, sådan at processorerne arbejder sammen om at løse en given opgave.
Avatar billede kimmbaal Nybegynder
26. maj 2000 - 21:27 #5
Processorhastighed er jo ikke alt ! !
Husk på på at de beregnede data skal lagres i rammen og muligvis på HD, så det er ikke sikkert at CPUen er flaskehalsen. Muligvis CPU med stor L1 cache og indbygget matematisk coprocesser vil arbejde hurtigere, da de beregnede data kan "vente" der.

KimmBaal
Avatar billede phansen Nybegynder
13. november 2000 - 20:22 #6
Hvis der er nogen der er interesserede, så kan BeOS selv dele programmer ud over flere processorer.. så længe programmet bare er multithreadet..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester