An intelligent digital assistant will lead to smarter programming

IBM's Watson and Apple's Siri are two examples of computing systems that help us analyse information and find answers. Scientists at Linnaeus University have developed a system that similarly helps programmers create program code that better utilizes the resources of today's computers and mobiles.

Modern IT gadgets – computers, tablets, mobile phones – consist of processing units that can process multiple tasks in parallel. However, most applications are designed to run tasks sequentially, leaving most of the available resources idle. Utilizing these resources to the highest extent requires advanced expertise in so-called parallel programming. Mastering this is much more difficult and such programmers are sometimes referred to as ninja programmers.

"Several models for parallel programming have been developed. Yet, many novices make common mistakes that may lead to performance degradation or unexpected program behaviour. That's why we are developing a cognitive-based digital assistant as an aid," says Sabri Pllana, leader of the High-Performance Computing Center and senior lecturer in computer science at Linnaeus University.

Cognition is a collective term for processes that involve i.a. knowledge, thinking and information. Cognitive computer systems are on the verge of a breakthrough due to their ability to process natural language. This will enable a whole new level of interaction between humans and computer systems, which may help us make better decisions.

Perhaps the most well-known cognitive computer system is IBM's Watson, who defeated two former winners of the television quiz Jeopardy! in 2011. Apple's Siri and Google Now are other examples of systems that can answer questions about health, calendars, sports and other.

"In a way similar to Siri's, our Parallel Programming Assistant (PPA) can answer questions related to parallel programming. The PPA can communicate and interact in real time through text and voice. The novice parallel programmer may ask questions, and the PPA will search in its knowledge database for an appropriate answer," says Sabri Pllana.

The PPA developed by the research group is evaluated using students who study parallel programming at Linnaeus University. Preliminary results indicate that the assistant offers valuable answers that would be helpful to novices and also that these are willing to use such an interactive digital assistant as they develop their applications. The researchers therefore believe that the PPA can be used as an educational resource in a basic course in parallel programming – and that in the future, you don't have to be a ninja to exploit the possibilities of parallel programming.

Explore further: Tackling the fastest and most powerful computing systems on the planet

More information: Adrián Calvo Chozas et al. Using Cognitive Computing for Learning Parallel Programming: An IBM Watson Solution, Procedia Computer Science (2017). DOI: 10.1016/j.procs.2017.05.187