Mikä on Sun-Ni-laki?

Sun-Ni-laki on lähestymistapa, jota käytetään rinnakkaiskäsittelyssä ja joka pyrkii parantamaan suorituskykyä. Sitä kutsutaan myös muistiin rajoitetuksi nopeudeksi, ja sitä ehdottivat professorit Xian-He Sun ja Lionel M. Ni. Tämä laki skaalaa ongelman kokoa ja yrittää löytää ratkaisun, jota rajoittaa vain käytettävissä oleva muisti. Se on yleistys kahdesta muusta rinnakkaislaskennassa käytetystä lähestymistavasta, joita kutsutaan Amdahlin ja Gustafsonin laiksi.

Yksi rinnakkaislaskennan haasteista on selvittää, miten järjestelmän suorituskyky paranee, kun sitä suurennetaan. Koska tätä voi olla vaikea mitata, yksi tunnetuimmista skaalautuvuusmittareista on nopeuttaminen. Speedup liittyy tiettyjen prosessorien rinnakkaisten ohjelmien suorittamiseen ja suoritusaikaan, joka kuluu nopeimman peräkkäisen ohjelman ratkaisemiseen. Yksi nopeutustapa on pitää ongelman koko vakiona, jolloin ongelman parissa työskentelevien prosessorien määrää voidaan lisätä. Tätä kutsutaan Amdahlin laiksi ja sitä kutsutaan kiinteän koon nopeutukseksi.

Amadhlin laki yrittää siten lyhentää suoritusaikaa käyttämällä useampaa rinnakkaista prosessoria ja vahvistaa laskennallisen työmäärän vakiona. Se yrittää pohjimmiltaan ratkaista ongelman yhä lyhyemmässä ajassa. Sitä vastoin Gustafsonin laki, joka tunnetaan myös nimellä kiinteä nopeus, yrittää saada tuloksen tietyn ajan kuluessa ja suurentaa ongelman kokoa suorittamalla lisää toimintoja tarkan ratkaisun saamiseksi. Tätä sovelletaan ongelmiin, joissa on aikarajoitus, mutta ei ole välttämätöntä ratkaista niitä mahdollisimman lyhyessä ajassa.

Muistirajoitettu nopeusmenetelmä tai Sun-Ni-laki koskee muistin kokoa ja sen vaikutusta suorituskykyyn. Käytettävissä olevan muistin määrä vaikuttaa ongelman kokoon, johon voidaan puuttua. Rajoitettu fyysinen muisti tarkoittaa, että enemmän aikaa käytetään ratkaisujen selvittämiseen rinnakkaislaskennan arkkitehtuurin ongelman ratkaisemiseksi. Sun-Ni-lain lähestymistapa on, että jos kiinteän ajan nopeuden määrittämä aikaraja täyttyy ja muistitilaa on riittävästi, ongelma on skaalattava niin, että kaikki käytettävissä oleva muisti käytetään riittävästi.

Tätä Sun-Ni-laki tekee, ja kaava ottaa huomioon muistin koon ja yhdistää sen suorituskykyyn. Jokaisella rinnakkaislaskennan arkkitehtuurin prosessorilla on kiinteä muisti, ja kaava yhdistää ongelman koon käytettävissä olevaan muistikapasiteettiin. Sun-Ni-laissa säädetty muistirajoitettu nopeus on pohjimmiltaan yleistys sekä kiinteäaikaisille että kiinteäkokoisille nopeuksille. Kun otetaan huomioon, että muistin kokonaiskoko kasvaa prosessorien määrän kasvaessa, Sun-Ni-laki yrittää hyödyntää tätä muistitilaa tehokkaammin.