Increased funding for two of UBC’s outstanding computer engineers

Two of UBC’s computer engineers, Profs. Tor Aamodt and Ali Mesbah recently received Discovery Accelerator Supplements (DAS) through the Natural Sciences and Engineering Research Council (NSERC). The additional resources are provided by NSERC to accelerate and maximize the impact of their research.

Each year, NSERC identifies superior research programs among Discovery Grant holders. The DAS Program supports research rated highly in terms of originality and innovation and scientists who show strong potential to become international leaders in their field. These additional resources are provided to help a researcher with an established research program capitalize on an opportunity, for example, a recent research breakthrough, a paradigm shift, or a new strategy to tackle a scientific problem or research question.

Bridging the inevitable limit of Moore’s Law with specialized hardware

Professor Aamodt is working on ways to get around the wall computer design innovations could face once Moore’s Law hits its limit. For 50 years, computing systems have benefited from exponentially increasing performance per dollar created by the diminishing size of transistors. The first microprocessor was fabricated using 10-micrometer transistors in 1971 while recent designs have been manufactured using 14-nanometer transistors. The five-orders of magnitude increase in transistor density combined with three orders of magnitude increase in clock frequency has brought computing from performing simple business calculations to supporting machine learning algorithms that rival humans in complexity. Computer engineering needs to continue to improve performance to bring the potential benefits of machine learning to the challenges we face in sustainability and medicine.

However, the rate transistors are shrinking is slowing down. In fact, transistor threshold voltage scaling essentially stopped a decade ago, resulting in stagnant clock frequencies. While alternative technologies like quantum computing could provide excellent long-term solutions, these will take decades to fully develop.

One way computers can continue to improve by orders of magnitude is by exploiting specialized hardware. Google’s Tensor Processing Unit is one example of specialized hardware that, in this case, can make truly huge datasets manageable. But there is a tradeoff. This approach comes at the expense of reduced flexibility and/or difficult programming models.

Professor Aamodt is working to find ways to continue the orders-of-magnitude improvements in computing we have seen in the past using specialized hardware. His research explores both software and hardware approaches to improve the tradeoff between ease of software development and increasing computing capability with specialized hardware. His research will help Canadian technology companies find the best structure for future computing systems so that the currently robust software industry remains viable past the end of Moore’s Law.

Improving software by improving software testing

Software developers can spend 50% of their time looking for, and fixing bugs. Prof. Mesbah is improving the way software is tested to reduce the amount of time developers have to spend on debugging and making sure they find the bugs that are the most malevolent.

Software developers continuously change code to add new features, improve the product, or fix known bugs. To make sure the code base remains healthy, test cases are written. These tests ensure previously working functionality still works, as the software evolves. Test cases are meant to form the first line of defence against the introduction of faults in a software product, especially when retesting modified code. The more software developers test the fewer bugs there will be in the code. Inadequate testing has been reported to cost the US economy $60 billion annually.

Assessing the quality of a test suite is crucial to ensuring software systems are correctly implemented, which can help to decrease the overall development and maintenance cost.

Although the quality of test code is as important as production code, unlike production code, the quality of tests written by developers has not received much attention from the research community. Professor Mesbah is analyzing the quality of tests in depth. The results of his work will help both software testers and developers.

Test quality can be considered from a number of different perspectives. Professor Mesbah and his team are proceeding in a number of ways. First, they are testing the tests. Test code is itself susceptible to bugs. In 2015 this research team conducted the first empirical study of bugs in test code and found 50% of projects in their study had errors in the test code. Most of these errors produced false alarms, not a devastating situation in test code. But they found 9% of test code contained what they dubbed, “silent horrors” or failures to find incorrect production code. We propose to study the correctness, adequacy, and effectiveness of test cases, which directly impact the overall test suite quality.

As they move forward, Professor Mesbah and his team will be studying the adequacy and effectiveness of software testing and developing new solutions for increasing the quality of testing. Professor Mesbah is optimistic about the possibilities for better visualization techniques for software developers and ways for automating aspects of the testing process. With improved testing, the quality of the production code can be improved and the software can be released with more confidence to end-users.

Most of the software tools developed by Prof. Mesbah and many other ECE software engineers is open source and can be found at the SALT Lab.

Find out more:

Recent publications: Tor Aamodt, Ali Mesbah

The Discovery Accelerator Supplements Program

Image credit: Top image By Wgsimon (Own work) [CC BY-SA 3.0 ], via Wikimedia Commons