We do R&D aimed at realizing innovative networks to support the society of the future.


We do R&D aimed at realizing innovative networks to support the society of the future.

Interview with Yoji Yamato, Distinguished Researcher

Speeding up applications that are faced with limitations due to the slow-down in Moore's Law. Here we talk to Yoji Yamato, Distinguished Researcher, who is involved in the automatic conversion and acceleration of applications in line with hardware such as GPU and FPGA about the environmental adaptation of software.

◆PROFILE: NTT Network Service Systems Laboratories (2002-2009); Verio, Inc. (2009-2010); NTT Communications Corporation Manager (2010-2013); NTT Software Innovation Center Research Engineer and Senior Research Engineer (2013-2017); NTT Network Service Systems Laboratories Senior Research Engineer (2017-2019); NTT Network Service Systems Laboratories Distinguished Researcher (2019-). In 2018, Dr. Yamato was presented with the 33rd Telecom System Technology Award by The Telecommunications Advancement Foundation.

What is "environment-adaptive software" in NTT's network research?

Please tell us the details of your research.

Now that "Moore's Law", under which CPU density doubles every 1.5 years, is slowing down and application speeds are reaching their limit, systems are increasingly being built with various types of hardware made of the best-suited materials and optimally positioned. In addition to the conventional CPU (Central Processing Unit), this hardware includes GPU (Graphics Processing Unit) and FPGA (Field-Programmable Gate Array.)

My research aims to automatically convert networked applications for each of these types of hardware in order to speed things up.

Fig. 1. Achievements Using "Environment Adaptive Software"
Fig. 1. Achievements Using "Environment Adaptive Software"

For example, at the moment, if a service provider wants to change an application created for CPU to one for GPU to develop it for commercial purposes, that provider will outsource the work to a systems development company. Then, engineers with expert knowledge at the systems development company will manually carry out the development, layout design, performance tuning, etc. This process can cost in excess of tens of millions of yen, depending on the size of the application. On top of that, additional modifications may also need to be made if there are any changes in operation.

If software can be automatically converted and optimally deployed, not only will the work, costs and development times associated with these manual processes be significantly reduced, but it should also be possible to automatically reconfigure the software if there are operating changes. There is also the advantage that speeding up processing means we will be able to achieve work which would previously require ten servers with only one. I call this "Environment Adaptive Software" because it automatically adapts to various environments.

How far has this research progressed at the moment?

This is special research extending over a five-year plan, starting in 2019, and in the first year, I worked on automatic conversion to GPU and FPGA. In GPU I looked at topics such as deep learning analysis, Fourier transforms and image analysis, and achieved increases in application speeds that were from several to tens of times faster than normal. Also, in FPGA I looked at topics such as image processing and finite impulse response, and achieved increases in speed that were from several times to tens of times faster than normal.

This is the second year and I have used last year's results to advance and trial the effects of automatic conversion in a mixed environment of manycore CPU, GPU and FPGA. Throughout the world as a whole, there seem to be relatively few examples of research projects on automatic conversion and acceleration in a mixed environment.

What challenges lie ahead to further increase efficiency and speed?

If we assume that using manual development, layout design and performance turning etc. we can increase speeds by, say, 100 points, then using automatic conversion this might be limited to around 10, depending on the content being processed. So the challenge is to get closer to the manual process.

For GPU I have been achieving faster speeds by repeated trial and error in which genetic algorithms are used to determine various factors and measure performance; these factors include "Which part of processing is suitable for GPU?" and "When to transmit the variables used in processing?" among others. I am also looking at reducing the frequency of transmission to GPU.
Meanwhile, FPGA is more difficult to automate in some respects. This is due to the fact that it takes longer to conduct one measurement compared with GPU and the fact that hardware algorithms need to be application-specific. I am also looking at efficiently streamlining candidates using arithmetic intensity etc., and using processing content in different ways to expand and apply stream processing in line with calculation content etc.

And moving forward I would like to work not only on conversion, but also on resource configuration and optimal deployment, as well as activities such as the reconfiguration of software during operation. In the past, calculations using GPU were only used by those in the High Performance Computing area, but I hope that through these efforts we can promote use among people in other areas too.

Giving Rise to a Second Paradigm Shift in Software Development

What is the objective of environment adaptive software?

Since its release in 1995, Java has revolutionized the software scene. Hiding hardware in a virtual machine allowed it to run in different environments. Many people are familiar with the catchphrase "write once, run anywhere."

But in reality this is followed by "but debugging and performance tuning everywhere." In the development of software, particularly for GPU, FPGA and similar, knowledge of hardware and performance tuning are indispensable.

By comparison, in "environment adaptive software" the aim is not to hide the hardware, but to improve performance by automatically converting software so that optimal processing is achieved in line with the deployed location. Ultimately the objective is to bring about a second paradigm shift in software development that will follow on from Java by producing programs that we can "write once, run anywhere with automatic optimum performance configurations."

What is your involvement with the IOWN initiative?

One of the three key technical areas in the IOWN initiative is Cognitive Foundation® (CF) which aims for the optimal harmonization of all ICT resources. Within this there is the concept of providing services by utilizing ICT resources on different layers such as the cloud, edge computing, network services and user equipment. At the moment, my research is at the stage of creating new elemental technologies and I hope that my research enabling the efficient use of multi-layer resources for GPU and FPGA etc., will be able to help produce technologies in the future that will allow the network itself to automatically discover service components and synthesize them in a flexible manner.

What do you consider NTT's strengths to be?

I was previously employed by NTT Communications Group, where my work involved replacements of the hosting servers. We used to want to shorten replacement time window of production hosting servers possible and make sure that any bugs, etc. were completely eliminated - that was our team's greatest wish. As the leading carrier in Japan, the NTT Group has a long track record of developing extremely reliable systems in various sectors such as mobile communications, regional communications, long-distance and international communications and data communications. I believe that if we can put this track record to good use, we will be able to enhance our competitiveness in the research sector too. In software engineering we also have a good so-called "defect removal efficiency (DRE) rate" and I believe we should use this strength to compete with US companies that conduct research at speed.

What would you say to anyone hoping to become involved in network research?

I have been published in 40 journal papers as a first author during my 20 years of research. This averages out to two academic papers per year. I also have experience in development and other areas at NTT Communications Group, but I feel that producing a large number of academic papers is one of my key characteristics. But originally, in the first couple of years of my research, hardly any of the academic papers I submitted were accepted. I feel I have gradually learned to write papers that are likely to be accepted thanks to my mentors and superiors teaching me the aspects I needed to fix for my work to pass through screening and other stages. In recent years communication via email and in remote environments has increased, but personally I think that for the first two or three years it is best to train in an environment where you work side by side with mentors and superiors. It would be hard for a mentor or superior to preach at you over the Internet (laughter).

At the moment, all I have to think about as a Distinguished Researcher is my research, which I feel is very easy to do. To anyone interested in competing in network research on the global stage in particular, I would like to say that there are places and positions here where this is possible.

Related content