XMTC

XMTC (dla jawnej wielowątkowości C ) to język programowania równoległego z pamięcią współdzieloną. Jest to rozszerzenie języka programowania C , które dąży do umożliwienia łatwego programowania podobnego do PRAM w oparciu o jawny paradygmat wielowątkowości . Został opracowany w ramach wizji XMT PRAM-On-Chip przez zespół badawczy z University of Maryland, College Park , kierowany przez dr Uzi Vishkina .

Filozofia XMTC i całego projektu XMT polega na tym, że programowanie równoległe jest trudnym zadaniem intelektualnym, a podejście polegające na zbudowaniu najpierw systemu sprzętowego, a następnie wymyśleniu, jak go zaprogramować, nie odniosło dużego sukcesu. Z tego powodu solidna teoria algorytmiczna i dość łatwa abstrakcja sprzętu powinny być specyfikacjami, które wskazują, jak zbudować nową architekturę równoległą i język programowania. W przypadku algorytmów równoległych teoria algorytmiczna, która ma najobszerniejszą literaturę, nazywa się PRAM ( równoległa maszyna o swobodnym dostępie). ). To nie przypadek, ponieważ PRAM jest naturalnym sposobem myślenia algorytmicznego równolegle. Na początku lat 90. model PRAM uznano za nierealny, ponieważ abstrakcja sprzętowa, na której się opierał, nie mogła zostać zaimplementowana (ze względu na niską przepustowość między chipami i duże opóźnienia). Teraz, gdy wiele procesorów można umieścić na jednym chipie, te ograniczenia już nie występują. Architektura XMT wykorzystuje ten nadmiar nieruchomości na chipie do implementacji abstrakcji PRAM.

Język XMTC jest skromnym rozszerzeniem języka C i jest w toku. Podstawowym założeniem jest to, że programista jest odpowiedzialny za ujawnienie wszystkich dostępnych równoległości. Chociaż brzmi to prosto i wiele wcześniejszych podejść podziela ten ideał, w praktyce, jeśli programista zdefiniuje zbyt dużą liczbę równoległych zadań, a zadania będą krótkie, program będzie działał bardzo słabo. Sposobem na obejście tego jest łączenie krótkich zadań równoległych w dłuższe, za co zwykle odpowiada programista. W XMTC możliwe jest, aby język robił to automatycznie, odciążając programistę.

Wersja oprogramowania XMTC: programowanie podobne do PRAM umożliwia eksperymentowanie z programowaniem XMTC na standardowych komputerach.