Researchers from the RIKEN Advanced Institute for Computational Science (AICS), Chiba University, Kobe University, Kyoto University, and Fujitsu have developed a programming language, called “Formura,” which allows scientists to develop sophisticated programming code when performing simulations on supercomputers with distributed memory.
"Stencil computation” is a type of program, typically used for simulations, that involves computing short-range interactions between arrays. It is used in a wide range of applications such as weather simulations, earthquake simulations, metallurgy, and image processing. However, writing computer code to perform such simulations on supercomputers is extremely tedious both in terms of the writing and the fine-tuning of code. In particular, such applications can be extremely memory-intensive, therefore on powerful modern processors, which have limited memory bandwidth, the imbalance between processor speed and memory bandwidth has recently become a major headache for supercomputing applications.
The development of Formura—a feat that gave the group a position as finalists for the prestigious ACM Gordon Bell Award this year—makes possible the automatic generation of elegant programming codes for running stencil computation on supercomputers, while requiring scientists only to give the mathematical concepts to be used in the simulation. In the paper, titled “Simulations of Below-Ground Dynamics of Fungi: 1.184 Pflops Attained by Automated Generation and Autotuning of Temporal Blocking Codes,” the group describes the new language and how it was used, on the powerful K computer, to perform simulations of the growth of mycorrhiza—networks of plant roots colonized by underground fungi.
According to Takayuki Muranushi of RIKEN AICS, the first author of the paper, the work represents a first step towards freeing computational scientists from the burden of programming and optimization, allowing them to concentrate on studying their own application problems. “We are very happy to have been chosen as finalists for this work,” he says. “One thing I'd like to say is that creating a custom programming language is not too difficult, and is a lot of fun. I am grateful to all the research in computer science that made this possible, and to all the people that allowed me to focus on this challenging and time-consuming task.”