Модель программирования относится к стилю программирования, в котором выполнение вызывается путем выполнения того, что выглядит как вызовы библиотеки . Примеры включают библиотеку POSIX Threads и Hadoop MapReduce . [1] В обоих случаях модель выполнения отличается от модели базового языка, на котором написан код. Например, в языке программирования C нет модели выполнения для ввода / вывода или поведения потоков. Но такое поведение можно вызвать из синтаксиса C, сделав то, что кажется вызовом нормальной библиотеки C.
Модель программирования отличается от обычной библиотеки тем, что поведение вызова не может быть понято в терминах языка, на котором написана программа. Например, поведение вызовов к библиотеке потоков POSIX не может быть понято в терминах языка C язык. Причина в том, что вызов вызывает модель выполнения, отличную от модели выполнения языка. Этот вызов модели внешнего исполнения является определяющей характеристикой модели программирования , в отличие от языка программирования .
При параллельных вычислениях модель выполнения часто должна открывать возможности оборудования для достижения высокой производительности. Большое количество вариаций в параллельном оборудовании вызывает одновременную потребность в таком же большом количестве моделей параллельного выполнения. Непрактично создавать новый язык для каждой модели выполнения, поэтому обычной практикой является обращение к поведению модели параллельного выполнения через API. Таким образом, большая часть усилий по программированию выполняется с помощью моделей параллельного программирования, а не параллельных языков. К сожалению, терминология таких моделей программирования имеет тенденцию фокусироваться на деталях оборудования, которое вдохновило модель выполнения, и в этом замкнутом мире формируется ошибочное убеждение, что модель программирования предназначена только для случая, когда модель выполнения близко соответствует модели выполнения. аппаратные особенности. [2] [3]
Рекомендации
- ^ IBM. «Что такое MapReduce» . Проверено 19 апреля 2020 .
- ^ LLNL Национальные лаборатории Лоуренса Ливермора. «Модели программирования» (PDF) .
- ^ Барселонский суперкомпьютерный центр. "Модель суперскалярного программирования COMP" .