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.
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.