ХМТС
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2016 г. ) |
Тема этой статьи Википедии может не соответствовать общему правилу по известности . ( февраль 2016 г. ) |
XMTC (для явной многопоточности C ) — это язык параллельного программирования с общей памятью. Это расширение языка программирования C , которое стремится обеспечить простое программирование, подобное PRAM, на основе явной парадигмы многопоточности . Он разработан в рамках концепции XMT PRAM-On-Chip исследовательской группой Университета Мэриленда в Колледж-Парке под руководством доктора Узи Вишкина .
Философия XMTC и всего проекта XMT заключается в том, что параллельное программирование — это сложная интеллектуальная задача, и подход, заключающийся в том, что сначала создается аппаратная система, а затем выясняется, как ее программировать, не имел большого успеха. По этой причине надежная алгоритмическая теория и достаточно простая аппаратная абстракция должны стать спецификациями, которые помогут построить новую параллельную архитектуру и язык программирования. Алгоритмическая теория параллельных алгоритмов, по которой имеется самый большой объем литературы, называется PRAM ( параллельная машина с произвольным доступом ). Это не совпадение, поскольку PRAM — это естественный способ параллельного алгоритмического мышления. В начале 1990-х годов модель PRAM считалась нереалистичной, поскольку аппаратная абстракция, на которой она была основана, не могла быть реализована (из-за низкой пропускной способности между кристаллами и высокой задержки). Теперь, когда на одном чипе можно разместить несколько процессоров, этих ограничений больше нет. Архитектура XMT использует эту избыточную внутреннюю память для реализации абстракции PRAM.
Язык XMTC является скромным расширением C и находится в стадии разработки. Основная предпосылка заключается в том, что программист несет ответственность за раскрытие всего доступного параллелизма. Хотя это звучит просто и многие более ранние подходы разделяют этот идеал, на практике, если программист определяет слишком большое количество параллельных задач, а задачи короткие, программа будет работать очень плохо. Чтобы обойти эту проблему, необходимо объединить короткие параллельные задачи в более длинные, за что обычно отвечает программист. В XMTC язык может делать это автоматически, снимая нагрузку с программиста.
Выпуск программного обеспечения XMTC: PRAM-подобное программирование позволяет экспериментировать с программированием XMTC на стандартных компьютерах.