Linus Torvalds sågar fler processorkärnor

Permalänk
Inaktiv

En fråga är vart ligger denna gräns för hur många kärnor som är värt att skaffa för vanliga entusiaster idag?

Jag betvivlar att det finns många entusiaster som enbart gör en sak i taget och sitter i timtal och stirrar på att processbar ska ha räknat klart innan de fortsätter att arbeta. Många använder självklart flera datorer samtidigt, där en dator kan vara en server som man remotar. Men ändå så är det ofta som man får vänta på något och man har ej tid/ork att starta allt på olika maskiner.

För en vanlig entusiast idag så anser jag att 8 kärnor och 32GB ram (minst 8GB ram per VM) ungefär är lagom för vanligt arbete som många av oss gör.

Permalänk
Medlem

Programmeringsspråken ligger flera år efter processorutvecklingen så det är ju inte så konstigt egentligen. Jag tror att Linus Torvalds ord väger tyngre än någon annan programmerare i världen, eller är det någon som anser sig kunna bättre kanske...

Visa signatur

Sandy-bridge + gtx770 /dator
http://dreamhack.se/dhw15/

Permalänk
Medlem
Skrivet av 1up:

Programmeringsspråken ligger flera år efter processorutvecklingen så det är ju inte så konstigt egentligen. Jag tror att Linus Torvalds ord väger tyngre än någon annan programmerare i världen, eller är det någon som anser sig kunna bättre kanske...

Språken är ju totalt irrelevant. Det enda de påverkar är vad som är enkelt respektive svårt att skriva, inte vad man kan göra.

Permalänk
Inaktiv
Skrivet av cardeci:

Språken är ju totalt irrelevant. Det enda de påverkar är vad som är enkelt respektive svårt att skriva, inte vad man kan göra.

Detta tycker jag är att överdriva. Språken med all framework etc har stor betydelse för hur bra man kan sprida beräkningskraften på flera kärnor.
Speciellt nu när vi bara går emot allt högre nivå av språk där användaren har mindre koll på vad komponenterna fungerar och det är väldigt vanligt med att folk programmerar i applikationer och gör plugins m.m
Ta Labview som exempel, man har inte en susning om hur komponenterna som man fungerar och det är upp till National instrument att se till så att de kan använda flera kärnor. Vissa utvecklingsmiljöer med språk är t.o.m byggda för att man inte ens ska köra komponenterna på en och samma dator och man får en varning om man har valt att köra 2 komponenter på samma ip. (dator identifieras med ip)

Så jag anser att språkutvecklingen har stor betydelse för hur bra man kan fördela kraften på olika kärnor eller olika kluster som kan finnas i olika byggnader.
Även om man tar språk som C#, java m.m så använder man en massa olika komponenter som indirekt tillhör språket.

Permalänk
Medlem
Skrivet av cardeci:

Språken är ju totalt irrelevant. Det enda de påverkar är vad som är enkelt respektive svårt att skriva, inte vad man kan göra.

Detta är kanske det dummaste tvärsäkra uttalandet jag hört här på Swec. Språket har allt mer hur man utnyttjar hårdvaran att göra. Det finns en anledning till att eksimåer har tio ord för snö och thailändare kanske ett. Språket styr vad man kan uttrycka, och vad man kan uttrycka begränsar och styr hur koden du skriver till slut blir maskinkod som kör på processorn. Det är detta som är datavetenskap och om du inte har respekt för DV så var så snäll och var tyst eller kom med stöd för dina påståenden.

Permalänk
Medlem
Skrivet av sgtprobe:

Som en replik till Torvalds utspel så tillhör jag väl till de "få" då som inte kan få nog av CPUer/kärnor på desktop. Å andra sidan så gäller det de flesta i min umgängeskrets också. Hans frågeställningar angående nyttan av mängder av CPU kärnor på Smartphones etc. är jag helt med på.

Det Linus snackar om handlar ju dock inte huvudsakligen om antalet kärnor rakt av (särskilt inte om du håller dig i trakterna av dagens CPUer) utan snarare avvägningen mellan färre snabba kärnor (i princip alla vanliga cpuer idag) eller en stor mängd svaga kärnor (isf mer likt dagens gpuer till upplägget). Det Linus säger är att han tycker att det vore galenskap att satsa på en stor mängd svaga kärnor som huvudsaklig beräkningsenhet i datorer för vanliga användare.

"There's this huge body of "knowledge" that parallel is somehow more efficient, and that whole huge body is pure and utter garbage. Big caches are efficient. Parallel stupid small cores without caches are horrible unless you have a very specific load that is hugely regular (ie graphics)."

"End users are fine with roughly on the order of four cores, and you can't fit any more anyway without using too much energy to be practical in that space. And nobody sane would make the cores smaller and weaker in order to fit more of them - the only reason to make them smaller and weaker is because you want to go even further down in power use, so you'd still not have lots of those weak cores."

Jag uppfattar mao det centrala i vad Linus säger som att han inte tror på att ha betydligt svagare kärnor än dagens för att istället kunna ha fler, inte att det konkreta antalet kärnor egentligen är det viktiga för hans argument.

Som jag tolkar det du säger, och det de flesta andra som kommenterar här, så menar ni att "jag vill ha fler snabba kärnor!" vilket i så fall ändå handlar om något annat, dvs högre effekt, osv.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Skrivet av LoppanH:

Bara att slänga min nyinköpta 5820 processor i skräplådan å skaffa nåt annat då

Haha lite så känner jag med. Men visst det kommer fler program och spel som kommer vara kompatibla. DDR4 kommer bli den nya standarden precis som när DDR3 eller DDR2 kom

Permalänk
Medlem
Skrivet av beh:

Detta är kanske det dummaste tvärsäkra uttalandet jag hört här på Swec. Språket har allt mer hur man utnyttjar hårdvaran att göra. Det finns en anledning till att eksimåer har tio ord för snö och thailändare kanske ett. Språket styr vad man kan uttrycka, och vad man kan uttrycka begränsar och styr hur koden du skriver till slut blir maskinkod som kör på processorn. Det är detta som är datavetenskap och om du inte har respekt för DV så var så snäll och var tyst eller kom med stöd för dina påståenden.

Jag läste klart DV för.. 20 år sedan ungefär. Och, ja, olika språk gör olika saker _olika enkla_. Jag har skrivit kompilatorer. Jag har skrivit intepretatorer. Jag har skrivit "frameworks". Och typ fem olika lispar (om man räknar javascriptmotorer som en lisp, vilket det ju är).

I grunden är allt maskinkod. Så länge ditt språk är turingkomplett (bonus: och har access till de grundläggande primitiverna i OS:et) så kan du skriva _exakt vad som helst_ i det. Det är en av grunderna i datavetenskap.

Permalänk

http://www.tomshardware.com/reviews/intel-core-i7-5960x-haswe...

Finns andra benchmarks osv. Antar har man pengarna är det ändå värt att uppgradera?

Permalänk
Medlem
Skrivet av spicy_mama:

http://www.tomshardware.com/reviews/intel-core-i7-5960x-haswe...

Finns andra benchmarks osv. Antar har man pengarna är det ändå värt att uppgradera?

Se mitt tidigare inlägg, det där är inte riktigt vad Linus uttalande handlar om.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Skrivet av evil penguin:

Se mitt tidigare inlägg, det där är inte riktigt vad Linus uttalande handlar om.

Rätta mig om jag har fel då har hela hans uttalande speglat en fiktion-framtid och inte hur det ser ut idag?

Permalänk
Medlem

Var det inte en svensk kärring som sade att internet var en fluga och skulle gå över om ett par år? Politiker dessutom har jag för mig. 640k i windows 3.1 på åttitalet ser ut som ett helt normalt uttalande (om det nu hade varit sant) kontra internetflugan för drygt tio år sedan.

Visa signatur

14900KF--Apex Encore--RTX 4090--G.Skill 2x24GB DDR5-8000--Dynamic Evo XL
12900K--RTX 2080Ti--Gigabyte Z690 Aorus Master--4X16GB DDR5 6000
Ljud: Lewitt Connect 6--Shure SM7B
Skärmar: Neo G8 4K 240hz--Huawei 3440x1440 165hz

Permalänk
Medlem
Skrivet av moztech:

Källa på det fetade, tack. Tror att du överskattar din 2500k något enormt. IPC'n ska vara ungefär lika mellan 1100T och 2500k. 2500k lite starkare, men inte 43%. Den siffran har du hittat på.

http://www.sweclockers.com/image/diagram/2491?k=a27879abd98a4...

6 starka kärnor är underbart. Kändes framtidssäkert när jag köpte den och det stämde bra. Tyvärr är ju Phenom II det sista bra AMD gjort på väldigt länge. Skulle aldrig gå över till bulldozer. Extrem fail där.

Använde detta som källa: http://www.cpu-world.com/Compare/448/AMD_Phenom_II_X6_1100T_v...

Men ja, Bulldozer var en fullständig katastrof, känns som att de till och med gick tillbaka i tiden istället för framåt

Visa signatur

Gamingrig | Intel Core i7-6700K @ 4.2 GHz | Nvidia GeForce GTX 980 Ti | ASUS ROG Maximus VIII Formula | 16GB 2133MHz HyperX DDR4 | SSD: Samsung 850 Pro 512GB + Intel 535 480GB + Samsung 840 Pro 256GB | HDD: 2x WD Black 2TB + 2x WD Green 4TB | Creative Sound Blaster ZxR+Sennheiser HD650 | Corsair RM1000 | Corsair H100i V2 | Phanteks P400S Tempered glass | Asus ROG Swift 1440p 165Hz + Asus 1440p PLS | Retina Macbook Pro | i7-3820QM | 8GB RAM | MS Surface Pro 3&4 | Intel i5 | 8GB RAM | 256GB SSD |

Permalänk
Medlem
Skrivet av cardeci:

Jag läste klart DV för.. 20 år sedan ungefär. Och, ja, olika språk gör olika saker _olika enkla_. Jag har skrivit kompilatorer. Jag har skrivit intepretatorer. Jag har skrivit "frameworks". Och typ fem olika lispar (om man räknar javascriptmotorer som en lisp, vilket det ju är).

I grunden är allt maskinkod. Så länge ditt språk är turingkomplett (bonus: och har access till de grundläggande primitiverna i OS:et) så kan du skriva _exakt vad som helst_ i det. Det är en av grunderna i datavetenskap.

Jag får nog hålla med här, med tillägget att olika språk såklart är olika komplexa att lösa en viss uppgift i.

//Student för kandidatexamen i DV

Visa signatur

Desktop: | Win10 | InWin 303 | ASUS TUF X570 | AMD Ryzen 5 3600 | Noctua NH-U12S (PP) | Intel 600p 256GB | Gigabyte GTX 670 | 32GB DDR4 2400Mhz | Corsair RM650x | 3x 1080 Screens |
Datacenter: | 1x Physical | 1x Virtual |
Laptop: | 2x |

Dell Certified Technician

Permalänk
Avstängd

Vilka är fallen där fler processorkärnor kan vara fördelaktigt? Finns det några matematiska papier att läsa rörande tidsvinster, energioptimering etcetera? Skulle en server vara betjänt av mer parallell beräkning medan slutanvändarna kör färre kärnor. Det vill säga man ser parallella kärnor som en klusterkombination. Maskin 1 server kärnor n, maskiner 2-40000 åtta kärnor tillika grafikhantering. Det blir programoptimering inte i den enskilda maskinen utan ur ett större perspektiv. Vad säger swefoldarna?

Visa signatur

Allting är gratis. Bara höja skatten.
http://imgur.com/gallery/hhD3J
I zenit av Roms storhetstid mutades romarna att rösta på senatorer i utbyte mot mutor
https://www.youtube.com/watch?v=gJ2tPMIh6u0

Permalänk
Avstängd
Skrivet av marcusOCZ:

Var det inte en svensk kärring som sade att internet var en fluga och skulle gå över om ett par år? Politiker dessutom har jag för mig. 640k i windows 3.1 på åttitalet ser ut som ett helt normalt uttalande (om det nu hade varit sant) kontra internetflugan för drygt tio år sedan.

Windows 3.1 fanns inte ens på 80-talet, det släpptes 1992 innan det var det Windows 3.0 som släpptes 1990

Windows 1.0 (20 November 1985)
Windows 2.0 (9 December 1987)
Windows 2.1 (27 Maj 1988)
Windows 3.0 (22 Maj 1990)
Windows 3.1 (6 April 1992)

Visa signatur

The problem in society today: Smart phones, stupid people.

Permalänk
Medlem
Skrivet av Haellgren:

Tyvärr ett falskt rykte, han har i efterhand nekat uttalandet.

Ja vem hade inte (?) i efterhand nekat det uttalandet

Visa signatur

Pc 1--> [AsRock DualSata2][AMD4600+X2][7800GT] [Intel SSD X-25 80GB G2][1TB F3][750GB IDE][4GB XMSCorsiar]Pc 2--> [Asus Crosshair] [AMD 4800+X2] [2st 8800GT i SLI] [RAID 0 2x250GB] [6GB XMSCorsair] [Corsair HX750]Pc 3-->[HP Microserver 12TB]Pc 4--> AsRock P67 Extreme 4,i7 2600K @ 4.0 GHz,830 256GB,16GB 1600MHz, R9 290X Foto [Nikon D7000][70-300/35 1,8/18-55 [Skärmar=24",24",24" Eyefinity]

Permalänk
Medlem

Jag tror nog att tillverkarna tjänar på fler svagare kärnor då det säljer bättre, som allt annat så vill alla ha höga siffror att skryta med.

Visa signatur

ASUS P57P55D-E, INTEL CORE I5 750 @ 4013MHz, Corsair Dominator XMP @ 1950MHz, OCZ Stealthxstream 700W, SAPPHIRE HD 4870 512 MB, 2TB HDD, Noctua NH D-14, NZXT GAMMA, NZXT SENTRY LX, ANTEC VERIS PREMIUM, SIDEWINDER X4, RAZER KRAIT.

Permalänk
Medlem
Skrivet av XFTality:

Använde detta som källa: http://www.cpu-world.com/Compare/448/AMD_Phenom_II_X6_1100T_v...

Men ja, Bulldozer var en fullständig katastrof, känns som att de till och med gick tillbaka i tiden istället för framåt

Okej. En bra indikator är nog:

7Zip compressing/decompressing speed (1 thread) benchmark
2500k - 100%
1100t - 88.4%

Bulldozer var riktigt dassig. Skulle aldrig gå över till en sådan. Kanske uppgraderar om något år. Provat klocka min CPU för skojs skull och kom upp i 4.6GHz på luft med vettiga temperaturer. Har inte värsta tornkylaren men har en Noctua i alla fall. Vill inte att processorn tuggar på i 4.6GHz jämt eftersom jag gillar energisparlägen. 804MHz i skrivande stund.

Permalänk
Medlem

Jag rekommenderar den här videon, angående utebliven parallellism i det tjugoförsta århundradet:

http://vimeo.com/71278954
(Bret Victor - The Future of Programming)

Det kanske inte är datorerna som behöver förändras så mycket som sättet att använda dem?

Permalänk
Medlem
Skrivet av moztech:

Vet inte om dåligt trådade program är hur man testar IPC. Borde man inte köra ett komprimeringsprogram med en kärna på samma frekvens?

Helst ett program som absolut endast testar en kärna, ja. Nu grävde jag i Swec's recension och de verkade inte testa något sådant. Men Anandtechs bench har bl.a. Cinebench single thread att jämföra med.

Visa signatur

i9-10980XE ~4.6GHz | 128GB DDR4-3600 | ASUS WS X299 PRO | RTX 4070 Super, Founders Edition
i7-7820X 4.8GHz | 64GB DDR4-3200 | ASUS WS X299 PRO | RTX 3080, Founders Edition

Permalänk
Avstängd
Skrivet av anon159643:

Tvärtom tycker jag på de storföretag som jag arbetar emot, det blir bara mer och mer som ska köras i molnet och företag vill inte underhålla en massa klienter i onödan. Snart är det väl historia när man hade officeprogrammet på sin egna dator? (office 365), detsamma gäller emailprogram etc. Det har även pratas en hel del om spelkonsoler i molnet även om jag inte förstår hur detta ska fungera.
Så det kan bli att vi sitter med typ tunna klienter och då behövs inte många kärnor.

Intressant, trodde det mesta sådant kördes via externa tjänster idag, men så kanske inte är fallet.
Känna ju onekligen iaf i mitt tycke, bortsett från det med molnet som jag också antar kommer att dominera mer snart, att detdär med typ en skärm och ett tangentbord men just inget mer var rätt passé redan i mitten av 90 talet och att molnet idag mest bestod av externa lagringstjänster och på sin höjd en backupserver för internt bruk, iaf var det ju det man förutspådde i mitten av 90 talet. Intressant.

Visa signatur

Daisy, Daisy...
Three is a magic number
Yes it is, it's a magic number

Permalänk

Flera kärnor är najs men att få dem utnyttjade är en annan sak.
Kolla bara på en 2.3GHz Quad ARM (RISC) vs en 2.3GHz Quad Intel (CISC) och så ser man att IPC är viktigare än kärnantal.

Sen om individuella instruktioner blir bättre såsom i GPGPU så kan flerkärniga processorer blir bättre.

Visa signatur

CPU i9-9900K GPU ASUS RTX 2080 TI Strix OC MB ASUS STRIX Z390-E RAM Corsair VENGEANCE RGB 32GB DDR4 3200MHz Case Fractal Design Define C PSU EVGA G3 850W Cooling Noctua D15
Monitor MSI Optix MAG342CQR SSD Samsung 970 EVO 500GB 860 EVO 500GB 860 QVO 2TB + QVO 4TB PLEX Server 2x HC560 20TB+WD RED 2x10TB+12TB

Permalänk
Avstängd
Skrivet av Mizzarrogh:

Intressant, trodde det mesta sådant kördes via externa tjänster idag, men så kanske inte är fallet.
Känna ju onekligen iaf i mitt tycke, bortsett från det med molnet som jag också antar kommer att dominera mer snart, att detdär med typ en skärm och ett tangentbord men just inget mer var rätt passé redan i mitten av 90 talet och att molnet idag mest bestod av externa lagringstjänster och på sin höjd en backupserver för internt bruk, iaf var det ju det man förutspådde i mitten av 90 talet. Intressant.

Tankevurpa av mig här, men jag tror, utan att veta, att om man frågat Linus om detta du sade förut skulle han kanske svara att detdär kommer att bli ett viktigt nisch segment, jag vet inte, men det är iaf vad jag skulle sagt och vad man sade då så, ja, du har ju inte fel i detdär.
Men svårt att säga om det kommer att förbli en sådan nisch eller om det går mer mot vanliga konsumenter också, jag vet inte...

Visa signatur

Daisy, Daisy...
Three is a magic number
Yes it is, it's a magic number

Permalänk
Medlem
Skrivet av spicy_mama:

Rätta mig om jag har fel då har hela hans uttalande speglat en fiktion-framtid och inte hur det ser ut idag?

Det har ju viss relevans redan idag men som jag förstår det han skriver så handlar det ju i första hand om framtidsscenarion. Det snackas ju om hundratals kärnor i den där tråden, i ett sådant sammanhang så blir det ju tydligare vad han pratar om.

Om du har hundratals kärnor som totalt inte skall dra mer ström än idag (snarare är förväntningen att de skall dra mindre) så blir de, om de fortfarande skall vara lika generella i sin funktion, rimligen mycket mindre kraftfulla var för sig och du blir då väldigt beroende av att kunna parallellisera i princip allt arbete för att inte förlora på en sådan utveckling.

Det är inte allt som lämpar sig för detta och det är väl där någonstans som Linus menar att det nog är en bra balans för vanliga användare att stanna någonstans i kring det antal kärnor där vi nu befinner oss. Om det är fyra kärnor eller åtta kärnor gör ju inte någon enorm skillnad för resonemanget jämfört med hundratals kärnor.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Datavetare
Skrivet av anon159643:

Beror på hur hårt det är och har man ens blandat in windows så är det redan kört för att göra något bra.

Men för mer konsumentapplikationer som spel finns det också realtidskrav och det är inte ovanligt med forumstrådar när någon klagar att spelat hackar till enstaka gånger. Och då inte ovanligtvis precis innan någon skjuter en, där nog grafikkortet nog är största boven.

Så även ur konsumentsynpunkt kan jag tycka vara lite fel på att enbart se applikationerna som att de ej har några realtidskrav alls och allt handlar om hur snabbt de kan exekveras.

Dold text
Skrivet av Elgot:

Fast om man börjar tala om garantier och "omedelbar exekvering" är det väl underförstått att man menar tämligen hårt. Garanterar windows att ens tråd får köra någonsin?

Dold text

Både Windows och Linux (i alla fall så länge som det inte finns några realtidstrådar) garanterar att varje tråd till slut kommer få köra förutsatt att den är i tillstånd READY (d.v.s inte blockad av något). Realtids OS och Linux om man använder realtidstrådar garanterar däremot INTE att alla trådar kommer få köra, de garanterar bara att den tråden med högst prioritet som är READY kommer få köra.

Och här ligger ett stort problem för hårda realtidssystem: multicore ger typiskt lägre genomsnittlig latens men hård realtid handlar om garantier på worst-case och multicore ställer till det rejält där. Jobbar bl.a. med utveckling av säkerhetskritiska system (flygplan, medicins utrustning etc) och där använder man inte SMP-system på vanligt sätt då det (ännu i alla fall) inte finns något sätt att formellt bevisa att ett system är korrekt (med en viss sannolikhet beroende på hur katastrofal en bug kan vara) om det är möjligt att trådar faktiskt körs samtidigt (multicore). I stället delar man upp systemet i flera, helt oberoende, delar och hårt låser varje sådan del till en egen CPU-kärna. Flera sådana delar kan dela på en fysisk CPU-kärna men då ligger det en s.k. time-partition scheduler som garanterar att de ändå inte påverkar varandra.

Skrivet av nitroid:

Om det är så meningslöst med mer än 4 kärnor, varför valde Sony då att använda 8 istället för 4 i PS4?

Och varför finns det vissa PC spel som där man rekommenderas att ha 6 eller 8 kärnor för bäst prestanda?

Sony och Microsoft valde att använda 2st 4-kärninga Jaguar CPUer för det var vad man hade att tillgå från AMD. Det är betydligt mycket enklare att dubbla antalet relativt enkla CPU-kärnor i en krets jämfört med att öka IPC med säg 20-30% med bibehållet antal CPU-kärnor. Det är också anledningen till att vi nu ser telefoner/pekplattor med 8 CPU-kärnor, det är enkelt att göra, ser bra ut i PR (bevisligen köper ju folk detta). Som tur är verkar trenden vända här, t.ex. så har Nvidia gjort en 2-kärnig krets som består av betydligt fler transistorer än Tegra 3/4 med sina 4 kärnor.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare
Skrivet av wereaz:

Vilka är fallen där fler processorkärnor kan vara fördelaktigt? Finns det några matematiska papier att läsa rörande tidsvinster, energioptimering etcetera? Skulle en server vara betjänt av mer parallell beräkning medan slutanvändarna kör färre kärnor. Det vill säga man ser parallella kärnor som en klusterkombination. Maskin 1 server kärnor n, maskiner 2-40000 åtta kärnor tillika grafikhantering. Det blir programoptimering inte i den enskilda maskinen utan ur ett större perspektiv. Vad säger swefoldarna?

Totalt räknat får man bättre perf/W med många relativt enkla CPU-kärnor än med få kärnor där man gått in för att maximera enkeltrådprestanda. Så det är en uppenbar fördel.

Men maskiner med många enkla kärnor är i praktiken bara effektivare om det problem de ska lösa är trivialt att dela upp, d.v.s. finns inget eller ytterst få beroende mellan problem som hanteras av olika kärnor.

Skrivet av cardeci:

...I grunden är allt maskinkod. Så länge ditt språk är turingkomplett (bonus: och har access till de grundläggande primitiverna i OS:et) så kan du skriva _exakt vad som helst_ i det. Det är en av grunderna i datavetenskap.

Att något är turingfullständigt betyder bara att det är möjligt att logiskt sett lösa varje givet problem, finns absolut inga garantier för att det går att lösa problemet effektivt på verklig maskinvara. Beskrivningen av en turingmaskin har överhuvudtaget inget koncept av att hantera fallet när det finns två instruktionsströmmar som körs samtidigt i samma minne, utan det fungerar bara för strikt sekventiella program.

Lite ironiskt är det ändå att de två enda språken som i praktiken är effektiva till att göra "parallel programming" skapades i slutet av 60-talet (C) resp. slutet av 70-talet (C with classes som sedan blev C++). Finns många språk så som Go och Erlang där det är väldigt enkelt att effektivt göra "concurrent programming", men det är inte samma sak som "parallel programming" även om det finns ett överlapp.

Om man vill skriva något som inte är specifikt för en viss CPU-arkitektur så är det bara C11 och C++11 som gör det möjligt att beskriva saker som load-acquire, store-release och sequentially consistent semantik för läsning/skrivning. Java och C# har bara delmängder av detta, så flera saker som är möjliga att beskriva i C11 när man kör på ett multicore-system går inte alls att beskriva i t.ex. Java/C# (rent logiskt kan man lösa samma problem, förutsatt att problemet inte innehåller krav på prestanda och skalning över CPU-kärnor som inte kan uppnås).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd
Skrivet av XFTality:

Helt rätt tycker jag, då mer än 4 kärnor oftast innebär: Antingen dålig prestanda (AMD) eller bara skryt för att förlänga e-penisar.

Underskatta inte en lång E-penis

Visa signatur

Asus Z97M-plus | i7 4790k @4.8Ghz | Aorus 1080Ti | FD Integra M 750W | Vengence 2x8 GB Ram | FD Define Mini C | Evo 850 500GB | Intel 750 1.2TB | AOC AG271QG

Permalänk
Avstängd
Skrivet av Rådström:

ITT: Människor som fortfarande tror att Gates sa minnescitatet och om han nu sa det, menade i all framtid.

Ja lite intressant att folk fortfarande tror att han sa det dom tror att han sa, framförallt här på Swec där dom flesta borde ha tillgång till Google.

Det är bara att konstatera att det finns väldigt få som kan tänka själv, 99% är flockdjur som tänker och gör vad flockledaren säger.

Visa signatur

Asus Z97M-plus | i7 4790k @4.8Ghz | Aorus 1080Ti | FD Integra M 750W | Vengence 2x8 GB Ram | FD Define Mini C | Evo 850 500GB | Intel 750 1.2TB | AOC AG271QG

Permalänk
Datavetare
Skrivet av Lessismore:

Det är ingen tvekan om att utvecklingen gått framåt när det gäller hårdvara, operativsystem och tillhörande program.

Dra igång en Pentium-D med Windows XP. Gör något kul som att tex kopiera lite filer. Allt du gör under tiden datorn jobbar, går segt. Gör samma sak på en dito dator med Windows 7 och du märker att datorn faktiskt är användbar.

Sen återigen det här med att vissa tycker att man inte tjänar något på att ha fler än 4st kärnor. Tex om man låter datorn arbeta med ett par saker i bakgrunden så att enhetshanteraren visar 82% CPU-last, 100% last på 3st kärnor och 50% på 1st kärna, känns ju datorn allmänt seg. Om man istället har en 6-kärnig CPU, så får man minst 2st kärnor att leka fritt med. Varför vill man inte ha 6-kärnig CPU då för?

Skickades från m.sweclockers.com

Om du inte har 100% last på ALLA CPU-trådar så finns det överhuvudtaget ingen anledning att ha fler CPU-kärnor, faktum är att det du gör i förgrunden kan bli långsammare av att det finns kärnor som är i "idle". För att förstå hur det kan vara så lär man ha lite grundläggande kunskaper i hur en modern CPU fungerar, de saker som spelar in här är frekvensskalning och CPU-cachen.

Säg att du har en 2 kärnig CPU är lastade till 100%, i detta läge går båda fysiska kärnorna på max frekvens. Du har sedan ett annat system med 4 kärnor där 2 kärnor är lastade till 100% och 2 är lastade till 0%. Nu gör du något interaktivt så GUI-delen ska kicka in en kort stund. Sättet både Windows, Linux och OSX schemalägger trådar kommer göra så att den interaktiva tråden direkt kommer få köra på båda systemen.

I det första systemet får man då en tråd där frekvensen är max (lägsta möjliga s.k. P-state), så kostnaden är en kontext-byte (som är relativt billigt på både Intel och AMDs CPUer).

I det andra systemet kommer schemaläggaren med relativt stor sannolikhet välja en av kärnorna som är "idle" (inte helt säkert på Linux). Den kärnan befinner sig till att börja med i minst C1, i värsta fall (typ laptop/bärbar) i djupare C-state. Det tar då mer tid att bara köra första instruktionen på den kärnan än vad det tog för kontext-bytet i förra fallet. Sedan startar med stor sannolikhet CPU-kärnan i högsta P-state (lägsta frekvensen) och det tar ÄNNU mera tid att byta P-state (typiskt ~10us) än det tar att gå ur C1 till C0 (vilket är ~1us).

Ovanpå detta har Windows (mindre problem i OSX och Linux) en tendens att få OS-trådar att "hoppa" mellan CPU-kärnor om det finns relativt många OS-trådar men ingen använder 100% av CPU-tiden. Detta leder till att saker ibland är cachad på "fel" CPU och vilket sänker prestanda.

Om man renderar eller gör något annat som kan utnyttja många CPU-kärnor till 100% så visst ska man dra till med en CPU med många CPU-kärnor. Men för den stora massan ger det i bästa fall ingenting att ha många CPU-kärnor, i värsta fall drar det mer ström och går (marginellt) långsammare. Själv undviker jag mer än två CPU-kärnor + HT i laptops och liknande, batteritiden blir definitivt lidande när man har 4 kärnor, vilket jag tyvärr har i min nuvarande laptop då det inte gick att välja 2-kärnig p.g.a. att det var en "topp-modell"

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer