Что известно про «тензорный» язык программирования? Почему тензорный подход сделает программы одновременно быстрыми и точными?
Высокопроизводительные вычисления необходимы для задач, решение которых требует быстрой обработки огромных массивов данных, например, обучение нейронных сетей. Многие программисты считают, что при повышении скорости неизбежно пострадает точность результатов и наоборот, однако одна группа американских инженеров доказывает, что можно одновременно обеспечить и то, и другое.
Сотрудники Массачусетского технологического института в США (MIT) и Калифорнийского университета разрабатывают новый язык программирования для высокопроизводительных компьютеров. Об этом пишет издание ScienceTechDaily.
Они написали так называемый «тензорный» язык программирования (A Tensor Language или сокращенно ATL), который должен ускорить вычисления, сохранив высокую надежность. Аспирантка Аманда Лю из MIT объяснила, что язык ориентирован на создание либо одного числа, либо тензора, которые являются обобщениями векторов и матриц. Если векторы — это одномерные объекты, а матрицы — двумерные массивы чисел, то тензоры — это многомерные массивы, например, они могут принимать форму 3x3x3.
Весь смысл компьютерной программы заключается в том, чтобы произвести конкретное вычисление, однако способов ее написания или реализации кода может быть множество — и некоторые значительно быстрее других. Главное преимущество ATL заключается в возможности модифицировать или переписывать программы в оптимальную форму для ускорения работы. К примеру, тензорный язык помогает преобразовать двухэтапный процесс в одноэтапный. Часто программисты начинают работу с программы, которую легче всего написать, но это может быть не самый быстрый способ решения задач из-за дальнейших корректировок.
Ученые рассказали, что в основе ATL лежит существующий язык программирования Coq со встроенным помощником, способны проверять эффективность алгоритма строгим математическим методам. Еще одной полезной особенностью этого языка является тот факт, что программы, написанные на нем, всегда завершаются и не могут застрять в бесконечном цикле, как это бывает с Java.
«Программа, которая никогда не завершается, была бы для нас бесполезна, но завершение — это то, что мы гарантированно получаем, используя Coq», — объяснила Аманда Лю.
Команда отметила, что ATL пока является лишь прототипом, хотя и очень перспективным. В будущем разработчики планируют улучшить масштабируемость языка, чтобы использовать его для написания или адаптации более сложных существующих программ. В прошлом оптимизация таких алгоритмов в большинстве случаев выполнялась вручную, что приводило к большому количеству ошибок, однако ATL способен упростить и автоматизировать процесс.
Какие IT-специалисты понадобятся уже в ближайшее время? Что они должны будут уметь, в чем разбираться, какой опыт стоит приобретать уже сейчас и что надо знать, чтобы не бояться переходить из одной сферы IT в другую?
Роман Барский 18 февраля 2022, 09:24
Источник: naukatehnika.com
На нашей информационной площадке "ДайджестВизард" вы сможете найти больше новостей IT
Информируем Вас о наших курсах для IT-специалистов по программированию:
Посмотреть больше курсов