Sandia Lab News

Fixing FLOPS


Samuel Pollard tackles the 40-year-old foundation of all computers

<strong>FLOATING AN IDEA</strong> — Mathematician Samuel Pollard, who formulated a way to check the basic building blocks of modern computing, describes an equation to a colleague. (Photo by Spencer Toy)
FLOATING AN IDEA — Mathematician Samuel Pollard, who formulated a way to check the basic building blocks of modern computing, describes an equation to a colleague. (Photo by Spencer Toy)

There is an open secret that has existed since the dawn of computing: computers can’t do arithmetic correctly. This secret is hidden for most of us because computers are correct enough — most of the time.

But that minor imprecision can create big problems in places where researchers can’t have them.

“If a computer calculated the radius of the earth, it would be off by the width of about 1 atom. But depending on what you’re doing, these little mistakes can have large impact because of something called catastrophic cancellation,” Sandia computer scientist Samuel Pollard said.

The way computers do most arithmetic is with a technology called floating point, which is a way computers represent real numbers, like decimals, so they can handle very big or very small values. Floating point is so integral that computers are often measured just by their FLOPS — floating-point operations per second — and the method is more than four decades old.

As computer technology developed, floating point was never updated. Now, as computers need increasingly more accurate data to perform the functions asked of them, Samuel may be just the craftsman to help secure the digital future.

“The ‘gold standard’ of floating point was developed in the 1980s and brought consistency to the computing world. Computers advanced but floating point stayed mostly the same,” Samuel said, explaining that critical infrastructure like power plants rely on floating point. “We need both high precision and trust in many different use cases.”

Small errors hidden in lines of code can be almost impossible to find but can build up to cause major problems. Samuel is one of the few who specialize in floating point. He understands the principles and analyzes the underlying mathematics to find the flaws. It is a manual, painstaking process, but one that has a very modern demand.

The computers that NASA internally uses to control satellites and spacecraft also use floating point. NASA researchers developed a tool called PRECiSA — Program Round-off Error Certifier via Static Analysis — that can automatically prove floating-point problems do not exist, saving time and removing the potential for human error.

Samuel worked with NASA coders to check their systems.

“We have a lot of old software we don’t have the time to rewrite from scratch to use PRECiSA,” he said. “We’ve been researching how to automatically translate the floating-point parts of these codebases to work with PRECiSA so we can use all the great work being done by NASA.”

The process goes line by line through the computer code, finding the weak points. This makes it easy to identify and fix any flaws and modernize the software. The process Samuel developed, funded under a Laboratory Directed Research and Development project, was part of the NASA collaboration that began almost three years ago.

“Sandia has a couple things going for it to advance this research area,” Samuel said. “We have a fantastic workforce and a long legacy of engineering systems that are safe, secure and reliable, especially where safety is the most important: nuclear weapons.”

Samuel adds that the importance of fixing floating point goes beyond this collaboration.

“This work has many applications such as GPS navigation or sensors in our critical infrastructure,” he said. “Floating point is everywhere, and we can’t check it all by hand.”

Recent articles by Michael Ellis Langley

Top