Персональные суперкомпьютеры для дома и офиса: оценка проблем и перспектив

Персональные суперкомпьютеры для дома и офиса: оценка проблем и перспектив

Огромные упрочнения по разработке приложений

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

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

В индустрии графики элементарным примером может служить генерация видеокадров, при которой любой кадр может создаваться отдельным процессором. Сложной, но однако разрешимой есть задача распараллеливания каждого кадра на много-много фрагментов. Но по-настоящему тяжёлым представляется распараллеливание произвольного кода, не содержащего рекурсии и циклов.

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

направляться предостеречь, что новый метод довольно часто оказывается значительно сложнее. Тут действует закон убывающей отдачи, сложность может достигнуть для того чтобы уровня, что не будет стоить затраченных упрочнений.

Компиляторы предоставляют средства для преобразования решённой задачи в машинный код, что может исполняться на процессорах различных архитектур.

Современные компиляторы всё больше становятся универсальными средствами, потому, что их возможно применять как для системного, так и для прикладного программирования. Но, существует тенденция разделения языков программирования на системные и прикладные. Но в этом направлении имеется ещё очень многое, над чем предстоит трудиться.

Современные языки программирования предоставляют возможность писать код приложений разными методами.

Дабы всецело осознавать все тонкости и сложности языка программирования, вам потребуется большое количество мозгов. Иначе говоря многие компиляторные языки программирования, к сожалению, делают упор на правильном и пошаговом ответе, а не на самой задаче. Тут имеется, где развернутся предпринимателям.

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

Разработчики компиляторов огромные упрочнения прилагают для компиляции кода приложения для работы с векторами либо массивами данных.

В случае если отыскан массив, что возможно обработать векторной инструкцией либо SIMD-инструкцией, — это превосходно! На сегодня компиляторы по большей части решают эту проблему в лоб. Они ищут своеобразные виды циклов, каковые подходят для векторизации. Способы ответа в лоб не весьма хороши.

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

Методы прикладных программ основаны на последовательной логике.

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

Что касается итеративных кодов, то приложение возможно конвейеризировать по принципу работы конвейеров процессора.

В этом случае пара итераций выполняются параллельно, а многих неприятностей, которые связаны с синхронизацией, возможно избежать. Трудности появляются в приложениях, не предназначенных для многопоточных совокупностей. Но такие приложения смогут быть реструктурированы, разглядывая метод с позиции горизонтальной сегментации вместо вертикального комплекта команд. Это потребует полного пересмотра метода, но фактически постоянно приведёт к увеличению эффективности многопоточности.

Тут возможно привести пример моей разработки компилятора COBOL для векторного компьютера Star 100 в начале 70-х гг. При разработке комплекта команд этого компьютера за базу была забрана книга Кена Айверсона Язык программирования (Ken Iverson A Programming Language). Один из разработчиков, Нейл Линкольн (Neil Lincoln), написал компилятор FORTRAN без циклов и операторов условий. Он всецело складывался из 147 векторных команд.

Любая такая команда соответствовала одной инструкции. Разумеется, что таковой компилятор трудился весьма скоро, а Нейл заслуживает моря оваций за собственное достижение. Данный пример говорит о том, что творческий стимул посильнее предрассудков. Предубеждения тормозят креативность и не разрешают идти в ногу со временем.

Итак, если вы не планируете использовать суперкомпьютеры в офисе, то убедите управление в том, что приложения не следует трогать.

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

Быть может, потребуются новые дополнительные рабочие и сотрудники места. Так что суперкомпьютер, по крайней мере, в скором времени, не будет рентабельным.

Однако, если вы желаете стать состоятельным предпринимателем, то тогда придумайте, как возможно легко модернизировать методы приложений или при помощи разработки умных компиляторов, или став экспертом в реструктуризации методов.

А ещё лучше создайте совокупность, в которой задачи описывались бы на языке большого уровня, а после этого преобразовывались бы сходу в машинный код. Это избавит от необходимости создавать сложные для понимания ответа, каковые выясняются ещё более сложными для портирования на суперкомпьютеры.

Заключение

Суперкомпьютеры в последнии месяцы очень сильно изменились.

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

Неоценимую помощь в ответе данной неприятности имели возможность бы оказать новые подходы к разработке языков программирования. Неприятности, которые связаны с огромными размерами суперкомпьютеров, возможно преодолеть посредством технологических достижений либо посредством совсем нового подхода к сборке. Не опасайтесь новых идей. Суперкомпьютеры имеют громадные возможности и заслуживают того, дабы начать применять их в конторах.

Быть может, так будет смотреться офисный суперкомпьютер в будущем.

Персональный суперкомпьютер Kraftway.

Уменьшение размеров суперкомпьютеров за счёт большей плотности размещения компонентов ведёт к ещё громадным проблемам с тепловыделением. Но они будут решены. Популярность суперкомпьютеров будет расти, что приведёт к их появлению в конторах.

И как раз в офисном окружении покажутся новые многопоточные и векторизованные приложения.

По большому счету же направляться упомянуть первый ход русском компании Kraftway в этом направлении, которая уже создала персональный суперкомпьютер, определить о котором возможно тут.

Случайная статья:

#этоинтересно | Выпуск 65: Самые мощные суперкомпьютеры


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.