Введение
Каждый человек в душе предприниматель. Чтобы достичь успеха, особенно в финансовой сфере, предпринимателям приходится идти на риск. Легко судить о предпринимательских способностях влиятельных бизнесменов, потому что их достижения очевидны. Однако разработчика программного обеспечения, который только что усовершенствовал возможности поисковой системы для безупречного нахождения нужного URL, тоже можно считать предпринимателем. Разработчик постоянно рискует своей работой и своей зарплатой. Возможно, этот поисковый код, написанный разработчиком, станет основой бизнеса другого предпринимателя и приведёт его к успеху.
Дело не только в том, кто такой предприниматель; вопрос заключается в широте сферы предпринимательской деятельности. Глава миллиардной компании обладает большой сферой деятельности, а программный разработчик – маленькой, но которая, в свою очередь, может привести к созданию многих других сфер. Оба предпринимательских типа успешны. Сходство в том, что оба берут на себя риски и затрагивают многих других людей. А разница между ними, как правило, заключается в разной степени публичности.
Суперкомпьютерный центр в Барселоне.
Вы спросите, какое же отношение предприниматели имеют к суперкомпьютерам? Начнём с того, что практически каждый из 500 топовых суперкомпьютеров (www.top500.org) состоит из кластера микропроцессоров, связанных между собой некоторой топологией. Такие системы, как правило, оптимизированы под приложения, требующие наиболее интенсивных вычислений. Здесь применяются разнообразные процессоры и ещё более разнообразные топологии интерконнекта. Некоторые используют “массовые” микропроцессоры и общепринятые топологии, а другие – специально разработанные компоненты.
Раньше “древние” компьютеры использовали небольшое количество крупногабаритных специальных процессоров. Эти времена прошли, уступив место большому числу маленьких, быстрых микропроцессоров, и теперь суперкомпьютер часто напоминает целую комнату, заставленную серверами. Архитектура интенсивных вычислений способна поддерживать и интерактивные приложения. Например, некоторые из самых мощных в мире суперкомпьютеров используются в приложениях на базе web-технологий.
Использование суперкомпьютеров становится привычным благодаря более быстрым микропроцессорам и распространению кластерных серверных архитектур. Но есть ли у вас в офисе суперкомпьютер? Вероятно, нет. В массовом сознании живёт такой стереотип: суперкомпьютеры дорогие и занимают слишком много места. Они выделяют много тепла, шумят, капризны, вокруг них всегда толпится куча экспертов, абсолютно непохожих на обычных людей. Но это заблуждение!
Всё, что нужно, – предпринимательские способности разработчика. Необходимо, чтобы кто-то творчески подошёл к делу, рискнул и сделал так, чтобы суперкомпьютеры перестали воспринимать как нечто сложное и задумались о их использовании в условиях офиса.
Если смотреть на ситуацию с суперкомпьютерами под другим углом, то можно обнаружить очевидное. Мы надеемся, что наша статья поможет найти творческие решения проблем суперкомпьютеров, которые мешают использовать их в офисах. Осознав, что именно мешает использовать суперкомпьютеры в офисах, вы получите шанс их туда внедрить. А чтобы это осуществить, нужны инженеры-предприниматели. Скорее всего, они останутся неизвестными, зато с широкой сферой деятельности и с кучей денег, а также с готовностью разрушить укоренившиеся парадигмы.
О суперкомпьютерах можно говорить бесконечно. Каждая тема, затронутая в данной статье, может занять не один книжный том, поэтому мы не будем вдаваться в детали не только для краткости, но и чтобы не навязывать читателю предвзятое мнение. Это поспособствует творческому решению проблемы.
Давайте посмотрим на положительные, отрицательные и нейтральные стороны современных суперкомпьютеров. Если отбросить предубеждения, то это может позволить вам, как предприимчивому специалисту, преодолеть существующие ограничения и внедрить суперкомпьютер в ваш офис. Заранее приносим извинения, если мы что-то упустили или осветили не в полной мере.
Используйте специальные архитектуры процессора и интерконнекта
На заре суперкомпьютеров много усилий прилагалось для создания специальных высокопроизводительных архитектур. Отличным примером этого являются компьютерные системы Крея (Cray), которые были популярны с 1985 по 1990 год. Дело было не в сложности разработки быстрых процессоров; в новаторстве нуждалось размещение компонентов. Электрическому сигналу требовалось около наносекунды, чтобы по проводам преодолеть расстояние в 30 см. Чтобы производительность была выше, компоненты должны были располагаться близко друг к другу. Сейчас это тоже актуально, но у нас есть огромное преимущество благодаря современным микропроцессорам, обеспечивающим огромную плотность размещения транзисторов.
Периодически возникают хорошие идеи по поводу увеличения производительности “массовых” микропроцессоров. Эти идеи обычно заключаются в использовании вспомогательных процессоров или существующих специализированных процессоров, чтобы распределить вычислительную нагрузку. Несмотря на то, что это даёт краткосрочный выигрыш, форматы данных часто отличаются от стандартизированных форматов библиотек. Это может привести к созданию программ и файлов данных, которые будет трудно конвертировать при апгрейде вспомогательного процессора.
В настоящий момент IBM Blue Gene считается самым высокопроизводительным суперкомпьютером.
Разработчики современных микропроцессоров постоянно повышают производительность. Они достигают этого за счёт совершенствования архитектуры процессора или повышения тактовой частоты. Уже существуют четырёхядерные процессоры, а скоро должны появиться и восьмиядерные. Последние итерации архитектуры строятся на использовании матрицы сверхпроизводительных процессоров, то есть больших массивов простых процессорных элементов. Все производители работают над усовершенствованием архитектуры, позволяющей более быстро выполнять вычисления при пониженном энергопотреблении. Многоядерные процессоры будут поддерживать многопоточность, а процессоры в массиве – выполнение векторного кода. И то, и другое важно для производительности суперкомпьютера.
Практически невозможно разработать и воплотить собственные гениальные идеи в жизнь, и при этом обойти производителей “массовых” процессоров. Лучшее, что можно сделать без огромных капиталовложений, это убедить компании по производству “массовых” микропроцессоров продолжить работу по улучшению производительности через модернизацию архитектуры по мере развития кремниевой технологии.
Топологии соединений могут быть большими и не очень, скоростными и медленными. Для максимальной производительности топология должна позволять всем процессорам взаимодействовать друг с другом одновременно. Другие топологии используют одиночные соединения типа “точка-точка”, которые не обеспечивают большой параллельности во взаимодействии. Создание топологии взаимодействия, по сути, является задачей 3D-визуализации, чтобы получить максимальную производительность, используя при этом оптимальное количество узлов коммутации.
Процессоры должны соединяться таким образом, чтобы минимизировать количество коммутаторов на пути от процессора к процессору, обеспечивая минимальное время доступа. Число соединений тоже нужно свести к оптимальному значению в зависимости от требуемой производительности. Слишком малое количество интерконнектов будет “тормозить” систему, а если соединений слишком много, то они будут попросту простаивать, а значит, деньги потрачены зря. Это напоминает просчёт количества минут, которые вы предположительно потратите на разговоры по сотовому телефону. Если взять тарифный план с очень малым количеством минут разговоров, то потом придётся доплачивать, а можно и, наоборот, изначально переплатить, потратив на разговоры меньше времени. Трудно найти “золотую середину”, она меняется от одной нагрузки к другой.
При хорошей топологии данные могут передаваться множеством разных путей, аналогично “Всемирной паутине” (WWW). Это хорошо, когда алгоритмы распределения процессорных ресурсов стремятся распределить потоки на маленькие группы процессоров. И плохо, если у вас нет очень хороших средств диагностики топологии. Обнаружить сбой на одном из путей практически невозможно, если только в распоряжении нет какого-либо средства отслеживания. Существует много вариантов топологий и высокоэффективных коммутаторов и адаптеров, которые широко используются. По той же причине, по которой не следует разрабатывать свой собственный микропроцессор, не стоит изобретать и свою собственную топологию и интерконнект. Себе дороже.
Итак, если вы не хотите применять суперкомпьютеры в офисе, то используйте специальные процессоры и топологии, особенно собственной разработки. Это приведёт к большим затратам на разработку и сопровождение. Что ещё хуже, примерно через три года вам потребуется большая производительность, что приведёт к необходимости обновления системы, как с точки зрения архитектуры, так и технологии, чтобы не отставать от других. Изначальные инвестиции в миллиард долларов поблекнут на фоне новых затрат на технологическое переоборудование.
Не обращайте внимание на энергопотребление и тепловыделение
Затраты на электроэнергию могут превысить стоимость суперкомпьютера всего через два-четыре года. Огромное количество потребляемой энергии приводит к сильному выделению тепла. Отведение этого тепла ещё больше увеличивает затраты, потому что требуются кондиционеры, вентиляторы и т.д.
Проблемы энергии и тепла взаимосвязаны. Так как производительность системы должна увеличиваться, то используются более быстрые процессоры, потребляющие много энергии. Существуют задачи, требующие производительности в миллионы раз больше, чем производительность самых быстрых на сегодняшний день суперкомпьютеров. Это постоянная проблема.
Суперкомпьютер Sandia Thunderbird.
Большое внимание следует уделять энергии, которая требуется большим кластерам компьютеров. Это вполне обоснованно, так как потребляемая типичными кластерами энергия с лёгкостью может превышать 60% годового бюджета текущих расходов на аппаратное обеспечение. Решение проблем энергопотребления связано с технологиями производства процессоров. Поскольку у высокопроизводительных систем энергопотребление тоже масштабируется, максимальная производительность будет ограничена потребляемой энергией. Это естественно, потому что многие приложения требуют самой высокой производительности, которую только можно добиться при использовании той или иной технологии. Если требуется максимальная производительность, то очевидного решения этой проблемы не существует.
Результатом потребления энергии является тепло. Чтобы устранить это тепло, требуется использовать большие системы кондиционирования и отвода воздуха, которые приводят к ещё большему потреблению энергии. Это влечёт за собой бесконечный рост выделяемого тепла и требований к системам охлаждения. Таким образом, максимальная производительность ограничена не только энергией, но и способностью системы отводить тепло.
Многие процессы, выполняемые на суперкомпьютерах, на самом деле не требуют огромной производительности от каждого процессора, однако им нужно быстрое время отклика на запрос. Хорошим примером является поиск в Интернете. Он может эффективно осуществляться при использовании многопоточных, больших кластерных систем. Поэтому здесь масштаб смещён в сторону количества узлов. Например, самый быстрый на сегодняшний день суперкомпьютер оснащён более чем 100 000 процессоров. Производительность одного из этих процессоров вполовину меньше производительности обычного ПК. Таким образом, большую роль играет количество процессоров.
Итак, если вы не собираетесь использовать суперкомпьютеры в офисе, то пусть они будут “огнедышащими монстрами”, потребляющими огромное количество энергии. Уже после первого года получения счетов за электроэнергию такой суперкомпьютер “выселят” из офиса. В качестве альтернативы следует использовать более экономичные, пусть и менее скоростные процессоры. Будем надеяться, что производители и дальше будут разрабатывать менее “прожорливые” и более эффективные по энергопотреблению микропроцессоры. К счастью, есть ноутбуки и мобильные процессоры. Но и они не могут долго работать, если не будут экономить энергию.
Создавайте большие, шумные и непереносные суперкомпьютеры
Для больших систем требуются дорогостоящие, потребляющие много энергии, компьютерные помещения с климат-контролем, потому что системы охлаждения и аппаратное обеспечение занимают значительное пространство и требуют, чтобы помещение соответствовало стандартам “чистой комнаты” с высочайшей степенью защиты от пыли и других загрязнений. Как правило, с пространством проблем не возникает. Требования к производительности вынуждают использовать большие системы, при этом скорость передачи по интерконнектам всё время повышается, поэтому длина соединений должна быть как можно меньше. Для традиционных компьютерных помещений возникают немалые проблемы из-за расстояния между компьютерными стойками. Кроме того, компьютерные помещения с климат-контролем часто требуют, чтобы системы были зафиксированы на месте, поэтому их трудно менять или передвигать. Это становится настоящей проблемой, когда большой кластер нужно быстро переместить, например, в случае стихийного бедствия. Более того, многие приложения, используемые в областях, связанных с геологическими исследованиями и военной сферой/разведкой, должны располагаться в непосредственной близости от объекта изучения.
Суперкомпьютер Sandia Red Storm.
Размер системы сказывается на энергопотреблении и тепловыделении. При уменьшении размеров увеличиваются плотности энергии и тепловыделения. Плотность энергии, по крайней мере, в разумных пределах, сама по себе не представляет проблемы. Однако рост интенсивности тепловыделения усугубляет проблему. Рано или поздно вентиляторы, тепловые трубки и другие приспособления для охлаждения перестают быть эффективными. Тот, кто найдёт новое решение проблемы тепловыделения, будет “на коне”.
Проблема портативности суперкомпьютеров глубже, чем может показаться на первый взгляд. Компьютеры стали очень популярны после появления персональных компьютеров. ПК привнесли компьютеризацию в массы. В развитии компьютеров произошёл огромный скачок вперёд, поскольку у многих были хорошие идеи, и появился шанс их осуществить. Многие предприниматели поднялись благодаря естественному рыночному отбору. То же самое могло бы произойти сейчас с суперкомпьютерами, если бы только они стали использоваться в условиях офиса.
Как минимум, размер препятствует применению суперкомпьютеров в офисах. Но так не должно быть. Предприниматели, идите и творите! Единственные препятствия заключаются не в технических особенностях, а в предрассудках, от которых надо избавиться. Здесь действует философия “если не сломано, то чинить не надо”. К сожалению, такой подход нельзя признать рентабельным и креативным, который бы способствовал внедрению суперкомпьютеров в офисы.
Создавайте специализированные операционные системы
В старые добрые времена расцвета суперкомпьютеров (70-е гг.) трудно было найти стабильные операционные системы с большими возможностями, вероятно, потому, что таких и не было вовсе. Я знаю об этом не понаслышке, поскольку отвечал за работу одной из ранних ОС. Все, кому приходилось работать с большими компьютерными системами, знают, что необходимо контролировать свои чувства, иначе можно не вынести 100-часовой рабочей недели. Естественно, это приводило к тому, что операционные системы тоже становились “бесчувственными”, сдержанными, потому что разработчиков мало волновало, как будут ощущать себя пользователи при работе с такой ОС. Цель заключалась в получении того, чтобы хоть как-нибудь работало.
Сегодня существует много качественных, более или менее стабильных систем, обеспечивающих хорошую, богатую функциональность. Тем не менее, необходимо, чтобы какая-нибудь состоятельная компания обновляла эти функции, с тем, чтобы система получала ещё больше возможностей. Большинство систем обновляются, по крайней мере, раз в месяц хотя бы одним патчем, устраняющим проблемы безопасности.
У суперкомпьютеров проблема решается легче. Их операционные системы не нуждаются в постоянном обогащении функциональности, потому что им не нужен графический интерфейс пользователя (GUI). GUI играет важную роль, но он может использоваться на ПК, подключённом к суперкомпьютеру. Таким образом, можно обойтись пользовательским интерфейсом ПК. Операционную систему суперкомпьютера можно ограничить минимумом функций, необходимых для поддержки приложений, а не пользователей. Портирование обычных ОС для ПК (например, Windows Vista) на суперкомпьютеры не имеет большого смысла. Хотя некоторые пользовательские ОС, тот же Linux, можно портировать. ПК дружелюбны к пользователям, а суперкомпьютеры хорошо справляются с быстрым выполнением приложений. Не нужно смешивать одно с другим.
В действительности, в настоящее время всё больше и больше ОС Linux используется в суперкомпьютерах, чем когда бы то ни было. Эта операционная система бесплатна и поддерживается огромным числом страстных энтузиастов, стремящихся доказать, что Linux – это “подарок” для компьютеров. Насчёт “подарка” можно согласиться, но стоит предостеречь, что следует очень внимательно подходить к вопросу апгрейда ОС. В этом заключается недостаток свободно и бесплатно распространяемого ПО. А преимущество в том, что базовой ОС Linux будет достаточно, вместе с опциями поддержки специальных функций, многопоточности и т.д. За эти опции, возможно, придётся заплатить, зато они обычно хорошо поддерживаются и со временем совершенствуются, благодаря конкуренции.
Межпроцессорное взаимодействие очень существенно. Приложения могут быть распределены на десятки тысяч процессоров, и все процессоры должны быть более или менее синхронизированы. Такая синхронизация требует наличия специальных вызовов со стороны операционной системы. Следовательно, время на обработку этих вызовов жизненно важно для общей производительности приложения.
Можно подойти к этой проблеме и со стороны приложения, когда ОС игнорируется и обеспечивается прямое взаимодействие с другими потоками посредством многопроцессорных интерфейсов (MPI). Некоторые многопроцессорные интерфейсы беспрепятственно обеспечивают прямое взаимодействие в обход операционной системы. Стек MPI работает через процедурные вызовы на уровне приложения. MPI может уменьшить сложность операционной системы.
Творческих решений требует проблема поиска неисправностей (диагностики) и отображения состояния системы. Как правило, суперкомпьютеры оснащены тысячами процессоров с миллионами возможных каналов связи между ними. Невозможно предсказать путь передачи данных от процессора к процессору. Проблемы могут возникнуть при попытке отследить сбой связи или найти “ленивый” процессор. Хорошее отображение состояния системы, которое служит и для отладки, может стать спасительным средством, но существуют ли такие средства?
Итак, если вы не собираетесь применять суперкомпьютеры в офисе, то можно использовать специализированную операционную систему, которая будет препятствовать прямому взаимодействию приложений. Это даёт два “преимущества”. Одно из них заключается в стоимости. Специализированная операционная система “высосет” много денег на исследования и разработку. Поэтому, если вы не влиятельный человек, то вам вряд ли удастся приобрести такую систему. Руководство старается избегать таких людей, так как они дорого обходятся. Другое “преимущество” отразится на площади вашего рабочего места. Вам придётся клонировать себя, по крайней мере, один раз, чтобы следить за работой приложения в специализированной ОС.
Огромные усилия по разработке приложений
Разработка эффективных, то есть быстро работающих приложений для суперкомпьютеров может стать сложной задачей. Это связано, прежде всего, с тем, что единое цельное приложение должно быть распараллелено так, чтобы выполнялось одновременно на нескольких процессорах. К счастью, для решения этой проблемы архитектура процессоров предоставляет два средства: многопоточность и векторизацию. Два или четыре процессора не вызывают больших затруднений, а вот десятки тысяч вызовут. Сложность распараллеливания может варьироваться от элементарной до практически невыполнимой, в зависимости от приложения.
В индустрии графики элементарным примером может служить генерация видеокадров, при которой каждый кадр может создаваться отдельным процессором. Сложной, но всё же разрешимой является задача распараллеливания каждого кадра на много-много фрагментов. Но по-настоящему трудным представляется распараллеливание произвольного кода, не содержащего циклов и рекурсии. К счастью, приложения последнего типа трудно встретить в реальной жизни. Однако, по-нашему мнению, даже самые неподходящие для этой цели приложения можно распараллелить. Приложения такого рода должны быть изменены так, чтобы алгоритм включал в себя использование рекурсии или пакетную обработку данных. Следует предостеречь, что новый алгоритм часто оказывается гораздо сложнее. Здесь действует закон убывающей отдачи, сложность может достигнуть такого уровня, что не будет стоить затраченных усилий.
Компиляторы предоставляют средства для преобразования решённой задачи в машинный код, который может исполняться на процессорах разных архитектур. Современные компиляторы всё больше становятся универсальными средствами, поскольку их можно использовать как для системного, так и для прикладного программирования. Впрочем, существует тенденция разделения языков программирования на системные и прикладные. Однако в этом направлении есть ещё многое, над чем предстоит работать. Современные языки программирования предоставляют возможность писать код приложений различными способами.
Чтобы полностью понимать все сложности и тонкости языка программирования, вам потребуется много мозгов. Другими словами, многие компиляторные языки программирования, к сожалению, делают акцент на точном и пошаговом решении, а не на самой задаче. Здесь есть, где развернутся предпринимателям. Что действительно необходимо, так это высокоуровневый язык программирования, который бы описывал сам алгоритм, а не детали его реализации. Так что у разработчиков компиляторов ещё есть, куда развивать свои продукты, чтобы можно было создавать более эффективные приложения под ту или иную архитектуру процессора.
Разработчики компиляторов огромные усилия прилагают для компиляции кода приложения для работы с векторами или массивами данных. Если найден массив, который можно обработать векторной инструкцией или SIMD-инструкцией, – это замечательно! На сегодняшний день компиляторы в основном решают эту проблему “в лоб”. Они ищут специфические виды циклов, которые подходят для векторизации. Методы решения “в лоб” не очень хороши. Компиляторы “опускают руки” всякий раз, когда не могут определить цикл, который нельзя реализовать через массивы. Поверьте, таких много. Если вам удастся найти общий способ векторизации или создания из циклов массивов, которые бы обрабатывались “родными” командами микропроцессоров, то вы явно станете богатым и знаменитым предпринимателем.
Алгоритмы прикладных программ основаны на последовательной логике. Эта последовательная логика, как правило, включает в себя много сегментов, которые можно разбить на отдельные потоки. Последние могут быть запущены и синхронизированы при помощи обычных расширений операционной системы. Это приводит к увеличению скорости работы, так как потоки выполняются параллельно.
Что касается итеративных кодов, то приложение можно конвейеризировать по принципу работы конвейеров микропроцессора. В этом случае несколько итераций выполняются параллельно, а многих проблем, связанных с синхронизацией, можно избежать. Трудности возникают в приложениях, не предназначенных для многопоточных систем. Однако такие приложения могут быть реструктурированы, рассматривая алгоритм с позиции горизонтальной сегментации вместо вертикального набора команд. Это потребует полного пересмотра алгоритма, но зато практически всегда приведёт к повышению эффективности многопоточности.
Здесь можно привести пример моей разработки компилятора COBOL для векторного компьютера Star 100 в начале 70-х гг. При разработке набора команд этого компьютера за основу была взята книга Кена Айверсона “Язык программирования” (Ken Iverson “A Programming Language”). Один из разработчиков, Нейл Линкольн (Neil Lincoln), написал компилятор FORTRAN без операторов условий и циклов. Он полностью состоял из 147 векторных команд. Каждая такая команда соответствовала одной инструкции. Очевидно, что такой компилятор работал очень быстро, а Нейл заслуживает моря оваций за своё достижение. Этот пример свидетельствует о том, что творческий стимул сильнее предрассудков. Предубеждения тормозят креативность и не позволяют идти в ногу со временем.
Итак, если вы не собираетесь использовать суперкомпьютеры в офисе, то убедите руководство в том, что приложения не стоит трогать. Руководство будет не в состоянии найти суперкомпьютер, на котором эффективно заработали бы все ваши приложения, оправдывая затраты на суперкомпьютер. Кроме того, вы можете убедить руководство, что потребуется много сил и денег для модификации приложений. Плюс ко всему, все приложения необходимо будет портировать по мере совершенствования архитектуры процессоров. Будет забавно, если к этому моменту разработчики приложений уже сменили работу, а исходные коды тоже не доступны. Возможно, потребуются новые сотрудники и дополнительные рабочие места. Так что суперкомпьютер, по крайней мере, в ближайшем будущем, не будет рентабельным.
Тем не менее, если вы хотите стать состоятельным предпринимателем, то тогда придумайте, как можно легко модернизировать алгоритмы приложений либо посредством разработки “умных” компиляторов, либо став специалистом в реструктуризации алгоритмов. А ещё лучше разработайте систему, в которой задачи описывались бы на языке высокого уровня, а затем преобразовывались бы сразу в машинный код. Это избавит от необходимости создавать сложные для понимания решения, которые оказываются ещё более сложными для портирования на суперкомпьютеры.
Заключение
Суперкомпьютеры за последнее время сильно изменились. Из специализированных, с трудом программируемых “монстров”, потребляющих много энергии и выделяющих большое количество тепла, они превратились в кластеры, которые по-прежнему потребляют много энергии, выделяют много тепла и программировать под которые сложно. Проблемы энергопотребления и тепловыделения обусловлены необходимостью максимальной производительности. Сложности, возникающие при программировании, разрешимы при помощи обучения и творчества. Неоценимую помощь в решении этой проблемы могли бы оказать новые подходы к разработке языков программирования. Проблемы, связанные с огромными размерами суперкомпьютеров, можно преодолеть с помощью технологических достижений или с помощью совершенно нового подхода к сборке. Не бойтесь новых идей. Суперкомпьютеры имеют большие перспективы и заслуживают того, чтобы начать использовать их в офисах.
Возможно, так будет выглядеть офисный суперкомпьютер в будущем.
Персональный суперкомпьютер Kraftway.
Уменьшение размеров суперкомпьютеров за счёт большей плотности размещения компонентов ведёт к ещё большим проблемам с тепловыделением. Но они будут решены. Популярность суперкомпьютеров будет расти, что приведёт к их появлению в офисах. И именно в офисном окружении появятся новые многопоточные и векторизованные приложения.
Вообще же следует упомянуть первый шаг российской компании Kraftway в этом направлении, которая уже разработала персональный суперкомпьютер, узнать о котором можно