04/07/2019

"Regent": A new, more user-friendly language for programming supercomputers

Developed by a group led by Stanford computer scientist Alex Aiken. Among other things, Regent makes supercomputers easier to use. "We wanted to create a programming environment that doesn't require every researcher to be a computer scientist," says Aiken, the Alcatel-Lucent Professor in Communications and Networking. Regent helps solve one of the biggest challenges in supercomputing: Today's supercomputers are far more complex than ever before, and existing programming languages have struggled to keep pace. A supercomputer may appear in the popular imagination to be one giant machine, but it is in fact an array of thousands of microprocessors that work together. Scientists typically program these arrays using C++, a software language invented some 40 years ago—an eon in computer science time. Back then, the predominant microprocessor was the central processing unit, or CPU, the chip that launched the PC revolution. CPUs solve large problems quickly, one computation after another, in what programmers call a serial fashion.More recently, however, a second type of microprocessor has become important to supercomputing: the graphics processing unit, or GPU.

First used to control millions of pixels on computer screens to improve the visuals of video games, GPUs can perform many similar computations simultaneously, or in parallel, as programmers would say. Parallel processing has proven extremely useful in applications such as machine learning. C++ has been upgraded to keep up with these and other hardware changes. Unfortunately, the accretion of patches has made the language increasingly difficult to use. Regent, however, makes it easier for a supercomputer programmer to do things like assign serial processing tasks to CPUs and parallel processing tasks to GPUs.  Once Regent has framed the program on a conceptual level, the programmer's intentions are translated—or, to use the technical term, compiled—into a second software layer called Legion, which Aiken also developed. Legion generates machine code—precise instructions directing the supercomputer's hardware how to carry out the program. The tight integration between Regent and Legion makes it easier for programmers to make other important decisions; notably, where to store the data that the supercomputer must analyze.

Full Article: https://techxplore.com/news/2019-07-user-friendly-language-supercomputers.html

No comments :

Post a Comment