OgnjenIvanovic/Prevod2

Model programiranja je model izvršavanja povezan sa API-jem ili određenim obrascem koda. U ovom stilu u igri su zapravo dva modela izvršenja: model izvršenja osnovnog programskog jezika i model izvršenja programskog modela. Primer je Spark gde je Java osnovni jezik, a Spark je programski model. Izvršenje može biti zasnovano na onome što izgleda kao poziv biblioteke. Drugi primeri uključuju biblioteku POSIX Threads i Hadoop-ov MapReduce.[1] U oba slučaja, model izvršenja programskog modela se razlikuje od onog u osnovnom jeziku na kojem je kod napisan. Na primer, programski jezik C nema ulogu u svom modelu izvršavanja za unos/izlaz niti ulogu niti. Ali takva funkcija se može pozvati iz C sintakse, upućivanjem onoga što izgleda kao poziv normalnoj C biblioteci.

Ono što razlikuje model programiranja od normalne biblioteke je to što se funkcija poziva ne može razumeti u smislu jezika na kojem je program napisan. Na primer, funkcija poziva u POSIX biblioteku niti ne može se razumeti u smislu C jezika. Razlog je taj što poziv poziva izvršni model koji se razlikuje od modela izvršavanja jezika. Ovo pozivanje modela eksternog izvršavanja je definišuća karakteristika programskog modela, za razliku od programskog jezika.

U paralelnom računarstvu, model izvršenja često mora da izloži karakteristike hardvera da bi postigao visoke performanse. Velika količina varijacija u paralelnom hardveru uzrokuje istovremenu potrebu za slično velikim brojem modela paralelnog izvršavanja. Nepraktično je praviti novi jezik za svaki model izvršenja, stoga je uobičajena praksa pozivati se na funkcije modela paralelnog izvršavanja preko API-ja. Dakle, većina napora u programiranju se radi preko modela paralelnog programiranja, a ne paralelnih jezika. Terminologija oko takvih modela programiranja teži da se fokusira na detalje hardvera koji je inspirisao model izvršenja, a u tom izolovanom svetu formira se pogrešno uverenje da je model programiranja samo za slučaj kada je model izvršenja blisko usklađen sa karakteristikama hardvera. [2]

Reference

uredi
  1. IBM. „What is MapReduce“. 
  2. Barcelona Supercomputing Center. „COMP Superscalar Programming Model“.