Модель программирования - Programming model

А модель программирования относится к стилю программирования, при котором исполнение вызывается тем, что кажется библиотека звонки. Примеры включают Потоки POSIX библиотека и Hadoop Уменьшение карты.[1] В обоих случаях модель исполнения отличается от основного языка, на котором написан код. Например, Язык программирования C не имеет модели выполнения для ввода / вывода или поведения потока. Но такое поведение можно вызвать из синтаксиса C, сделав то, что кажется вызовом обычной библиотеки C.

Модель программирования отличает от обычной библиотеки то, что поведение вызова нельзя понять с точки зрения языка, на котором написана программа. Например, поведение вызовов к библиотеке потоков POSIX нельзя понять с точки зрения языка C язык. Причина в том, что вызов вызывает модель выполнения, отличную от модели выполнения языка. Этот вызов модели внешнего исполнения является определяющей характеристикой программирования. модель, в отличие от программирования язык.

В параллельные вычисления, модель выполнения часто должна открывать возможности оборудования для достижения высокой производительности. Большое количество вариаций в параллельном оборудовании вызывает одновременную потребность в столь же большом количестве моделей параллельного выполнения. Нецелесообразно создавать новый язык для каждой модели выполнения, поэтому обычной практикой является вызов поведения модели параллельного выполнения через API. Таким образом, большая часть усилий по программированию выполняется с помощью моделей параллельного программирования, а не параллельных языков. К сожалению, терминология таких моделей программирования имеет тенденцию фокусироваться на деталях аппаратного обеспечения, которое вдохновило модель выполнения, и в этом замкнутом мире формируется ошибочное убеждение, что модель программирования предназначена только для случая, когда модель выполнения близко соответствует модели выполнения. аппаратные особенности.[2][3]

Рекомендации

  1. ^ IBM. "Что такое MapReduce". Получено 2020-04-19.
  2. ^ LLNL Национальная лаборатория Лоуренса Ливермора. «Модели программирования» (PDF).
  3. ^ Барселонский суперкомпьютерный центр. "Модель суперскалярного программирования COMP".