XMTC - XMTC

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

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

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

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