Computer Program Safety Without the Slowdown
Have you ever noticed that the safer a computer program happens to be, the slower it tends to be, too? Dr. James Tuck of North Carolina State University and his team noticed, as well, and they’ve made it their goal to create software that remedies slowdown without compromising safety. “These safety features — or meta-functions — can slow a program down so much that software developers will often leave them out entirely,” says Dr. Tuck. “Leaving out those features can mean that you don’t identify a problem as soon as you could or should, which can be important — particularly if it’s a problem that puts your system at risk from attack.”
The researchers discovered that badly implemented safety features embedded directly into a program’s overall code could slow down a system by as much as 1000 percent (or more)! Under these circumstances, it’s easy to see how some programmers might be tempted to skimp on process-hogging security protocols to streamline their programs; imagine how useful and rewarding it would be to build an airplane that can’t fly. (For the record, I’m not an anti-penguite. Mother Nature’s got her own ideas about efficiency to which I don’t pretend to be privy. She gets a free pass to invent freaks graceful, non-soaring [yet feathered] friends.) What Dr. Tuck and his team have managed to do is create a program that utilizes the advantages of multi-core systems and separates the safety features from the rest of the program they’re protecting and runs them on a core apart from it.

cc licensed ( BY ND ) flickr photo shared by highwaycharlie
“To give you some idea of the problem, we saw the application we were testing being slowed down by approximately 580 percent,” Dr. Tuck says. “Utilizing our software tool, we were able to incorporate safety meta-functions, while only slowing the program down by approximately 25 percent. That’s a huge difference.”
Multi-core solutions to this problem have been tried before, but the difference with this approach is that it doesn’t involve hours of manual reprogramming to work with existing programs (as previous attempts have required). It’s actually a plug-in for the GNU Compiler Collection (GCC), so open source geeks reading this will probably already be dreaming up applications for this kind of software once it’s released to the public.
The research, summed up in the paper Automatic Parallelization of Fine-Grained Meta-Functions on a Chip Multiprocessor, will be presented at the International Symposium on Code Generation and Optimization in Chamonix, France on April 5th.




