Linus Torvalds sågar fler processorkärnor

Permalänk
Melding Plague

Linus Torvalds sågar fler processorkärnor

Fler kärnor ger inte nödvändigtvis mer prestanda. Linux-skaparen Linus Torvalds drar iväg en svavelosande salva mot alla dem som förespråkar massiv parallellisering på klientsidan.

Läs artikeln

Visa signatur

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa kan leda till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Permalänk
Medlem

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.

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

640K ought to be enough for anyone.

Permalänk
Medlem

I dagsläget är fler än 4 kärnor hyffsat meningslöst utanför rendering/redigering/cad och det ser väl ut att fortsätta så inom en överskådlig framtid. Inget konstigt med det.

Visa signatur

| nVidia RTX3090FE | R9 5950x | MSI x570 Unify | Ballistix sport 3000c15 32GB DR@3800c16 | Custom Loop EKWB | 9TB nvme, 3TB sata SSD | RM1000x | Creative X4 | Lian Li o11 Dynamic | Alienware aw3821dw | >Zen2 på 3-400 mobo< | >x570 VRM< | :::AMD Zen Minnesguide:::|:::AMD Zen & Zen+ Överklockningsguide:::

Permalänk
Keeper of Traditions
Skrivet av 0x90:

640K ought to be enough for anyone.

640000 vad? Kärnor?

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem

"Han menar att normala klienter klarar sig med fyra kärnor..." Ja, håller helt med! Det finns många som ser sig själv i alla och med det menar jag att om de själva måste ha 144Hz-skärm, 8-kärnig prolle etc så tror de att alla andra måste ha det också. Jag tror knappt ens att majoriteten av alla datoranvändare känner till vilken modell deras dator är, lite som i försäljningsbranschen: förutsätt att alla är okunniga idioter för det är oftast sant ^^ haha

Visa signatur

Fractal Design R5, i5 6600k, MSI Z170A XPOWER GAMING TITANIUM EDITION, MSI GTX 980, 8GB Minne @ 2400MHz, BeQuiet Kraft 700W

Permalänk
Medlem

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Visa signatur

DATOR: Chassi: Corsair carbide air 540 CPU: I7 2700k (4.5Ghz 1.288v) RAM: Corsair 4^4(16)GB 1922Mhz Mobo: Asus P8Z68-V LX PSU: Antec HCG 900W GPU: Powercolor 7990 + Sapphire HD 7970 3GB Vapor-X (3way-CrossfireX)
KRINGUTRUSTNING:
Monitor: FSM-270YG 2560x1440 IPS Keyboard: Ducky Shine 2 White kaycaps orange LED Mouse: Logitch G502 Headset: Audio technica ATH-M50 Mic: Blue Snowball

Permalänk
Medlem

Jag håller bara delvis med. Jag upplever det som att många bluffar när de säljer sina programvaror som "16kärnekompatibel" men i själva verket knappt klarar av att använda två. I de fallen har de som flest sexton olika trådar som kör vid några fåtal tillfällen. Jag skulle med det resonemanget lätt kunna bygga en programvara som klarar 640K kärnor genom att skapa 640K trådar för att räkna ut 1+1. I resursövervakaren kommer man dock inte se mer än en kärnas användning då en huvudprocess oeffektivt jobbar för att skapa trådar som utför en enda beräkning (om man inte skapar dem i träd). Det är bluff när man marknadsför sitt program på det viset. Om jag däremot klarar av att skriva så pass mycket parallellism i mitt program att den använder sig fullt ut av fyra kärnor samtidigt - då kan jag utan att ljuga säga att mitt program klarar av att använda fyra kärnor. Med detta i beaktning är en stark kärna mycket mer användbar än flertalet mindre kärnor som gemensamt sitter på samma prestanda.

Däremot kan man ha igång många fler program samtidigt och där kommer en osynlig vinst in att ha många kärnor. Det är många parametrar som inverkar på vilken vinst man får på parallellisering och det diagrammet som Torvalds pratar om handlar om ett enskilt arbetes prestandavinst. Om man tar i hänsyn till att många program idag består av många olika delar med olika funktion så har man en mycket större prestandavinst på flera kärnor. Oftast kan det vara en så enkel sak som att GUIen flyter medan bakomvarande programvara jobbar så det knakar.

Om vi drar webbläsarjämförelse:
För IE, Firefox och Opera: Sant. Dessa utnyttjar bara en kärna och eftersom hemsidesprogrammerare har en tendens att ibland skapa mer och mer onödigt tunga hemsidor kan man inte ha särskilt många flikar uppe, oavsett om processorn är tvåkärnig eller sextonkärnig. I detta fall räcker vanligen en två till fyrakärning dator. En till webbläsaren och en till övriga systemprocesser.
För Chrome: Falskt. Denna webbläsare kör varje flik i en egen process. Varje process skulle lätt kunna ha möjlighet att skala på samma sätt som beskrivs i bilden. Om hemsidan är byggd smart skulle den teoretiskt kunna överskrida denna begränsning men webbläsaren är i nuläget inte byggd för att låta en flik få mer prestanda än en kärna. I detta fall skulle en sextonkärnig processor ge mycket mer kräm än en tvåkärnig eftersom det inte är ovanligt att man sitter med tiotalet flikar uppe samtidigt. En ytterligare sak att ta i beaktning är mängden RAM då Chrome tenderar att äta otaligt många GB med utrymme, men det är en annan sak.

I spel skulle man kunna åstadkomma en mycket bred parallellism genom att ex. låta varje farkost vara sin egen process. Om farkosten skulle bli beskjuten med ett komplext/snabbt vapen skulle skadorna från varje skott kunna räknas ut i en egen tråd. Då följer varje farkost samma effektivitetsökning som i grafen ovan men den sammanlagda parallellismen skulle skala linjärt med antalet skepp då de inte är direkt beroende av varandra.

Därför, att blint följa grafen är vilseledande. Om den princpien skulle vara universell skulle man knappt få någon som helst prestanda ur en ny dator som man köper - detta för att världen redan har biljoner kärnor.

Visa signatur

Kör Linux - Yes! We are the 2 percent! And growing... Föreslå inte ens något Windows-exklusivt om jag inte specifikt frågar efter något till Win.
2600K - 18GB RAM - 1TB HDD - 64GB SSD - GTX 650 Ti Boost
Minnesvärda trådar: 1, 2

Permalänk
Medlem
Skrivet av Dunder:

640000 vad? Kärnor?

En klassisk kommentar från Bill Gates som påstod att ingen kommer behöva mer än 640K RAM.

Visa signatur

Intel i5 12600K | Asus TUF Gaming Z690-Plus D4 | Asus Geforce RTX 3060 Ti | 32 GB DDR4 | Fractal Design North | Corsair iCue Link H100i | Cooler Master V750 Gold i Multi

Permalänk
Medlem

Hade gärna haft fler än 4 kärnor i min maskin för att rendera 3D på. Men då är jag ju en också av de här nischade användarna som nämns.

Visa signatur

Desktop: MSI MPG X570 GAMING PLUS, AMD Ryzen 9 5950X, Be Quiet Dark Rock Pro 4, 32GB G.Skill Trident Z RGB 3200,
ASUS ROG STRIX GeForce GTX 1080 8GB GAMING, Samsung 970 EVO Plus 500GB
Notebook: Macbook Pro 14" M1 Pro

Permalänk
Medlem

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

Permalänk
Inaktiv

Hans utspel kom i frågan om mobilitet, paddor & nallar. Medan han har sympati på desktop marknaden där multitasking & krävande applikationer finns.. Att folk inte snurrar spel och video samtidigt i telefoner är nästintill självklart, då flesta skärmarna är små och använder touchscreen.
Aja varför var denna artikel intressant.. självklart är mobiler inte multitask benägna i samma längd som desktops.. talar denna artikel mot Intel & AMD eller mot konsumenter som inte har med saken att göra?

Permalänk
Medlem
Skrivet av Gender Bender:

http://quotes.lifehack.org/media/quotes/quote-Bill-Gates-640k...

En klassisk kommentar från Bill Gates som påstod att ingen kommer behöva mer än 640K RAM.

Ja... fast nu sa han ju aldrig det egentligen

Permalänk
Medlem
Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Enkelt svar: Nej.

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
Medlem
Skrivet av Gender Bender:

http://quotes.lifehack.org/media/quotes/quote-Bill-Gates-640k...

En klassisk kommentar från Bill Gates som påstod att ingen kommer behöva mer än 640K RAM.

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

Permalänk
Medlem
Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Det handlar inte bara om att utvecklare ska optimera sina mjukvaror för fler kärnor. Vissa saker går helt enkelt inte att dela upp på flera kärnor så enkelt. Ta till exempel att packa upp en fil - det är enkelt att fördela på flera kärnor då varje kärna tar sin del av filen att packa upp, sedan sätts alla deltagande kärnors jobb ihop till den uppackade filen. Men i t.ex. ett spel, eller något annat jobb som innefattar ej förutsägbara beräkningar, så blir det svårare att fördela på flera kärnor. Tror jag.

Visa signatur

Stationär: ASUS X470 Strix-F / Ryzen 5800X / 16GB 3600MHz Corsair Venegance LP / PNY 4070 Ti / Samsung 830 128GB / WD Green 3TB / Cooler Master V700 / Fractal Design Define S2

Permalänk
Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Jodå om jag nu inte är helt ute och cyklar så är det precis så som Ps3´s Cell processor fungerar.

Visa signatur

NZXT H440W New Edition , Intel Core i7-6700K ,HyperX Predator 3000MHz 32GB ,CORSAIR RM850x ,2 x R9 NANO ,MSI Z170A GAMING M9 ACK, Samsung 950 PRO 256GB M.2, SEAGATE BARRACUDA 3TB , Intel TS15A CPU Air Cooler.

Permalänk
Inaktiv
Skrivet av JamesBanana:

Enkelt svar: Nej.

Varför inte? Låter teoretiskt genomförbart tycker jag.

Permalänk
Medlem
Skrivet av 0x90:

640K ought to be enough for anyone.

Låter lite mycket, jag tycker ~295-300 K är behagligare.

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Inaktiv
Skrivet av anon34034:

Hans utspel kom i frågan om mobilitet, paddor & nallar. Medan han har sympati på desktop marknaden där multitasking & krävande applikationer finns.. Att folk inte snurrar spel och video samtidigt i telefoner är nästintill självklart, då flesta skärmarna är små och använder touchscreen.
Aja varför var denna artikel intressant.. självklart är mobiler inte multitask benägna i samma längd som desktops.. talar denna artikel mot Intel & AMD eller mot konsumenter som inte har med saken att göra?

Precis, där jag tycker att antalet kärnor på mobiler kraftigt har rusat iväg p.g.a. det säljer mer och låter bättre. På persondatorsidan så gör man flera saker samtidigt och då är det inte samma problem med att fördela resurserna.

T.ex. maskinen som jag leker med nu har (2st 2*12 kärniga Xeons moderkort med 64GB ram vardera) och det finns inga som helst problem att utnyttja kraften i för vem som helst. Det är bara skapa 10st virtuella maskiner och kör lite skoj på dem och ens behov av mer datorkraft finns.
En maskin kanske någon ska spela på, en annan ska man redigera filmer på, någon ska agera filserver, databasserver etc..

Jag tror att folk allteftersom åren går bara kommer göra mer och mer samtidigt på sina maskiner. Så argumentet att man kanske har svårt att utnyttja 16kärnor i excel och liknande program, kan motargumenteras med att man kanske låter datorn arbeta med annat under tiden.

Permalänk
Medlem
Skrivet av anon42512:

Varför inte? Låter teoretiskt genomförbart tycker jag.

Kort sagt för att processorn inte vet hur data samverkar i förväg, den kan inte avgöra om två instruktioner kommer att behöva samma minnesbit innan den exekverar koden. Det är svårt nog när man skriver koden själv att förhindra problem i minneshanteringen. Att garantera datasäkerheten skulle kräva mångdubbelt mer beräkningskapacitet än beräkningen som skulle utföras från början och det blir därmed praktiskt ogenomförbart.

Kort artikel om ämnet: https://en.wikipedia.org/wiki/Synchronization_(computer_scien...

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
Medlem
Skrivet av Gender Bender:

http://quotes.lifehack.org/media/quotes/quote-Bill-Gates-640k...

En klassisk kommentar från Bill Gates som påstod att ingen kommer behöva mer än 640K RAM.

Asså seriöst, tror du på sån BS? Han har aldrig sagt så, han förnekar det och det finns inga källor som kan verifiera ditt citat. Det är bara ett dumt rykte som du verkar gå på trots att det har cirkulerat i runt 30 år :'D http://www.computerworld.com/article/2534312/operating-system...

Låt oss för ditt arguments skull säga att han sa det, att ditt bildcitat är sant - så säger han ju inte "ever". Enligt ditt bildcitat så pratar han för stunden och den maskinen var på den tiden ganska högt upp i prestanda. Från artikeln: "640KB at that time was an order of magnitude larger than the 64KB limit that faced users of 8-bit computers, such as the Apple II+ and the Commodore 64"

Visa signatur

Fractal Design R5, i5 6600k, MSI Z170A XPOWER GAMING TITANIUM EDITION, MSI GTX 980, 8GB Minne @ 2400MHz, BeQuiet Kraft 700W

Permalänk
Medlem
Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Det görs redan och har gjorts sedan mikroprocessorns barndom. Kallas för ILP, Instruction-level parallelism. Exempel är pipelining, out of order execution m.fl. Det är förbättringar inom det området som stått för många prestandaökningar, t.ex. mellan Pentium 4 och Core 2. Men precis som med flera kärnor så finns det en gräns för hur mycket som går att utföra parallellt, varför skillnaden mellan processorgenerationer blir mindre och mindre.

Flerkärniga processorer är inte ett speciellt elegant sätt att utnyttja transistorbudgeten, och fördelen avtar som sagt med antalet kärnor. Så hoppen från 1 till 2 till 4 kärnor är ganska stora, men sedan avtar vinsten i de flesta vanliga tillämpningarna. Därför är jämförelser med t.ex. internminne inte speciellt relevant. Det finns en inneboende gräns för hur parallellt ett datorprogram kan göras.

När Intel och AMD körde in i temperatur/strömförbrukningsväggen runt 2004-2005 var det enda sättet att fortsätta förbättra prestandan. Innan dess planerade Intel för enkärniga processorer i 10 -12 GHz runt år 2010.

Visa signatur

Ryzen 7 3800X, Asus Prime X370 Pro, 32 GB LPX 3600, Gainward RTX 3060 Ti Ghost, 7 TB SSD + 4 TB HDD

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.

Det är inget antingen eller, utan en kombination av båda och det gäller inte bara AMD, Samsung's octa-core presterar sämre än den 4 kärniga Snapdragon de också använder. På konsumentsidan handlar det bara om e-penis.

Visa signatur

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

Permalänk
Medlem

Sitter själv och pluggar inför en tenta i "Advanced Computer Architecture" och reflekterade precis över just Amdahl's lag och tänkte ungefär samma sak.

Lite kul att det poppade upp här på sweclockers just nu, väldigt oväntat

Linus har definitvt en poäng, för spel och liknande program som de flesta svenssons använder (inklusive de flesta sweclockarna) är det väldigt svårt att komma upp i de där 90-95% av parallellisering som krävs för att dra nytta av fler kärnor. För videobehandling eller rendering av grafik är det dock mer lönsamt med fler kärnor vilket även står i artikeln.

Visa signatur

Desktop - Intel i7 6700K | Asus Z170-A | 32 GB Corsair DDR4 | RX 6700 XT w/ Arch Linux
Laptop - Thinkpad X1 Carbon Gen. 4 w/ Arch Linux
NAS - Ryzen Pro 3400G @ 35W | 64GB ECC | 32 TB HDD w/ TrueNAS Core

Permalänk
Medlem
Skrivet av anon159643:

Precis, där jag tycker att antalet kärnor på mobiler kraftigt har rusat iväg p.g.a. det säljer mer och låter bättre. På persondatorsidan så gör man flera saker samtidigt och då är det inte samma problem med att fördela resurserna.

T.ex. maskinen som jag leker med nu har (2st 2*12 kärniga Xeons moderkort med 64GB ram vardera) och det finns inga som helst problem att utnyttja kraften i för vem som helst. Det är bara skapa 10st virtuella maskiner och kör lite skoj på dem och ens behov av mer datorkraft finns.
En maskin kanske någon ska spela på, en annan ska man redigera filmer på, någon ska agera filserver etc..

Jag tror att folk allteftersom åren går bara kommer göra mer och mer samtidigt på sina maskiner. Så argumentet att man kanske har svårt att utnyttja 16kärnor i excel och liknande program, kan motargumenteras med att man kanske låter datorn arbeta med annat under tiden.

sant sant..

men också för att vara onT, jag blir lite skrattretande irriterad. Jag ställde mig, i yngre dagar, bakom att högre klock gentemot kärnor var att föredra. vilket jag tydligen har delvis rätt över! man blir lite störd. men men, nu kanske vi kommer få 10ghz Quad core i7:or

jag håller också med, man kan inte göra 100kärnor o tro att de ska paralliseras korrekt. vi är fortfarande i barnstadiet av datorer liksom.

Visa signatur

My rig 144hz 1440p 27" samsung g5, xfx 6950xt, 11900K, TM Peerless assassin,Gigabyte z590 UD, 32GB 3200MHz Vengeance, 1tb nv2, 2TB SSD 4TB HDD, corsair750 vengeance, Lancool 215.
GFs rig 144Hz samsung 1080p, Palit 3060Ti, 10400F,corsair H60 , B560 Auros, 16GB 3000MHz, 500GB NV1, 480GB A400, 2TB+750GB HDD, Seasonic 650 gold, Kolink Void Laptop Lenovo Legion 5, 2060, 4800H, 16GB, 1,5TB NVME HTPC 3060, 10400F, 16GB, 500GB NVME, 960GB A400 3rd PC 3060Ti, 3700X, Hyper 212, 16GB, 250GB SSD, 2TB HDD, 650w gold, P300A

Permalänk
Medlem
Skrivet av Rozzor:

Det handlar inte bara om att utvecklare ska optimera sina mjukvaror för fler kärnor. Vissa saker går helt enkelt inte att dela upp på flera kärnor så enkelt. Ta till exempel att packa upp en fil - det är enkelt att fördela på flera kärnor då varje kärna tar sin del av filen att packa upp, sedan sätts alla deltagande kärnors jobb ihop till den uppackade filen. Men i t.ex. ett spel, eller något annat jobb som innefattar ej förutsägbara beräkningar, så blir det svårare att fördela på flera kärnor. Tror jag.

Mjae, i alla fall grafik i spel går rätt bra att dela upp, det är därför man slänger in gigantiska mängder flyttalsvänliga kärnor i grafikkorten.

Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Problemet kommer när man behöver göra en beräkning i flera beroende steg, ta till exempel instruktionerna

a = 1
a + 2
a * 3

Ifall du delar upp a + 2 och a * 3 på två kärnor så kommer du få helt olika resultat om a + 2 eller a * 3 kommer först. Det går att ordna upp så att oberoende instruktioner delas upp, men det är ett förhållandevis svårt problem att lösa om det inte ska bli för resurstungt.

Visa signatur

CONGRADUATIONS! A WINNER IS YUO!

Permalänk
Medlem
Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Nej. (eller, jo, det går, men inte mer än personer kan göra, och vi har redan gått ungefär så långt som man kan redan, i början ökade IPC:n rätt snabbt, men numera går det långsamt, man kan se hur svårt det börjar bli om man jämför effektiv IPC mellan Intel och AMD, och ARM).

CPU:erna gör det alltså redan.

Amdahls lag är rätt dock en rätt hård begränsning som du inte kommer från bara för att du flyttar jobbet från utvecklaren till CPU:n.

Problemet kan visas på en micro-skala så här:

Låt oss säga att du ska räkna ut:

result = b+c;
result += d;
result += e;
result += f;
result += g;

Hur ska du parallellisera det?

Man kan ju skriva det som:
tmp1 = b+c;
tmp2 = d+e;
tmp3 = f+g;
result = tmp1+tmp2;
result += tmp3;

Så man använder tre kärnor för att räkna ut tmp1,2 och 3, och summerar sedan resultatet på en av dem
(det går inte att göra slutsummeringen snabbare här, eftersom även om man skriver om så att tmp4=tmp2+tmp3, res=tmp1+tmp4 så kan man inte räkna ut res förrens tmp4 är klar).

Notera att ganska exakt det här _redan görs_ av CPU:er.

Hur många kärnor man än har så kommer det alltså ta 3 tidsenheter, på en kärna tar det 5. Det är lite det som lagen visar, databeroenden (i det här fallet kan man inte räkna ut tmp1+tmp2 om inte tmp1 och tmp2 är uträknade) gör at det tar en viss minimal tid att utföra jobbet.

Det här gäller _alla_ algoritmer som inte är trivialt parallella, och är anledningen till att klient-datorer, där det oftast bara är några få program som är aktiva samtidigt, inte hjälps lika mycket av många CPU:er som servrar gör, där varje användare av servicen kan använda 1-3 cores rätt enkelt (på samma sätt som en användare vid en klientdator/telefon)

TL;DR:

Amhahl's lag gäller vem som än försöker parallellisera.

Permalänk
Medlem
Skrivet av anon42512:

Varför inte? Låter teoretiskt genomförbart tycker jag.

Beror på om problemet är lämpligt för parallella beräkningar. Tex 9st mammor föder inte ett barn på 1 månad.

Visa signatur

I like my women how i like my coffee... In a plastic cup.

Permalänk
Medlem
Skrivet av Tasorrog:

Kan man inte göra en processor jag arbetar som en enhet(som en kärna) men att själva processorn delar ut arbetet på flera kärnor av sig själv? då många utveklare är taskiga när det kommer till att optimera till flera kärnor.

Den måste göras på utvecklings stadie genom att använda språk som har sådan funktionalitet och är designad för det. Går inte riktigt på kompilerad data då det är bara en hög instruktioner. Visserligen så kanske man skulle kunna bygga en kompilator som försöker parrallelisera där det är möjligt men inte direkta vinster i det och något sådant hade varit svårt att utveckla i termer av bug benägenhet. Dem flesta uppgifterna går inte heller att parallelisera så lätt. Påstår däremot inte att många program har ens någorlunda bra parallelisering men många saker går inte riktigt att bara "parallelisera". Hela algoritmen måste designas med parallelisering i tanken.

Kanske skenade lite men kort svar, nej. Det måste göras i utvecklings stadie om du vill ha någon ordentlig prestanda vinst.

Det betyder inte att fler kärnor är "bara vackra" då de kan användas till andra program så som OS och GUI. Då avbelastas den tråden där ditt program körs och det kan köra snabbare även om det bara kan utnyttja en kärna.

Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.