MIT develops New Programming Language for High-Performance Computers

Related

Tech trends 2022: Web 3.0, big tech battles

Following a year that saw WFH (work from home)...

Metaverse, an online virtual world

The term "metaverse" was coined by author Neal Stephenson...

In a first, a Strange Quantum Object created in Lab

In the realm of quantum mechanics, which governs the...

5 Cutting-edge programming languages that you should not ignore

Throughout the history of computer programming, numerous programming languages...

In the realm of computing, the demand for high performance is ever-increasing, particularly for tasks like image processing and deep learning applications on neural networks. These tasks involve sifting through vast amounts of data quickly, or else the processing time becomes unreasonably long. Traditionally, it’s believed that there’s a trade-off between speed and reliability in such operations. If speed is prioritized, reliability may suffer, and vice versa.
However, a group of researchers primarily from MIT challenges this notion, proposing that it’s possible to achieve both speed and correctness simultaneously. Amanda Liu, a second-year Ph.D. student at the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL), states that with their new programming language specifically designed for high-performance computing, “speed and correctness do not have to compete. Instead, they can work hand-in-hand in the programs we develop.”
Liu, along with Gilbert Louis Bernstein, a postdoc from the University of California at Berkeley, MIT Associate Professor Adam Chlipala, and MIT Assistant Professor Jonathan Ragan-Kelley, presented the potential of their recently developed creation, “A Tensor Language (ATL),” at the Principles of Programming Languages conference in Philadelphia last month.
Liu explains that everything in their language is geared towards producing either a single number or a tensor. Tensors, which are generalizations of vectors and matrices, can take the form of multidimensional arrays. The objective of a computer algorithm or program is to initiate a specific computation, but there can be numerous ways of writing the program, each with varying speeds. The primary aim of ATL is to optimize the program to enhance performance, given the resource-intensive nature of high-performance computing. Liu notes that while one may begin with a program that is easy to write, it may not be the fastest, necessitating further adjustments for optimal speed.