28. juli 2000 - 12:08Der er
6 kommentarer og 1 løsning
Anvendelse af flere CPU\'er
Jeg skal til at investere i SUN maskinel til brug for compileringer til et embedded system. Og vi taler altså om rigtige tunge opgaver, der let kan tage timer. Og der er flere brugere som skal have jobs kørt.
Mit spørgsmål er, vil det være nogen fordel at investere i en multi CPU server, eller er det ligeså effektivt at bruge flere små servere. Kan SUNs multi CPU overhovedet udnyttes af programmer der ikke er skrevet til dette?
De firmaer som har 200 eller flere brugere af dem jeg kender kører alle med multi-CPU server, alene af de grunde at de er hurtigst, billigste og lettest at holde styr på.
Nu spørger jeg sikkert dumt, men HVORFOR en sun??? Med de priser sun har kan du jo købe en del pc\'ere og installere linux/bsd + gcc paa dem. -) (Jeg kender ingen embedded compiller der kræver sun)
Om multi cpu kan bruges afhænger af din compiller, men hvis det er gcc + make mener jeg(ER ikke sikker) at make har en funktion til at compile hver fil i sin egen traad.
Mener du virkelig at det tager flere timer ac compile sourcen??????
Hvorfor en SUN? Det mest dumme svar er nok at der var nogen som begyndte med en SUN. Men når man er en del af et multinationals selskab med 100.000 ansatte, så koster en SUN ikke ret meget mere end en PC. Og når man har hundredevis af udviklere på det samme system, så er det en fordel at udstyret er rimeligt standardiseret. Dermed har jeg også svaret på spørgsmålet om at det tager lang tid at compilere sourcen. Når der er mange udviklere, så kommer der hurtigt mange kodelinier.
Så er der forresten lige een enkelt stor forskel på SUN og PC. De vender bittene forskelligt, idet PC kører little endian og SUN kører big endian. Dette er faktisk ikke helt uden betydning, hvis man skal simulere og kommunikere med sit target system.
Einstein: Hvilken slags aplikationer kender du til. Multi CPU er naturligvis godt til en database, der er oversat til det, og måske endda designed efter det. Det jeg mere tænker på er faktisk en verden a.la. de gamle main frame miljøer, hvor brugeren kun havde en dum terminal, og alt kørte på serveren.
Flere CPU\'er vil helt sikkert gøre dit system hurtigere, da Solaris vil forsøge at fordele hver process til hver sin CPU. Lidt ala\' det Windows NT gør med SMP.
Du kan jo også bare starte med en Sun Box med 2 CPU\'er, med mulighed for at opgradere den til flere senere, hvis det skulle blive nødvendig.
Men hvis at smid en røvfuld af RAM i den, og nogle hurtige diske, eller et disk system med meget read og write cache. Det vil helt sikkert preforme godt ved mange små filer som sourcecode typisk består af.
Jeg har nu fået sådan et dyr i huset, og en hurtig undersøgelse viser at det korrekte svar er nej. Men, det viser sig også at Solaris rent faktisk er i stand til at flytte eksekveringen af en process fra een CPU til en anden. Faktisk ser dette ud til at foregå i timeslicingen. Jeg kan ikke sige andet end det er en pokkers avanceret arkitektur.
Alle os\'er som understøtter SMB vil da smide din traad/process til den processor der laver mindst. (Jeg har i hvertfald aldrig hørt om et der ikke gjore)
Hvis du bruger gnu make saa burde du kunne gøre brug af begge processore.
Prøv at lave med
make -j1 og make -j2
make -j2 burde være ca dobbelt saa hurtig, hvis jeg ellers husker rigtig :-}
Synes godt om
Ny brugerNybegynder
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.