By clicking “Check Writers’ Offers”, you agree to our terms of service and privacy policy. We’ll occasionally send you promo and account related email
No need to pay just yet!
About this sample
About this sample
Words: 1503 |
Pages: 3|
8 min read
Published: Apr 2, 2020
Words: 1503|Pages: 3|8 min read
Published: Apr 2, 2020
While modern parallel computing systems provide high performance resources, utilizing them to the highest extent requires advanced programming expertise. Programming for parallel computing systems is much more difficult than programming for sequential systems. OpenMP is an extension of C++ programming language that enables to express parallelism using compiler directives. While OpenMP alleviates parallel programming by reducing the lines of code that the programmer needs to write, deciding how and when to use these compiler directives is up to the programmer. Cognitive computing has shown impressive results in various domains, such as health or marketing. In this paper, we describe the use of IBM Watson cognitive system for education of novice parallel programmers. Using the dialogue service of the IBM Watson we have developed a solution that assists the programmer in avoiding common OpenMP mistakes. To evaluate the approach we have conducted a survey with a number of novice parallel programmers at the Linnaeus University, and obtained encouraging results with respect to usefulness of the approach.
The modern parallel computing systems provide capabilities to solve complex computational and engineering problems faster. Programming for parallel computing systems is much more complex than programming for sequential processors, because it requires knowledge of the underlying parallel architecture and the programming models libraries (that are often device specific), and consideration of large amount of device specific configuration parameters (such as, numbers of cores, core speed, memory hierarchy level, cache, run-time system, etc. ).
In the simplest sense, parallel computing is the simultaneous use of multiple compute resources to solve a computational problem:
The computational problem should be able to:
Cognitive systems are on the verge of becoming a milestone due to their ability to process natural language processing (NLP). This enables a whole new level of interaction between humans and computing systems, which may help people make better decisions. IBM Watson is a cognitive system that uses the natural language to receive and answer questions.
Researchers have developed an application based on the IBM Watson services that enables a dialog-based interaction with programmers during program development for parallel programming.
Our application is based on the IBM Watson Dialog service to provide communication means between the user and the system through natural language processing with the aim to avoid common OpenMP (Open Multi-Processing) mistakes. OpenMP (Open Multi-Processing) is an Application Program Interface (API) that comprises a set of compiler directives, variables and library functions to program parallel computing systems. OpenMP is implemented as language extension of C, C++ and Fortran for shared-memory parallel computing systems, and recent versions of OpenMP support also the heterogeneous computing systems. The users interact with our application using an interface, which allows them to write questions in text form. The user that will presumably be a parallel programmer will use the interface to ask a question related to parallel programming. The interface sends the user input to our application, which is connected to the Watson Dialog Service. The dialog service analyzes the questions and gathers information that it needs to provide the most suitable answer for the user. To extend the functionality of our application, one can connect the application to additional services such as speech-to-text services. The application is connected to a back-end system that is responsible to display the answer of the question to the user. At this point, the application has the answer for the user. There are two scenarios, (1) the question has been understood and application provides a proper answer to the user, and (2) the question has not been understood and a default message saying “I am sorry; I did not understand your question. Please try another question. ” is provided to the user.
The dialog service provides means for communication between computers and the users in a question-and-answer fashion through natural language. To use this service, first the training data should be gathered and prepared by an expert. The gathered data should be translated into dialog models that are part of the dialog flow design process. For instance, the common OpenMP mistake where programmers redefine the number of threads within a parallel loop, will be translated in a dialog fashion where the input would be like: Can I change a variable inside a pragma omp loop? The push live to users enables the connection of the dialog service with the user interface, and monitoring the conversations. The last component enables dynamic learning from real interactions by adjusting the existing content and adding new one based on the user activity.
To evaluate the usefulness of our approach IBM conducted an anonymous survey within the Linnaeus University campus. The aim of this survey is to investigate whether such interactive tools would help novice programmers solve parallel programming problems as well as identify ways to improve our tool. To measure the performance quality of our tool we have used the Likert scale system to allow respondents to rank the quality of our tool, where participants could choose answers between one and 5 stars, where One star stands for Strongly disagree, Two stars stands for Somewhat disagree, Three stars means Neither agree nor disagree, Four stars means Somewhat agree, and Five stars stands for Strongly agree. The results of the survey are depicted in the figure. The x-axis indicates the stars, whereas the y-axis indicates the collected points 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 papers as an answer. We may observe that most of the questions received more than three stars. For instance, when asked whether our tool is more helpful than using search engines or paper-based resources, 3 participants neither agreed nor disagreed, three other participants agreed to some extent, and four of them strongly agreed. When asked whether the answers retrieved from our tool were accurate, one of the participants disagreed to some extent, two participant were neutral, two participants agreed to some extent, and three of them strongly agreed. Six of the participants strongly agreed, one agreed to some extent and another one disagreed to some extent that our tool is useful because it can respond to questions asked in different languages. Two participants disagreed to some extent and two others agreed to some extent, another one was neutral, and three others strongly agreed that enhancing our tool with the ability to retrieve paper as an answer would be useful.
The results show that the application would be successful among students as they would like to have an application that can help them in parallel programming by using natural language. In the first question 87. 5% of the total score corresponds to 4 stars or more, which means that the respondents highly agree with the usefulness of the application. In the second question 62. 5% of the total score corresponds to 4 stars or more, which means that the respondents highly agree with the usefulness of the application. In the third question 87. 5% of the total participants appreciated having multi-language support in this application. In the last question, 62. 5% of the users think that enhancing our tool with the ability to retrieve papers as answers is useful.
Cognitive systems, like IBM Watson, are able to learn through user’s input and be taught by experts. An application that uses this technology can become a milestone in the field in which it is being used due to the fact that a community can be created to improve applications, share new ideas and discover features that no one has thought of before. The usefulness of such systems has been demonstrated in various fields, such as in health care, where doctors can treat their patients better owing to previous experiences with common diseases. Researchers have used the IBM Watson dialog service to enable the interaction between the user and the system in a dialog-fashion way using natural language. Our application is trained to respond to questions related to common mistakes that novice programmers do when using OpenMP, which helps them avoid such mistakes, write code that produces the correct result and runs faster. Furthermore, such systems may reduce the time investment required to learn parallel programming. Since Watson can learn from the users collected input, the application can be improved as it is used. The proposed tool can answer questions that a user may ask, but it will neither generate code nor find code errors. Future research will address the extension of our solution with additional IBM Watson services that enable automatic input of data from existing sources of parallel programming knowledge.
Browse our vast selection of original essay samples, each expertly formatted and styled