Skipping Steps and Verification to Improve Programs
Category: Science & TechnologyPosted: May 23, 2012 06:10AM
Author: Guest_Jim_*
Researchers at several institutions have been working towards faster and more efficient computer components by allowing for some error in the operations. A computer puts so much effort into its high accuracy that it has to go slower and take more power than if it let some mistakes slip by. Understandable, many computer scientists, engineers, and programmers do not like this idea because they want to know that every time they execute an operation, its output is correct. Researchers at MIT are working to reassure them while also offering a new way to cut corners for speed and efficiency.
The inexact method the researchers have developed is called loop perforation. Loops are pretty common constructs in a program that simply repeat an operation until some condition is met. By perforating or skipping some of the iterations in the loop. This, like other inexact methods, works very well with nondeterministic operations, which means they do not need to produce a single, specific answer. Basically, if the output itself does not have to be exactly the same every time, like the order of the top items in a search, you can be inexact without really sacrificing anything, but gaining a great deal of performance.
To get developers to accept this strategy, the researchers are using verification to prove it works. Verification just means that a program or piece of hardware does exactly what it is supposed to do. Traditionally this has only been used in academia, hardware design, and the development of critical software, because it is very labor intensive. Automated tools for verifying software are becoming more common and more powerful though, so some commercial companies are starting to use them on their products. What the researchers intend to do is use verification methods to demonstrate that inexact methods can be used without fear of compromising a system. The verification process can be used to ensure the errors are kept within a certain distance of the exact answer, or to show that one value can be inexact without compromising other, more important values. Returning to the search engine example above, the order of the found items can be inexact without allowing erroneous entries to appear in the list.
Ultimately, the choice to use inexact methods of any kind comes down to the developers. The MIT researchers are just trying to show you can be inexact without having critical errors, while also offering a new way to be inexact.

Facebook
Twitter
YouTube
RSS Feeds