Location: IBM Research-Austin
Focus: High Performance Computing Compiler Optimization
Compilers turn a computer’s coding into executable
programs. So, the faster a compiler works, the faster a program runs.
Compilers, though, have to work within a computer’s constraints. The number of
processors, the amount of memory, even the programming language all influence a
compiler’s effectiveness. So, engineers like Rei Odaira develop ways to
Rei joined IBM Research-Tokyo 10 years ago to optimize
System z mainframe compilers. The team he joined invented the technology in the
mid-1990s, for the High Performance FORTRAN
compilers. And in 1995 – while Rei was still at the University of Tokyo – they
built the Java virtual machine, and the Java just-in-time compiler, that has
been embedded in every IBM software product that uses Java, including
WebSphere. Rei took notice of the world-famous work happening only 20
kilometers away from campus, and wanted to be a part of the group.
“College students at
the University of Tokyo cannot declare a major for the first two years of
school. They can only choose ‘sciences’ or ‘liberal arts’ as a general areas of
study. I originally wanted to study mathematics and physics when I entered the
university. But this was also the time of the Internet boom of mid- and
late-1990s. So, I began learning about things like Linux. And also, IBM’s
just-in-time compiler was the fastest in the world at that time. And because
that team was in Tokyo, my classmates and I knew their work very well – from
papers they published, to conferences they attended.
Power 8’s greatest advancement is in its CAPI interface. It
allows others to build new systems on top of Power 8. For example, CAPI can
be made to quickly access and analyze unstructured NoSQL data stored in Flash
memory. – Making
Power Open to the Enterprising Masses
“My first job [at IBM] was to optimize the compiler on
the System z mainframe. Compiler optimization is all about getting as much
performance out of hardware as possible. It was a perfect match for my computer
science background, and love for working on hardware.
System z, though, is an
interesting challenge. It has 16 registers (places on a computer processor
where data is kept), while other machine architectures, like our Power systems
have several more (so, have more ways to spread out and execute a workload).
But our algorithms improved z’s middleware efficiency by 3 percent – a major
breakthrough in 2005, considering how fast the mainframe already was, and the
limited ways to optimize it.
OpenPower and moving to the US
“I moved to Austin in January of this year to manage a
systems team working on the Power system’s Coherent Accelerator Processor
Flash. The opportunity actually came up last April, when one of my managers –
while on a visit to the Austin lab – was asked about who could manage their
local team working on OpenPower
optimization. And my name came up. My family thought it was a great
opportunity, so it wasn’t a hard decision to say ‘yes.’
“Now in Austin, my scope broadened from System z
compilers and run time programs like Java and Ruby, to developing ways to
exploit CAPI Flash – an accelerator that can access and analyze unstructured
data stored in Flash memory. This means it can optimize workloads on the
Bluemix cloud platform and the SoftLayer infrastructure it runs on, to do
things like process genome sequence data in a few hours, versus the day or so
it takes, now.”
on the transition from school to industry
“University studies give you the skills and knowledge
about a topic. Computer architecture and algorithms in my case. Coming to IBM
meant picking up new skills, like writing papers and making presentations. And
also learning how to contribute to products – something you don’t do in school.
“At first, I had these ideas of how to change a product.
They didn’t go over too well because it meant implementing a completely new
thing, like an algorithm or function, in the development and maintenance of
that product. I had to learn how to work in the industry, balancing business
needs – and the many parts that come together to make a product work – with how
my own ideas could make an impact.
“But at IBM you also have plenty of opportunities to
partner with academia. I write papers for industry and academic publications.
And am a member of, and on the 2015 organizational committee for the
International Conference on Principles and Practices of Programming on the Java
platform (PPPJ). I was also an external review committee member for Programming
Language Design and Implementation (PLDI) earlier this year, and am now working
as an editorial committee member for the Information Processing Society of Japan’s
Transaction on Programming.”
Labels: bluemix, fortran, ibm research tokyo, ibm research-Austin, system z