Performance team
Professor Akira Nukada
In computing, performance usually means processing speed — how quickly a computation finishes. The goal of the Performance team is making computation faster . Even for exactly the same computation, the execution time varies enormously depending on the machine used and on how the program is written. Processors in recent machines have become particularly complex, and this team studies how to understand their characteristics, write code suited to them, and thereby draw out the performance the processor inherently possesses.
What is a GPU (Graphics Processing Unit)?
A GPU ( Graphics Processing Unit ) is, as the name says, a device responsible for image processing. Work such as visualising three-dimensional space appears in 3D video games on the consumer side, and in design fields such as CAD on the professional side. Demand from the games industry in particular called for GPUs capable of rendering more beautiful images at higher resolution and higher frame rates, and high performance devices came to be offered at relatively low prices. As a result their floating-point performance came to exceed that of the CPUs of the time, and attempts began to use GPUs to accelerate computation in general.
The defining feature of a GPU is that it carries a very large number of arithmetic units. Because image processing performs the same computation over a great deal of data, priority is given to packing in as many arithmetic units as possible. In exchange, various capabilities that an ordinary CPU provides are omitted or sacrificed. A GPU also runs at a lower clock frequency than a CPU, so no speed-up is achieved without enough parallelism to keep those many arithmetic units busy. We study how a program should be written so that the target computation maps well onto the structure of the GPU.
Research Topics
Our main theme is acceleration using GPUs . We also work on developing the various kinds of software that support GPU computing , and, where a student wishes, on CPUs and many-core processors other than GPUs. Research previously carried out by our students, together with our current main topics, is as follows.
-
Semi-automatic GPU porting of Fortran applications
The user specifies the region to be moved to the GPU, and the parallelisable parts within that region are replaced by GPU code.
This provides practical assistance with GPU programming. -
Checkpointing for OpenACC applications
Checkpointing is the ability to save the state of a running application to a file and later resume execution from it.
We aim to extend the existing checkpointing software DMTCP so that it covers OpenACC applications. -
Accelerating host-device communication using idle GPUs
When an application that uses only a single GPU runs on a compute node equipped with several GPUs, some GPUs go unused — idle GPUs.
We studied a technique that puts these idle GPUs to work as well, speeding up such applications without modifying the program. -
GPU porting of OpenSWPC with the DO CONCURRENT construct
Using DO CONCURRENT, Fortran’s standard parallelisation construct, we ported OpenSWPC, a seismic wave propagation simulation code,
to the GPU with the smallest possible amount of modification.
Members
Akira Nukada Professor
- High performance computing
- Performance optimization
- GPU computing
Personally, I will take on just about anything that has to do with making computation faster.
Shunsuke Takeshima M2
I am doing research on checkpointing for GPU applications.
Watanabe Mizuki M2
For my undergraduate thesis I studied a method for speeding up communication using idle GPUs with OpenACC.
Rei Ashizawa B4
Hiromasa Sugimoto B4