Предпосылки, вызовы, модели мира современных высокопроизводительных вычислений
Возможные пути обхода проблем
Можно допустить существование следующих альтернативных схем. Одна, фон-неймановская, предполагает, что вычислительным процессом управляет поток команд, а данные, в основном статичные, выбираются из каких-то систем хранения или из памяти. Вторая схема основывается на том, что процессом вычислений управляют входные потоки данных, которые на входе системы попадают в подготовленную вычислительную инфраструктуру, обладающую естественным параллелизмом. С точки зрения реализации первая схема гораздо проще, кроме того, она универсальна, программы компилируются и записываются в память, а вторая требует специальной сборки нужной для определенной задачи аппаратной конфигурации. Вторая схема старше; пример тому - табуляторы, изобретенные Германом Холлеритом и с успехом использовавшиеся на протяжении нескольких десятилетий. Корпорация IBM достигла своего могущества и стала одной из самых влиятельных компаний в США, производя электромеханические табуляторы для обработки больших массивов информации, не требующей выполнения логических операций. Их программирование осуществлялось посредством коммутации на пульте, а далее устройство управления в соответствии с заданной программой координировало работу остальных устройств.
От машины фон Неймана антимашина [1] отличается наличием одного или нескольких счетчиков данных, управляющих потоками данных. Она программируется с использованием потокового обеспечения (Flowware), а роль центрального процессора в ней играют один или несколько процессоров данных (Data Path Unit, DPU). Центральной частью антимашины может стать память с автоматической последовательностью (Auto-Sequence Memory) ( рис. 1.1).
Асимметрия между машиной и антимашиной наблюдается во всем, за исключением того, что антимашина допускает параллелизм внутренних циклов, а это значит, что в ней решается проблема параллельной обработки данных. В антимашине доступ к памяти обеспечивается не по адресу команды или фрагмента данных, записанному в соответствующий регистр, а посредством универсального генератора адресов (Generic Address Generator, GAG). Его преимущество в том, что он позволяет передавать блоки и потоки данных. В то же время компиляция, посредством которой создается специализированная под определенную задачу система, заключается в объединении нужного количества настроенных процессоров данных в общий массив (Data Process Array, DPA), на котором выполняются алгоритмы Flowware и который может быть реконфигурируемым.
Методология GAG непоследовательна, а потому обладает такими достоинствами, как возможность работы с двумерными адресами, что дает неоспоримые преимущества при работе с видеоданными и при выполнении параллельных вычислений. Счетчик данных (data counter) - альтернатива счетчику команд в машине фон Неймана; его содержимым управляет Flowware. Для новой методологии придумано и новое название - twin.paradigm; оно отражает симбиоз вычислительных ядер двух классов как обычных центральных процессоров, построенных по фон-неймановской схеме, так и процессоров данных, реализующих антимашины.
Главные отличия антимашины от машины фон Неймана в том, что антимашина по природе своей параллельна и к тому же нестатична - ее нужно программировать индивидуально, а не просто загружать различные программы в универсальную машину. Существуют наработки, которые хотя бы могут дать представление о том, как и из чего можно собрать антимашину. Реализовать ее можно средствами реконфигурируемого компьютинга.
Теоретически возможно существование трех подходов к созданию реконфигурируемых процессоров.
Специализированные процессоры (Application-Specific Standard Processor). Процессоры, имеющие набор команд, адаптированный к определенным приложениям.
Конфигурируемые процессоры (Configurable Processor). Своего рода "заготовки" для создания специализированных процессоров, содержат в себе необходимый набор компонентов, адаптируемый к требованиям приложений. В таком случае проектирование специализированного процессора оказывается проще, чем с чистого листа.
Динамические реконфигурируемые процессоры (Dynamically Reconfigurable Processor). Процессоры, содержащие стандартное ядро и расширяющее его возможности устройство, которое может быть запрограммировано в процессе исполнения; обычно это бывает программируемая логическая матрица (Field Programmable Gate-Array, FPGA).
В качестве еще одного пути развития вычислительных средств, сочетающего в себе и переход к параллельным системам и процессорам, и управление данными, можно назвать постепенный переход к системам на базе или с применением искусственного интеллекта. Действительно, если рассмотреть традиционное сравнение характеристик систем искусственного интеллекта с традиционными программными системами, видно, что в них подразумевается и адаптивность структуры, и высокий уровень параллелизма - таким образом, есть потенциальная возможность наиболее полно использовать возможности многоядерных архитектур ( таблица 1.1 [3]).
Также следует отметить, что интерес к системам на базе искусственного интеллекта (ИИ) возрос - это связано отчасти и с успехами в области полупроводниковой техники, позволяющими получать достаточно компактные устройства, которые имеют достаточно ресурсов для поддержания приложений ИИ. Одним из направлений ИИ, близкого по структуре к параллельным системам, являются искусственные нейронные сети, которые обладают рядом свойств, делающих их незаменимыми во многих приложениях. Применительно к задачам - это способность к обобщению, выявлению скрытых закономерностей, способность настраиваться на задачу, отсутствие необходимости выстраивать аналитические модели. Применительно к организации вычислений - нейросети позволяют наиболее полно использовать аппаратные ресурсы системы (в частности, для параллельной системы возможна наиболее полная загрузка вычислительных ядер).
В настоящее время системы, реализующие нейронные сети, представляют большой интерес для науки и техники, поскольку способны сократить время решения ряда задач, предложить путь к более простой аппаратно-программной реализации. Основные задачи, в которых применение искусственных нейронных сетей считается перспективным - это распознавание объектов, человеческой речи, эффективное сжатие данных, медицинский и биометрический анализ образов, обработка теплового изображения, интеллектуальное управление, экономическое прогнозирование, прогнозирование потребления электроэнергии, интеллектуальные антенны и ряд других.
Краткие итоги
Основные постулаты современного этапа развития вычислительной техники - повышение энергоэффективности и снижение общего энергопотребления; совершенствование подсистемы памяти с целью устранения "бутылочного горлышка" при операциях обращения к памяти; параллельное исполнение команд, возможно, на разных ядрах.
В качестве специализированных направлений выделяют системы, управляемые данными; реконфигурируемые системы и процессы; системы на основе алгоритмов и принципов искусственного интеллекта.
Мнения специалистов, несмотря на разногласия в оценке эффективности существующего программного обеспечения, в целом за переход к процессорам со многими вычислительными ядрами.
Контрольные вопросы
- В чем состоят проблемы выполнения закона Мура?
- Охарактеризуйте особенности использования современных вычислительных систем.
- Дайте оценку следующим параметрам микропроцессоров с точки зрения их развития: размер, энергопотребление, память, параллелизм.
Упражнения
- Охарактеризуйте круг фундаментальных и прикладных проблем процессорной техники.
- Проследите основные тенденции развития микропроцессоров за последние 10 лет.
- Посмотрите характеристики энергопотребления современных приложений в различных областях.