Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

XMTC (для явной многопоточности C ) - это язык параллельного программирования с разделяемой памятью. Это расширение языка программирования C, которое стремится обеспечить простое программирование в стиле PRAM, основанное на явной парадигме многопоточности . Он разработан в рамках концепции XMT PRAM-On-Chip исследовательской группой из Университета Мэриленда в Колледж-Парке под руководством доктора Узи Вишкина .

Философия XMTC и всего проекта XMT заключается в том, что параллельное программирование - это сложная интеллектуальная задача, и подход сначала построить аппаратную систему, а затем выяснить, как их программировать, не имел большого успеха. По этой причине надежная алгоритмическая теория и достаточно простая аппаратная абстракция должны быть спецификациями, которые помогут создать новую параллельную архитектуру и язык программирования. Для параллельных алгоритмов алгоритмическая теория, имеющая самый большой объем литературы, называется PRAM ( параллельная машина с произвольным доступом).). Это не совпадение, поскольку PRAM - это естественный способ параллельного алгоритмического мышления. В начале 1990-х годов модель PRAM считалась нереалистичной, поскольку аппаратная абстракция, на которой она была основана, не могла быть реализована (из-за низкой межчиповой полосы пропускания и высокой задержки). Теперь, когда на одном кристалле можно разместить несколько процессоров, этих ограничений больше нет. Архитектура XMT использует преимущества этого избыточного внутреннего пространства на кристалле для реализации абстракции PRAM.

Язык XMTC - это скромное расширение языка C, работа над которым еще продолжается. Основная предпосылка заключается в том, что программист несет ответственность за раскрытие всего доступного параллелизма. Хотя это звучит просто, и многие предыдущие подходы разделяют этот идеал, на практике, если программист определяет слишком большое количество параллельных задач, а задачи короткие, программа будет работать очень плохо. Чтобы решить эту проблему, можно объединить короткие параллельные задачи в более длинные, что обычно является обязанностью программиста. В XMTC язык может делать это автоматически, снимая нагрузку с программиста.

Версия программного обеспечения XMTC: программирование в стиле PRAM позволяет экспериментировать с программированием XMTC на стандартных компьютерах.