Тензорний підхід зробить програми одночасно швидкими та дуже точними, запевняють розробники.
Співробітники Массачусетського технологічного інституту в США (MIT) та Каліфорнійського університету розробляють нову мову програмування для високопродуктивних комп'ютерів. Про це пише видання ScienceTechDaily.
Високопродуктивні обчислення необхідні завданням, вирішення яких вимагає швидкої обробки величезних масивів даних, наприклад, навчання нейронних мереж. Багато програмістів вважають, що при підвищенні швидкості неминуче постраждає точність результатів і навпаки, однак одна група американських інженерів доводить, що можна одночасно забезпечити і те, й інше.
Вони написали так звану "тензорну" мову програмування (A Tensor Language або скорочено ATL), яка має прискорити обчислення, зберігши високу надійність. Аспірантка Аманда Лю з MIT пояснила, що мова орієнтована на створення або одного числа, або тензора, які є узагальненнями векторів і матриць. Якщо вектори – це одномірні об'єкти, а матриці – двомірні масиви чисел, то тензори – це багатовимірні масиви, наприклад, вони можуть набувати форми 3x3x3.
Весь сенс комп'ютерної програми полягає в тому, щоб зробити конкретне обчислення, проте способів її написання або реалізації коду може бути безліч — і деякі значно швидше за інші. Головна перевага ATL полягає у можливості модифікувати або переписувати програми на оптимальну форму для прискорення роботи. Наприклад, тензорна мова допомагає перетворити двоетапний процес на одноетапний. Часто програмісти починають роботу з програми, яку найлегше написати, але це може бути не найшвидший спосіб вирішення завдань через подальші коригування.
Учені розповіли, що в основі ATL лежить наявна мова програмування Coq із вбудованим помічником, здатні перевіряти ефективність алгоритму суворих математичних методів. Ще однією корисною особливістю цієї мови є той факт, що програми, написані нею, завжди завершуються і не можуть застрягти в нескінченному циклі, як це буває з Java.
"Програма, яка ніколи не завершується, була б для нас марною, але завершення — це те, що ми гарантовано отримуємо, використовуючи Coq", — пояснила Аманда Лю.
Команда зазначила, що ATL поки що є лише прототипом, хоч і дуже перспективним. У майбутньому розробники планують покращити масштабованість мови, щоб використовувати її для написання чи адаптації складніших наявних програм. У минулому оптимізація таких алгоритмів у більшості випадків виконувалася вручну, що призводило до великої кількості помилок, проте ATL здатна спростити та автоматизувати процес.
Раніше вчені вигадали нову мову програмування Twist для квантових комп'ютерів. За словами розробників, вона дозволить писати безпечні програми, запобігаючи непотрібній плутанині між кубітами.