Кіріспе

Компьютерлік ғылымда Линда – параллель есептеу орталарында байланысты қамтамасыз ететін үйлестіру моделі. Дэвид Гелернтер жасаған бұл модель, Fortran немесе C сияқты толыққанды есептеу тілімен бірге қолданылады, онда Линданың міндеті – "есептеу процестерін құру және олардың арасындағы байланысты қолдау".

Тарих

Дэвид Гелернтер "Линданың" алғашқы нұсқасын 1979 жылы Ph.D. кандидаты ретінде жазды, оған порнографиялық фильм "Deep Throat"-та түскен Линда Лавлейс есімін берді. Сол кезде параллель өңдеу үшін басты тіл – АҚШ Қорғаныс министрлігі жасаған және Гелернтер "әдемі емес әрі ауыр" деп санаған Ада Лавлейс құрметіне аталған Ада тілі болатын. Ол 1986 жылы, Гелернтер Йельдегі әріптесі Николас Карьеро және AT&T Bell Laboratories-тегі Судир Ахужамен бірге IEEE журналында "Линда және достары" деген мақаласын жариялағанда кеңінен таралды. 1990 жылдардың басында Линда корпорациялардың үлкен деректерді тиімді талдауына кеңінен қолданылды, соның ішінде Уолл-стрит брокерлік фирмалары, сондай-ақ AT&T, Boeing және United Technologies компаниялары. Линдаға негізделген арнайы параллель есептеу қолданбаларын жасаумен айналысатын компаниялар да болды, олардың ішіндегі ең ірісі – Нью-Хейвендегі бірнеше Йель компьютер ғалымдары құрған Scientific Computing Associates компаниясы (Гелернтер кейде оларға консультант ретінде көмектесетін, бірақ онда жұмыс істемеді).

Салыстыру

Басқа параллель өңдеу модельдерімен салыстырғанда, Линда процестерді үйлестіруді есептеуден бөлек қызмет ретінде қарастыруда көбірек ортогоналды және бірнеше деңгейдегі бір мезгілдестікті – бір процессорлық, көп жіпті мультипроцессорлық немесе желілік – бір модельге біріктіруге қабілетті. Оның ортогоналдылығы әртүрлі тілдер мен платформаларда есептейтін процестерге бірдей бастауыш элементтерді пайдалану арқылы өзара әрекеттесуге мүмкіндік береді. Оның жалпылығы көп жіпті Линда жүйесін өзгеріссіз бірнеше компьютерге таратуға мүмкіндік береді. Хабар алмасу модельдері бір-біріне белгілі бір рет немесе хаттама бойынша хабарлар жіберетін тығыз байланысты процестерді қажет ететін болса, Линда процестері басқа процестерден бөлек, тек тупл кеңістігі арқылы қарым-қатынас жасайды; процеске тұтынылатын немесе жасалатын тупл түрлерінен басқа, басқа процестер туралы түсінік қажет емес. Мультипроцессорлық қауымдастықтан Линданы сынға алу көбінесе Линда жүйелеріндегі операциялардың жылдамдығының Хабар алмасу интерфейсі (MPI) жүйелерімен салыстырғанда төмендеуіне бағытталған. Бұл талаптар негізсіз болмаса да, маңызды мәселелер класы үшін көбінесе жоққа шығарылды. Линда моделіне қатысты егжей-тегжейлі сын-пікірлерді Стивен Эрикссон Зениттің «Процесс өзара әрекеттесу модельдері» кітабынан табуға болады. Зерттеушілер (ашық таратылған) компьютерлік жүйелер арасындағы байланыстың әртүрлі түрлерін және үйлестіруді қолдау үшін, сондай-ақ модельдің әртүрлі қолданылуынан туындайтын нақты мәселелерді шешу үшін қосымша бастауыш элементтер ұсынды. Зерттеушілер сонымен қатар осы модель үшін виртуалды ортақ жадты іске асырудың әртүрлі тәсілдерін сынап көрді. Осы зерттеушілердің көпшілігі түпнұсқа Линда моделіне үлкен өзгерістер енгізіп, Линдаға ұқсас жүйелер деп аталатын жүйелер отбасын жасады және оларды ортогоналды технология ретінде іске асырды (түпнұсқа нұсқадан өзгеше). Мысалы, Стивен Эрикссон Зенит жасаған Ease тілін қарастыруға болады. Линданың тәсілі ағынға негізделген бағдарламалаумен де салыстырылды.

Линда-калькулус

Линда есебі жоғарыда сипатталған модельдің формалдануы болып табылады, айырмашылығы – төмендегісінде ол шығару (out) және бағалау (eval) операцияларын біріктіреді.

Семантика

Түплдік кеңістік процестердің көп жиынтығы ретінде ұсынылады. Мұндағы – көп жиынтық, – бір элементтен тұратын көп жиынтық, ал – көп жиынтықты біріктіру операциясы. Семантика, көп жиынтық үстіндегі редукция қатынасы ретінде келесідей анықталады. Ескеріңіз, (кіріс) түплдік кеңістіктен түплді тұтынып алады, ал (оқу) оны тек қана оқиды. Соның нәтижесінде пайда болатын операциялық семантика синхронды болып табылады.