Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


5.3.2. ВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ТРАНСПЬЮТЕРОВ В МАШИННОЙ ГРАФИКЕ

Машинная графика относится к области очень емких по вычислительным затратам задач. Основное время отводится на арифметические операции, поэтому даже самые изощренные алгоритмические и программистские приемы не позволяют добиваться потребительски приемлемых результатов при использовании однопроцессорных машин. Значительно более плодотворным, хотя и более дорогим по затратам на аппаратуру, оказался подход, основанный на распараллеливании вычислений. Техническими устройствами, реализующими этот механизм, являются матричные (векторные) процессоры [50] и транспьютеры [56,96,139].

Матричный процессор работает под управлением внешней однопроцессорной машины и по отношению к последней выступает как внешнее устройство. Матричный процессор очень быстро выполняет основные операции над матрицами большого размера: сложение, вычитание, умножение и т.д. Обычно этим функциям матричный процессор снабжен за счет комбинации старых или введения новых операций. Пользователь может расширить перечень с помощью комбинации старых или введения новых операций. При расчете изображения управляющая программа, реализованная на одном процессоре, в нужные моменты пересылает массив в матричный процессор, где в соответствии с командой выполняется та или иная операция. Результат пересылается по каналу связи в обратном направлении.

Значительно большими возможностями в параллельной обработке обладают траспьютерные системы, которые появились в среде вычислительной техники как ответ на требования практики к мультипроцессорным структурам [119]. Данные структуры должны обеспечивать коммуникацию между процессорами как через аппаратуру, так и через программное обеспечение, они должны осуществлять программирование на языке высокого уровня, включающем элементы коммуникации между процессорами, и, наконец, каждый отдельный процессор должен обладать высокой работоспособностью, чтобы сеть процессоров не была очень большой.

Этим требованиям практически полностью удовлетворяет микропроцессор, получивший название транспьютер. Каждый блок в транспьютере имеет четыре очень быстрых последовательных интерфейса, которые называются звеньями. Эти звенья можно использовать для коммуникации с соседними траспьютерами или в качестве интерфейсов на остальные части всей системы. Они легко программируются благодаря некоторым особенностям математического обеспечения. Разрядность выпускаемых фирмой INMOS транспьютеров составляет 32 бита. Транспьютеры Т800 и Т9000 имеют математический сопроцессор, что наряду с оригинальной архитектурой обеспечивает значительно большее быстродействие даже одного такого микропроцессора, чем у известного микропроцессора Pentium. При параллельном включении транспьютеров, судя по проспектам, удается достичь быстродействия 100 млн.оп/.с (восемь траспьютеров). Вычислительная мощность прямо пропорциональна числу используемых транспьютеров.

Распределение памяти между транспьютерами может быть организовано строками (столбцами) или в шахматном порядке. Строковое распределение означает, что первый транспьютер обрабатывает строки , второй –  и т.д., где  – число транспьютеров в системе. При шахматном распределении каждый транспьютер "отвечает" за свою клетку на шахматном поле экрана. Строковое (столбцовое) распределение позволяет более эффективно использовать ресурс системы, так как при локальных по полю изображения вычислительных перегрузках все транспьютеры используются равномерно.

Транспьютер может быть использован в качестве отдельного самостоятельного устройства, обеспечивающего производительность около 10 млн.оп./с [56]; при этом для программирования используется широкий набор стандартных высокоуровневых языков, так как архитектура транспьютера ориентирована на эффективное применение компиляции. Для полной реализации возможности объединения транспьютеров в сети матрицы целесообразно применять специализированный язык Оккам. Он специально разработан для реализации параллельной обработки, в ходе которой множество частей системы функционируют по отдельности и взаимодействуют друг с другом.

Оккам позволяет программисту представлять программу в виде параллельных процессоров, взаимодействующих друг с другом посредством пересылки сообщений по каналам обмена информацией. Ввод и вывод синхронизированы: когда процессы как ввода, так и вывода в одном и том же канале готовы к коммуникации, выходное значение переписывается из процесса вывода в процесс ввода без явного использования буфера, после чего оба процесса продолжают независимо выполняться до следующей коммуникации (если она последует).

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

Использование параллельных процессоров позволяет добиваться практически приемлемых результатов по быстродействию в задачах машинной графики. Изображение  элементов для объекта, состоящего из 500 примитивов (около 2000 поверхностей, из них половина – второго порядка, половина – первого порядка) с тенями, тонами и зеркальностью, реализуется на сети из восьми транспьютеров Т9000 за 10... 15 с. Изображения полигональных полей без теней выполняются за сотые доли секунд, а полигональных сеток – в реальном масштабе времени.

 



<< ПредыдущаяОглавлениеСледующая >>