Векторно-конвейерная ЭВМ

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

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

Метки: ,

Связанные записи