Jos haluaa hyödyntää sovelluksessa tuplaydinprosessoria, niin täytyykö se huomioida jo sovellusta tehtäessä vai osaako ne automaattisesti käyttää kaikkia koneen tehoja?
Täytyy huomioida. Riippuu paljon sovelluksesta ja käytetystä ohjelmointikielestä, miten helposti useampia ytimiä voi hyödyntää.
Despite decades of work by compiler researchers, automatic parallelization has had only limited success. (Wikipedia)
Miten tämä oikein toimii vaikka Pythonin kohdalla?
Lähdepä liikkeelle hakusanalla threading.
Eri ytimet toimivat kuten kaksi erillistä prosessoria. Kumpikin voi suorittaa ohjelmaa yhdestä kohti kerrallaan, eli ohjelmassa täytyy olla osia, jotka voidaan suorittaa toisistaan riippumatta samaan aikaan. Käytännössä uuden laskentasäikeen aloittaminen on niin raskasta, että yleensä kannattaa erotella vain selkeitä kokonaisuuksia. Pelien tapauksessa yksi helpoimmista erotettavista toiminnoista on musiikin ja äänten käsittely: yhdessä säikeessä toimii itse peli, josta käsin ilmoitetaan aina äänisäikeelle, mikä ääni pitäisi soittaa, ja äänisäie puolestaan hoitaa miksauksen ynnä muun ääniasian.
Pythonissa rinnakkaisajoa hankaloittaa Global Interpreter Lock. Se on CPythonin (yleisin käytössä oleva python-implementointi) ominaisuus, joka mahdollistaa vain yhden säikeen suorittamisen kerrallaan python-virtuaalikoneessa. GIL helpottaa ja nopeuttaa eräitä asioita, mutta hintana on todellisen rinnakkaisajon puute saman prosessin säikeiden kesken. Mikään ei tietenkään estä ajamasta useampaa python-prosessia.
http://www.parallelpython.com/
Tuollainen kirjasto tuli vastaan. Tuon avulla voi ilmeisesti yksinkertaisesti hyödyntää python-ohjelmissa useampaa suoritinta tai ydintä. Kirjasto automaattisesti luo useamman prosessin ja hoitaa niiden välisen kommunikaation. Omaa kokemusta tuosta ei ole.
säikeitä voi toki käyttää myös yhdellä prosessorilla, mutta silloin käytössä on lähinnä multitasking jolloin prossu vaihtelee eri prosessien välillä. säikeitä käyttäessä on sitten vähän tarkkuutta käytettävä ja huomioitava Race Conditionit ja Deadlockit.
Aihe on jo aika vanha, joten et voi enää vastata siihen.