Gå till innehåll
Just nu i M3-nätverket

Tänk om Apple


Björn Nordström

Rekommendera Poster

Björn Nordström

Tänk om Apple bytte strategi med sitt sätt att positionera och segmentera datorer med nedtrimmade och upptrimmade processorer. Som det är idag tillverkar man tex IBM PPC 970 i tre olika varianter: 1.6 - 1.8 - 2.0 GHz klockfrekvens. Det resulterade under hösten bland annat i att det blev brist på värstingen och överskott på mellanmodellan, något man försökt styra upp genom att tillverka en dubbelpropp G5 med 1.8 GHz-chipet till attraktivt pris.

 

Tänk om man istället alltid satte in det bästa man hade, idag 2.0, och segmenterade genom att stoppa in flera processorer i de dyrare modellerna. Instegmodellen skulle alltså ha en processor på 2.0 GHz, mellanmodellen två och top-of-the-line-Macen skulle ha fyra processorer på 2.0 GHz (samt vassare grafikkort mm). På så vis skulle tillverkningskonstnaderna minska i och med att man bara behövde tillhandahålla en modell av processor, systembuss mm. Det skulle också vara lättare att förutse hur många man behöver tillverka. När man sen gör ett tekniksprång eller Speedbump en gång om året, byter man processormodell i hela sortimentet, rakt av. Alltid det bästa som går att uppbringa.

 

Apple skulle höja statusen för sina datorer genom att bara ha högpresterande maskiner. Kunderna skulle också bli mer nöjda genom att ha den bästa processorn i sin nya burk. Här snackar vi win-win-situation! Idag sätter man ju in nedtrimmade grejor och sätter ett lägre pris för att kunna segmentera och ha olika prisbild. Man låtsas också komma med nya snabbare processor tre gånger om året; I själva verket är det samma processor som man ändrat klockfrekvensen på och lika väl kunde ha släppt från början.

Länk till kommentar
Dela på andra webbplatser

Björn Nordström

För att fötydliga en sak: Det kan knappast vara dyrare att tillverka 2.0 GHz-processorn än 1.6-modellen; det hadlar bara om segmentering.

Länk till kommentar
Dela på andra webbplatser

Problemet med att sätta in olika antal processorer (1, 2 eller 4 stycken) är att man måste ha mera bandbred och / eller databussar för att hinna mata alla processorer med data. Detta gör att man måste bygga olika moderkort med olika bus arkitektur, vilket leder till att Apple får med hårdvara att utveckla, testa och hålla i lager för olika data modeller. Detta gäller främst om man vill 4+ processorer.

Moderkort för ett större antal processorer blir också av naturliga skäll större och dyrare vilket kan vara en nackdel.

Länk till kommentar
Dela på andra webbplatser

Joakim Ågren

Hej!

 

Det är lite problematiskt det här med processor tillverkning. Alla processorer kommer från samma assembley line. Det är bara det att eftersom allt sker på mikroskopisk nivå så är det nästan omöjligt att få alla processorerna identiska på core nivå. Innan de skickas för montering på kretskort så testas de och får olika klassning vissa klarar av en klockhastighet på 2GHz+ medans andra från exakt samma assembley inte riktigt nådde upp till den nivån utan kanske bara når 1.6GHz vid testning och får då placeras i instegsmodellen. Det skulle vara dyrt att kvalitetssäkra produktionen och bara godkänna de processorer med den högsta frekvensen då skulle det bli väldigt dyrt med tanke på hur många som man då måste kassera. Det fungerar likadant på PC sidan. Alla Athlon XP processorer tex är identiska och kommer från samma uppsättning men på mikroskopisk nivå så skilljer de sig på hur effektiva de blev vid tillverkningen och vissa klarade då bara av att klockas för en prestanda mostvarande P4 2.2GHz medans andra nådde upp ända till prestanda mostvarande 3.2 GHz P4. 1.6Ghz och 2Ghz är således exakt samma processor åtminstonde till ytan medans den lägre klockade varianten helt enkelt är ett exemplar som vid tillverkningen inte nådde ända fram i effektivitet. när en tillverkare har lanserat en ny Processor så vet de aldrig i förväg hur långt den processorn kan komma att nå upp i effektivitet man gissar bara. Apple har tex lovat att man skall nå upp i 3GHz nu till sommaren. Nu är det upp till IBM om man lyckas få fram tillräckligt många med den kvaliten eller om det blir brist på den höga varianten och man tvingas försena lanseringen av en G-5'a med den hastigheten.

Länk till kommentar
Dela på andra webbplatser

Dessutom kan tänkas på att du knappast får in 4 processorer i G5 chasit; vilket skulle leda till att Apple var tvungna att göra ett ny chasi för den värsting modellen; vilket knappast är billigare.

En annan sak som bör tänkas på är att flera processorer inte bara ökar prestandan; det sackar också ner; lite kort fattat fungerar en SMP setup så att en processor är master; det är den som bestämmer; dom andra blir digerade av master cpu:n; detta med för att en SMP dator inte är lika effektiv som man kan tro; 2x 1Ghz är alltså inte snabbare än 1x 2Ghz av samma processor/typ.

En annan faktor är det när program körs på en SMP setup måste dom spara samtliga register då datorn switchar mellan processer (så vida du endast kör det antalet processor som datorn har processorer; vilket iprincip aldrig inträffar.) Anledningen är det att datorn kan inte alltid garrantera att samma processor får fortsätta med samma process senare; i en (A)MP (Asymmetric) setup går detta; men då är problemet istället att det är du som programmerare som väljer processor för din process; vilket islutändan kan leda till att många program väljer att använda processor 1 medans processor 0 sitter iprincip tom; SMP har den fördel att processer balanceras mellan processorerna; om en processor är iprincip ledig har den väldigt stor risk att få nya jobb när nästa process startas.

 

Min poäng med detta är; visst är SMP ett smart sätt att nå högre prestanda än det för närvarande finns chip (man kan säga att SMP på sätt och vis låter dig använda morgondagens prestanda idag.) men det är 100% effektivt; förmodligen kommer SMP alltid finnas efter som efter frågan på prestanda alltid är högre än den kapacitet dagens processorer har.

för det mesta funkar SMP bra; men ibland kan det resultera i riktigt dålig prestanda.

Länk till kommentar
Dela på andra webbplatser

En annan sak som bör tänkas på är att flera processorer inte bara ökar prestandan; det sackar också ner; lite kort fattat fungerar en SMP setup så att en processor är master; det är den som bestämmer; dom andra blir digerade av master cpu:n; detta med för att en SMP dator inte är lika effektiv som man kan tro; 2x 1Ghz är alltså inte snabbare än 1x 2Ghz av samma processor/typ.

:huh:

 

Jeg trodde at det var OS X's kernel som dirigerte porsessene mellom de ulike prosessorene. Det er jo kernelen som styrer maskinen, både på software og hardware nivå.

Länk till kommentar
Dela på andra webbplatser

Jeg trodde at det var OS X's kernel som dirigerte porsessene mellom de ulike prosessorene. Det er jo kernelen som styrer maskinen, både på software og hardware nivå.

Ja; men vad har det med saken att göra ? Jag pratar om hur SMP fungerar; inte hur det är implementerat.

Länk till kommentar
Dela på andra webbplatser

Kernel processen, som ansvarar för att bestämma vad som skall köras på vilken processor, måste ju köras på någon processor.

 

Alternativt (om man har många CPUer så att mastern inte skulle hinna med) så kan man ha en mer distribuerad lösning där varje processor kommunicerar med de närliggande CPUer om kapaciteten de eller dess mer avlägsna grannar har eller jobb som de inte orkar med. Denna information kan sedan användas för att två processorer skall kunna omfördela sin arbetsbörda eller skicka jobbet till ett mer avlägset CPU som inte är så upptaget.

 

Ett annat mer fundamentalt problem är att parallellism[1] tenderar att skala dåligt efter ett vist antal CPUer om jobbet som utförs inte verkligen till 100% är parallellt. Ett litet räkne exempel:

 

Program A tar 100 tids enheter på 1 CPU och 90% av koden kan köras parallellt (vilket är ett rätt bra värde) detta gör att:

 

1 CPU -> 100

2 CPUer -> 10 + 90/2 = 55

4 CPUer -> 10 + 90/4 = 33

8 CPUer -> 10 + 90/8 = 22

16 CPUer -> 10 + 90/16 = 16

 

Som synes så blir det viktigare och viktigare att eliminera de icke parallella delarna i programmet, om det skall skala väl, på många CPUer.

 

[1] = här pratar jag om program som använder alla CPU kraft de kan få.

Länk till kommentar
Dela på andra webbplatser

Björn Nordström

Tack för alla intressanta synpunkter. Jag har läst och lärt mig en del. Att alla processorer kommer från samma tillverkningslina och i efterhand mäts och sorteras efter prestanda var en nyhet för mig, men så är jag är inte heller särskilt insatt i de här frågorna. Detta innebär ju att de högst presterande chipen måste bli klart dyrare. Det utesluter också min idé med segmentering med en eller flera processorer av bästa sorten, det skulle bli alldeles för dyrt med tanke på att en stor andel måste kasseras. Men vem vet, en Fyraproppars-Mac kanske dyker upp en dag.

Länk till kommentar
Dela på andra webbplatser

Men vem vet, en Fyraproppars-Mac kanske dyker upp en dag.

Fanns det inte en klon som hade fyra processorer på den tiden?

Länk till kommentar
Dela på andra webbplatser

Men vem vet, en Fyraproppars-Mac kanske dyker upp en dag.

Fanns det inte en klon som hade fyra processorer på den tiden?

Daystar hade väl en fyra prcessors burk?

Länk till kommentar
Dela på andra webbplatser

Yes! Daystar Genesis hittar du HÄR! Hela 4 PowerPc 604 132 mHz! Rena blixtnedslaget!! (w00t)

Länk till kommentar
Dela på andra webbplatser

Yes! Daystar Genesis hittar du HÄR! Hela 4 PowerPc 604 132 mHz! Rena blixtnedslaget!! (w00t)

Hmm... kunde man verkligen dra nytta av så många processorer på den tiden?

Länk till kommentar
Dela på andra webbplatser

Björn Nordström
Yes! Daystar Genesis hittar du HÄR! Hela 4 PowerPc 604 132 mHz! Rena blixtnedslaget!! (w00t)

Hm, 10000 dollar kostade kalaset. Hoppas dom hade kul när dom körde den… Värstingdatorer har faktiskt blivit väsäntligt billigare nuförtiden, eller också är folk inte så lättlurade; alla inser att en billig konsumentdator om ett - två år ändå är mycket bättre än dagens high-end-maskiner.

Länk till kommentar
Dela på andra webbplatser

Yes! Daystar Genesis hittar du HÄR! Hela 4 PowerPc 604 132 mHz! Rena blixtnedslaget!! (w00t)

Hmm... kunde man verkligen dra nytta av så många processorer på den tiden?

I allmänhet så var den väl inte så användbara, men jag har för mig att det fanns en photoshop plugin som accelererade (dvs använde alla CPUer) vissa operationer och det fanns troligen liknande varianter till ett fåtal andra program.

Mest glädje av denna maskin hade man troligen om man behövde utveckla CPU intensiva special applikationer.

Jag har även vaga minnen av att det har funnits andra multiprocessor varianter med CPU på PCI kort (eller liknande) - denna lösning skulle idag antagligen vara alldeles för långsam eftersom PCI bussen har för lite bandbred för att räcka till, för alla accesser till RAM, som moderna CPUer gör.

Länk till kommentar
Dela på andra webbplatser

Yes! Daystar Genesis hittar du HÄR! Hela 4 PowerPc 604 132 mHz! Rena blixtnedslaget!! (w00t)

Hmm... kunde man verkligen dra nytta av så många processorer på den tiden?

Ja; Från och med MacOS 7.5 så har man kunnat använda flera processorer på Macen; ibörjan var det Daystar som hand havde denna funktionalitet ifrom av Multiprocessing Services; men apple tog senare över biblieoteket.

Länk till kommentar
Dela på andra webbplatser

Jag har även vaga minnen av att det har funnits andra multiprocessor varianter med CPU på PCI kort (eller liknande) - denna lösning skulle idag antagligen vara alldeles för långsam eftersom PCI bussen har för lite bandbred för att räcka till, för alla accesser till RAM, som moderna CPUer gör.

Denvar nog säkert lika snabb som en tidig iMac G3........ (w00t)

Länk till kommentar
Dela på andra webbplatser

Yes! Daystar Genesis hittar du HÄR! Hela 4 PowerPc 604 132 mHz! Rena blixtnedslaget!! (w00t)

Hm, 10000 dollar kostade kalaset. Hoppas dom hade kul när dom körde den… Värstingdatorer har faktiskt blivit väsäntligt billigare nuförtiden, eller också är folk inte så lättlurade; alla inser att en billig konsumentdator om ett - två år ändå är mycket bättre än dagens high-end-maskiner.

Grejen är ju den att detta inte är konsument datorer; dom är riktade till proferssionella användare; företag som måste ha "morgondagens kraft idag".

Tänk om SMHI/SAAB eller vad som helst bara använde dagens konsument datorer för att räkna ut väder prognoser och simulera/designa flygplan etc; det skulle knappast vara möjligt att göra 5 dygns prognoser då; även dags prognoser är nog tveksamt om dom hinner få fram.

 

angånde värsting datorer som blivit billigare; visst är det så; du får mycket mer kraft för pengarna idag; men tyvärr kompenseras detta ofta med långsammare/oeffektiv mjukvara.

Idag handlar allt om att få ut en produkt så snabbt som möjligt.

Man bör också tänka på att hastighets skillnaden mellan dagens botten datorer och dagens topp datorer inte är lika tydlig heller; vilket jag pratade om i en annan tråd någon månad sedan. efter som hastighets ökningarna blir mindre och mindre ioch med att frekvensen ökas; detta försöker man kompensera med processorer som kan hantera fler instruktioner samtidigt; vilket förmodligen är det smartaste sättet; och fortfarande finns det mycket tekniker man kan använda för PowerPC:n för att öka prestandan;

x86 processorerna är något otroligt trimmade; powerpc:n skulle kunna ta några tekniker här ifrån; förmodligen det mesta ioch med att den senaste generationen powerpc fungerar snarlikt till dagens x86 processorer (dom splittar instruktioner till ett mindre och kortare instruktionsset).

Länk till kommentar
Dela på andra webbplatser

Program A tar 100 tids enheter på 1 CPU och 90% av koden kan köras parallellt (vilket är ett rätt bra värde) detta gör att:

 

1 CPU -> 100

2 CPUer -> 10 + 90/2 = 55

4 CPUer -> 10 + 90/4 = 33

8 CPUer -> 10 + 90/8 = 22

16 CPUer -> 10 + 90/16 = 16

 

Som synes så blir det viktigare och viktigare att eliminera de icke parallella delarna i programmet, om det skall skala väl, på många CPUer.

 

[1] = här pratar jag om program som använder alla CPU kraft de kan få.

Hmmm. Detta exempel är lite väl förenklat. Även om man säger att 90% av koden kan köras parallellt så finns det inget som säger att den kan köras parallellt fullt ut, dvs alla instruktioner parallellt med varandra. I praktiken finns det alltid en övre gräns i en algoritm för hur många parallella spår man kan dela upp den i.

Länk till kommentar
Dela på andra webbplatser

Hmmm. Detta exempel är lite väl förenklat. Även om man säger att 90% av koden kan köras parallellt så finns det inget som säger att den kan köras parallellt fullt ut, dvs alla instruktioner parallellt med varandra. I praktiken finns det alltid en övre gräns i en algoritm för hur många parallella spår man kan dela upp den i.

 

Naturligtvis så är det något förenklat, exemplet är något av ett ideal fall eftersom man antar att man kan dela upp en specifik uppgift (tex raytrace rendering av en serie bilder) på ett godtyckligt antal CPUer, där varje CPU sedan processar sin del av jobbet lika snabbt, med många problem fungerar detta exempel dock rätt bra eftersom antalet CPUer är mycket mindre än de praktiska gränserna för hur mycket som kan köras parallellt; pga att OSet inte kan hantera fler trådar(~processer), att vi inte har fler bilder att rendera eller att det inte finns fler pixlar att processa, om vi rendera en enskild bild.

 

Exemplet antar också, för enkelhetens skull, att de parallella trådarna kan köra oberoende av vad de andra gör, ett typiskt exempel som nämnts ovan, är renderaren som skulle kunna agera på detta sätt:

* ladda renderings beskrivningar och skapa trådarna, antal trådar >= antal CPUer (bara ett CPU jobbar)

* kör trådarana, fyll på med nya renderings beskrivningar allt eftersom de blir klara med den bild de jobbar med (alla CPUer jobbar)

* organisera resultaten (bara ett CPU jobbar)

Om trådarna ibland måste vänta på varandra pga att de tex vill skriva till HDn eller behöver resultat från den andre, för att försätta, så blir det hela något svårare att räkna på.

 

När det gäller att få alla CPUer (trådar) att jobba lika mycket, så går det, att dela ut bitar av uppgiften gradvis, allt eftersom de blir klara, så att ingen av dem står stilla någon längre period när hela jobbet börjar bli klart.

 

Sedan så beror ju graden av parallellism mycket vad det är för problem som skall lösas, vilka algoritmer man kan använda och hur mycket tid som programmeraren kan använda för att eliminera eller minska de sekventiella flaskhalsarna.

 

Men med tanke på att finns data system som använder tusentals CPUer så går det åtminstone för vissa problem att skriva dem nästan helt parallellt.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...