Topic > Report on Papa: A Parallel Programming Assistant Powered by IBM

IndexIntroductionWhat is parallel computing?DesignEvaluationConclusionWhile modern parallel computing systems provide high-performance resources, using them to their fullest requires advanced programming skills. Programming for parallel computer systems is much more difficult than programming for sequential systems. OpenMP is an extension to the C++ programming language that allows you to express parallelism using compiler directives. While OpenMP alleviates parallel programming by reducing the lines of code the programmer must write, deciding how and when to use these compiler directives is up to the programmer. Cognitive computing has shown impressive results in various sectors, such as health or marketing. In this article we describe the use of the IBM Watson cognitive system for training novice parallel programmers. Using the IBM Watson dialog service we have developed a solution that helps the programmer avoid common OpenMP errors. To evaluate the approach we conducted a survey with a number of novice parallel programmers at Linnaeus University and obtained encouraging results regarding the usefulness of the approach. Say no to plagiarism. Get a tailor-made essay on "Why Violent Video Games Shouldn't Be Banned"? Get an Original Essay Introduction Modern parallel computing systems provide capabilities to solve complex computational and engineering problems more quickly. Programming for parallel processing systems is much more complex than programming for sequential processors, because it requires knowledge of the underlying parallel architecture and programming model libraries (which are often device specific) and consideration of a large amount of parameters device-specific configuration settings (such as , number of cores, core speed, memory hierarchy level, cache, runtime system, etc.). What is parallel computing? In the simplest sense, parallel computing is the simultaneous use of multiple computing resources to solve a computational problem:A The problem is divided into discrete parts that can be solved simultaneously. Each part is further broken down into a series of instructions. The instructions of each part are executed simultaneously on different processors. An overall control/coordination mechanism is employed. The computational problem should be able to: be divided into discrete pieces of work that can be solved simultaneously; execute multiple program statements at any time; be solved in less time with more computing resources than with a single computing resource. Cognitive systems are on the verge of becoming a milestone with their ability to process natural language processing (NLP). This enables a whole new level of interaction between humans and computer systems, which can help people make better decisions. IBM Watson is a cognitive system that uses natural language to receive and respond to questions. Researchers have developed an application based on IBM Watson services that enables dialogue-based interaction with programmers during program development for parallel programming .DesignOur application is based on the IBM Watson Dialog Service to provide means of communication between the user and the system through natural language processing with the aim of avoiding common OpenMP (Open Multi-Processing) errors. OpenMP (Open Multi-Processing) is an API (Application Program Interface) that includes a set of compiler directives, variables and functionsLibrary for programming parallel computer systems. OpenMP is implemented as an extension of C, C++, and Fortran for shared-memory parallel computing systems, and recent versions of OpenMP also support heterogeneous computing systems. Users interact with our application using an interface that allows them to write questions in text form. The user who will presumably be a parallel programmer will use the interface to ask a question related to parallel programming. The interface sends user input to our application, which is connected to the Watson Dialog Service. The dialogue service analyzes the questions and collects the information necessary to provide the most suitable answer for the user. To extend the functionality of our application, you can connect the application to additional services such as text-to-speech services. The application is connected to a back-end system that is responsible for displaying the answer to the question to the user. At this point, the application has the answer for the user. There are two scenarios, (1) the question was understood and the application provides an adequate answer to the user and (2) the question was not understood and a default message is displayed that says “I'm sorry; I didn't understand your question. Please try another question. " is provided to the user. The dialogue service provides means for communication between computers and users in a question-and-answer manner through natural language. To use this service, training data must first be collected and prepared by an expert The collected data should be translated into dialog models that are part of the dialog flow design process. For example, the common OpenMP mistake where programmers override the number of threads within a parallel loop, will. translated into a dialogue where the input would be how: can I change a variable inside a pragma omp loop? Live push to users allows connection of dialogue service with UI and monitoring of conversations allows dynamic learning from real interactions adapting existing content and adding new content based on user activity. Evaluation To evaluate the usefulness of our approach, IBM conducted an anonymous survey on the Linnaeus University campus. The purpose of this survey is to investigate whether such interactive tools could help novice programmers solve parallel programming problems and identify ways to improve our tool. To measure the quality of performance of our tool we used the Likert scale system to allow respondents to rank the quality of our tool, where participants could choose responses between one and 5 stars, where One star stands for Strongly Disagree, Two stars stands for Strongly Disagree, Three stars means Neither agree nor disagree, Four stars means Strongly agree and Five stars means Strongly agree. The results of the investigation are represented in the figure. The x-axis indicates the stars, while the y-axis indicates the points collected such that if question 4 received 3 points for 5 stars it means that 3 participants strongly agreed that it would be useful to enhance our tool with the ability to retrieve documents as a response. We can observe that most of the questions received more than three stars. For example, when asked whether our tool was more useful than using search engines or paper resources, 3 participants neither agreed nor disagreed, another three participants agreed to some extent, and four of them strongly agreed. When is it.