Model programowania

Model programowania to model wykonania połączony z interfejsem API lub określonym wzorcem kodu. W tym stylu w rzeczywistości istnieją dwa modele wykonania: model wykonania podstawowego języka programowania i model wykonania modelu programowania. Przykładem jest Spark , gdzie Java jest językiem podstawowym, a Spark jest modelem programowania. Wykonanie może opierać się na czymś, co wygląda na biblioteki . Inne przykłady obejmują wątków POSIX i bibliotekę Hadoop MapReduce . W obu przypadkach model wykonania modelu programowania różni się od modelu języka bazowego, w którym napisany jest kod. Na przykład język programowania C nie ma żadnego zachowania w swoim modelu wykonania dotyczącym wejścia/wyjścia lub zachowania wątku. Ale takie zachowanie można wywołać ze składni C, wykonując coś, co wygląda na wywołanie normalnej biblioteki C.

Tym, co odróżnia model programowania od zwykłej biblioteki, jest to, że zachowania wywołania nie można zrozumieć w kategoriach języka, w którym napisany jest program. Na przykład zachowania wywołań biblioteki wątków POSIX nie można zrozumieć w kategoriach języka C język. Powodem jest to, że wywołanie wywołuje model wykonania, który różni się od modelu wykonania języka. To wywołanie zewnętrznego modelu wykonawczego jest cechą charakterystyczną modelu programowania , w przeciwieństwie do języka programowania .

W obliczeniach równoległych model wykonawczy często musi udostępniać funkcje sprzętu, aby osiągnąć wysoką wydajność. Duża różnorodność sprzętu równoległego powoduje równoczesną potrzebę stosowania podobnie dużej liczby modeli wykonania równoległego. Tworzenie nowego języka dla każdego modelu wykonania jest niepraktyczne, dlatego powszechną praktyką jest wywoływanie zachowań modelu wykonania równoległego poprzez API. Zatem większość wysiłku programistycznego odbywa się za pomocą modeli programowania równoległego, a nie języków równoległych. Niestety, terminologia dotycząca takich modeli programowania zwykle koncentruje się na szczegółach sprzętu, który zainspirował model wykonania, i w tym wyspiarskim świecie kształtuje się błędne przekonanie, że model programowania ma zastosowanie tylko w przypadku, gdy model wykonania jest ściśle dopasowany do funkcje sprzętowe.