-
Essay / Papa Report: A Parallel Programming Assistant Powered by IBM
Table of ContentsIntroductionWhat is Parallel Computing?DesignEvaluationConclusionAlthough modern parallel computing systems provide high-performance resources, their maximum utilization requires expertise in advanced programming. Programming for parallel computer systems is much more difficult than programming for sequential systems. OpenMP is an extension of the C++ programming language that allows parallelism to be expressed using compiler directives. Although OpenMP makes parallel programming easier by reducing the lines of code the programmer must write, it is up to the programmer to decide how and when to use these compiler directives. Cognitive computing has shown impressive results in various fields, 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 of 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 Should Not Be Banned”?Get Original EssayIntroductionModern parallel computing systems provide capabilities to solve complex computing and engineering problems more quickly. Programming for parallel computer 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), as well as taking into account a large number of device-specific configuration parameters (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 separate parts that can be solved simultaneously. Each part is then broken down into a series of instructions. The instructions in each part execute simultaneously on different processors. A global control/coordination mechanism is used. The IT problem must be able to: Be divided into separate work items that can be solved simultaneously; Execute multiple program instructions at any time; Be solved in less time with multiple computing resources than with a single computing resource. Cognitive systems are poised to become a milestone due to their ability to handle 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 answer questions. The researchers developed an application based on IBM Watson services that enables dialog-based interaction with programmers during program development for parallel programming. Design Our application is based on the IBM Watson Dialog Service to provide means of communication between the user and the system via natural language processing with the aim of avoiding OpenMP (Open Multi-Processing) errorscommon. OpenMP (Open Multi-Processing) is an application program interface (API) that includes a set of compiler directives, variables, and library functions for programming parallel computer systems. OpenMP is implemented as an extension of the C, C++, and Fortran language 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 is likely to be a parallel programmer will use the interface to ask a question relating to parallel programming. The interface sends user input to our application, which is connected to the Watson Dialog Service. The dialog service analyzes the questions and gathers the information it needs to provide the most suitable answer for the user. To extend the functionality of our application, we can connect the application to additional services such as text-to-speech services. The application is connected to a back-end system responsible for displaying the answer to the question to the user. At this point, the app has the answer for the user. There are two scenarios: (1) the question was understood and the application provides an appropriate response to the user, and (2) the question was not understood and a default message saying “I'm sorry; I didn't understand your question. Please try another question. " is provided to the user. The dialog service provides means of communication between computers and users in the form of questions and answers via natural language. To use this service, training data must first be collected and prepared by an expert The collected data must be translated into dialog models that are part of the dialog flow design process. For example, the common OpenMP error where programmers redefine the number of threads in a parallel loop will be translated under. dialog form where the input would look like: Can I modify a variable in a pragma omp loop? The live push to users allows the dialog service to connect with the UI and track conversations. enables dynamic learning from real interactions by adjusting existing content and adding new content based on user activity. EvaluationTo evaluate the usefulness of our approach, IBM conducted an anonymous survey on the Linnaeus University campus. The purpose of this investigation is to determine whether such interactive tools could help beginning programmers solve parallel programming problems as well as identify ways to improve our tool. To measure the quality of our tool's performance, we used the Likert scale system to allow respondents to rank the quality of our tool, where participants could choose answers between 1 and 5 stars, where one star means Not Strongly Agree, Two Stars means Somewhat Disagree, Three Stars means Neither Agree nor Disagree, Four Stars means Somewhat Agree, and Five Stars means Strongly Agree. The results of the survey are shown in the figure. The x-axis indicates stars, while the y-axis indicates 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 enrich our tool with the possibility of retrieving articles. as an answer. It can be seen that most questions received more than three stars. For example, when we have.