Kuinka usein itse oikeasti käytät esim. noita softia mitä noissa moniydintesteissä ajettiin?
Omassa pöytäkoneessani on 8 ydintä (ryzen 1700). Niistä yli neljä on ollut viimeksi yhtä aikaa rasituksessa ehkä yli kuukausi sitten.
Sen sijaan päivittäin kone on pari tuntia käytössä, jossa yhtä ydintä rasitetaan täysillä.
Ja kaikessa sellaisessakin, missä sitä yhtä ydintä ei rasiteta täysillä, se parempi yhden ytimen suorituskyky antaa esim. inasen paremman vasteajan. Esim siinä, kuinka hyvin webbisivujen javascrtipt-koodit ajautuvat tai kuinka noepasti webbiselain muuten saa sivun rendattua.
Ainakin Linuxilla aika moni ohjelma jo hyödyntää useampaa säiettä.
Pari esimerkkiä:
- kuvakatselimissa yhdellä ytimellä kiihdytetään ensin libjpeg-turbolla ja rinnakkain säiepoolilla puretaan esim. albumin kaikki kuvat (käytän omaa katselinta tähän ja speedup on jmh:n mukaan noin ~16 vektorisoinnilla + 16-32 säikeellä, joka on optimaalisin säieluku tällä CPU:lla)
-
Gimpissä on OpenCL-filttereitä, jotka voivat olla rinnakkaisia
- En ihan varmasti muista, mutta minusta hdr/raw-ohjelmat käyttävät useampaa säiettä tai pitäisi olla triviaali tehtäväjonoilla
-
selaimessa (esim. Firefox) eri sivut ajetaan eri prosesseissa. Lisäksi webworkereilla voi olla oma säie jne. Grafiikan pipeline on säikeistetty
-
Mesa-ohjelmat ylipäänsä käyttävät OpenGL-pipelinessä säikeitä ajureista ja ohjelmasta riippuen
- Videoneuvottelut kuten zoom käyttävät minulla ainakin kaikkia läppärin ytimiä
- Ohjelmien kääntäminen (make -j) ja IDE plugineineen käyttää useaa corea. Esim. inotifyllä havaitaan muutos, IDE voi suoraan triggeröidä build-työkalun
-
Esim. Gradle luo monta rinnakkaista työjonoa. Gradle jopa jää muistiin joten prosessiaika menee aika tehokkaasti vain kääntelyyn
- R:n tyylisiin ympäristöihin on tuotu Fortran-tason vektorisointia ja
säikeitä
-
LibreOfficeen on kehitetty esim. taulukkolaskentaan rinnakkaisuutta (ja en näe miksei esim. oikoluku tai indeksointi yms. voisi toimia taustalla eri säikeessä)
-
video- ja ääniohjelmat lienevät itsestäänselvyys. Esim. ei-lineaariset video-editorit, jopa cd:n ja dvd:n
rippaussoftat
Lisäksi tehokäyttäjillä on usein komentorivillä wrapperit lamen, flacin, imagemagicin, optipng:n ja vastaavien ympärillä gnu parallelilla, joten näihin saa karkeaa tehtävärinnakkaisuutta, joka kyllä saa ainakin oman 1700x:n hörppäämään 120 ampeeria virtaa pitkiäkin aikoja.
Omassa työkäytössä isoin rasite on esim. distrojen paketinhallinnat ja linkkeri ja varsinkin lto, jotka eivät osaa rinnakkaistua. Muuten valtaosa siitä softasta, jolle tehokkuus ylipäänsä on oleellista, on rinnakkaistettu. Johonkin /bin/ls ja gnu nano -tasoisiin ohjelmiin vähemmän tarvii niitä säikeitä.
edit: unohtui vielä, että läpinäkyvä kokolevyn kryptaus ja pakkaus myös syövät hiukan tehoja, mutta kerneli jakaa tätä taustalla parhaansa mukaan. Varsinki nvme-levyillä nopeudet ovat isoja, joten kryptauskin syö hiukan tehoja.