ВВЕДЕНИЕ


Концепция параллелизма давно привлекала внимание специалистов своими потенциальными возможностями повышения производительности и надежности вычислительных систем. В СССР с 60-х годов выполнялись теоретические, экспериментальные и промышленные разработки в этом направлении. В [1] было представлено теоретическое обоснование построения массово-параллельных систем на базе больших интегральных схем. Именно с подобными системами связывается в настоящее время перспектива дальнейшего наращивания производительности [2,3]. Исторически первой промышленной разработкой, ориентированной на массово-параллельные системы стали транспьютеры [4].

Транспьютер – это микрокомпьютер с собственной внутренней памятью и линками (каналами) для соединения с другими транспьютерами. Термин «транспьютер», произошедший в результате объединения слов «транзистор» и «компьютер», отражает основную область его применения – массово-параллельные вычислительные системы, в которых он играет роль базового вычислительного элемента.

Некоторые специалисты понимают термин «транспьютер» как название конкретного продукта фирмы INMOS (ныне STMicroelectronics), другие трактуют его как обобщенное наименование микропроцессоров со встроенными межпроцессорными интерфейсами. Используется также термин «транспьютероподобный микропроцессор», чтобы, с одной стороны, подчеркнуть, что речь идет не о продукте фирмы INMOS, а, с другой стороны, указать, что микропроцессор имеет встроенные линки для образования параллельных систем. Вполне возможно, что стремительное развитие микроэлектроники не позволит термину «транспьютер» устояться, и он будет поглощен более общим – микропроцессор, так как отличительный признак транспьютера – встроенные межпроцессорные интерфейсы – появятся в том или ином виде у всех микропроцессоров.

Транспьютеры относятся к классу RISC-процессоров. Система команд транспьютеров ориентирована на поддержку языка высокого уровня ОККАМ (OCCAM). Это язык параллельного программирования, позволяющий задавать параллельные вычисления в соответствии с моделью взаимодействующих последовательных процессов. Программа на языке ОККАМ представляет собой совокупность асинхронных совместно протекающих взаимодействующих процессов, выполняющихся асинхронно и параллельно. Под процессом понимается ход исполнения программного кода некоторой программы или фрагмента программы. Взаимодействие между процессами реализуется путем обмена данными по принципу «рандеву». В транспьютере данная модель параллельных вычислений поддерживается благодаря наличию аппаратно-реализованного диспетчера, обеспечивающего выполнение параллельных процессов в режиме квантования времени. Причем количество одновременно выполняемых процессов не ограничено.

Мультипроцессорная система на базе транспьютеров представляет собой совокупность транспьютеров, соединенных по линиям связи (непосредственно или через коммутатор).

Существенно упростить программирование мультипроцессорных вычислительных систем на базе транспьютеров позволяет тот факт, что одинаковая модель параллельных вычислений поддерживается как внутри отдельного транспьютера, так и в рамках мультитранспьютерной сети в целом. Благодаря этому программа, разрабатываемая для мультипроцессорной системы, может быть создана и отлажена на одном единственном процессоре, а затем перенесена на сеть транспьютеров без существенных преобразований. Исключение составляет ограничение числа каналов связи процесса с процессами, протекающими на другом транспьютере, хотя это ограничение уже устранено в новых видах транспьютеров, таких как, например, Т-9000.

Высокая степень «функциональной самостоятельности» транспьютера, простота интеграции и наличие периферийных устройств позволяют в короткие сроки создавать системы на их основе. Коммуникационные каналы транспьютера могут осуществлять обмен данными одновременно с вычислениями, практически не снижая производительности процессора. Благодаря этому качеству транспьютеров системы на их основе обладают хорошей масштабируемостью и высоким значением показателя эффективности – производительность/стоимость.