The design of a parallel debugger is indispensable and yet still challenging in developing tools for parallel environments. This paper focuses on the design and implementation of an actual parallel debugger, which has...
详细信息
ISBN:
(纸本)9780769535708
The design of a parallel debugger is indispensable and yet still challenging in developing tools for parallel environments. This paper focuses on the design and implementation of an actual parallel debugger, which has been realized on clusters is of a typical browser/server structure A friendly user interface is provided, which visualizes the tedious process of debugging. The user interfaces, as clients, can be distributed far away from the server, which makes. it easy for the client end to execute programs on the server machine. the task management module on debuggine nodes, receiving debugging commands and sending results
Beowulf systems, and other proprietary approaches, are placing systems with four or more CPUs in the hands of many researchers and commercial users. In the near future, systems with hundreds of CPUs will become common...
详细信息
Beowulf systems, and other proprietary approaches, are placing systems with four or more CPUs in the hands of many researchers and commercial users. In the near future, systems with hundreds of CPUs will become commonly available, with some programmers dealing with tens of thousands of CPUs. The debugging methods used on these systems are a combination of the traditional methods used for debugging single processes and ad-hoc methods to help the user cope with the multitudes of processes. Programmers are usually familiar with a single-process debugger and would like to use it (with minimal user-visible extensions) to debug their distributed program. We present a set of modifications to a traditional debugger that makes it capable of debugging applications running on thousands of processes. Our parallel debugger is composed of individual fully functional debuggers connected with an n-nary aggregating network. This permits us to present to users the results from each debugger at the same time in an aggregated fashion. Users get a global view of the application and can easily see if a given parameter has a different value from either what they expect it to be or from the other processes. Users can then focus on the process sets of interest and investigate the problem. One challenge when debugging thousands of processes is to deal with the amount of output coining from all the debuggers. We present methods to aggregate the overwhelming amount of output from the debuggers into a more manageable subset, which is presented to the user without losing information. Experiments show that the debugger is scalable to thousands of processors. The startup mechanism, as well as users' command response time scale well. The conclusions presented regarding the architecture and the new parallel debugger's scalability are not specific to the serial debugger we are using in our example implementation. (C) 2004 Elsevier Inc. All rights reserved.
Code parallelization using OpenMP for shared memory systems is relatively easier than using message passing for distributed memory systems. Despite this, it is still a challenge to use OpenMP to parallelize applicatio...
详细信息
Code parallelization using OpenMP for shared memory systems is relatively easier than using message passing for distributed memory systems. Despite this, it is still a challenge to use OpenMP to parallelize application codes in a way that yields effective scalable performance when executed on a shared memory parallel system. We describe an environment that will assist the programmer in the various tasks of code parallelization and this is achieved in a greatly reduced time frame and level of skill required. The parallelization. environment includes a number of tools that address the main tasks of parallelism detection, OpenMP source code generation, debugging and optimization. These tools include a high quality, fully interprocedural dependence analysis with user interaction capabilities to facilitate the generation of efficient parallel code, an automatic relative debugging tool to identify erroneous user decisions in that interaction and also performance profiling to identify bottlenecks. Finally, experiences of parallelizing some NASA application codes are presented to illustrate some of the benefits of using the evolving environment. Published by Elsevier B.V.
Contemporary parallel debuggers allow users to control more than one processing thread while supporting the same examination and visualisation operations of that of sequential debuggers. This approach restricts the us...
详细信息
Contemporary parallel debuggers allow users to control more than one processing thread while supporting the same examination and visualisation operations of that of sequential debuggers. This approach restricts the use of parallel debuggers when it comes to large scale scientific applications run across hundreds of thousands compute cores. First, manually observing the runtime data to detect error becomes impractical because the data is too big. Second, performing expensive but useful debugging operations becomes infeasible as the computational codes become more complex, involving larger data structures, and as the machines become larger. This study explores the idea of a data-centric debugging approach, which could be used to make parallel debuggers more powerful. It discusses the use of ad hoc debug-time assertions that allow a user to reason about the state of a parallel computation. These assertions support the verification and validation of program state at runtime as a whole rather than focusing on that of only a single process state. Furthermore, the debugger's performance can be improved by exploiting the underlying parallel platform because the available compute cores can execute parallel debugging functions, while a program is idling at a breakpoint. We demonstrate the system with several case studies and evaluate the performance of the tool on a 20000 cores Cray XE6. Copyright (c) 2013 John Wiley & Sons, Ltd.
Parallaxis-III is an architecture-independent data parallel programming language based on Modula-2. It has been designed for teaching data parallel concepts and is in use at a large number of institutions. Compilers e...
详细信息
Parallaxis-III is an architecture-independent data parallel programming language based on Modula-2. It has been designed for teaching data parallel concepts and is in use at a large number of institutions. Compilers exist for data parallel systems, as well as for a sequential simulation system. A data parallel graphics debugger allows efficient source level analysis for parallel programs.
Cluster of Workstations is becoming an important kind of parallel computing platform. Two issues are essential for promoting the popularization of COW: high-performance communication mechanism and powerful programming...
详细信息
ISBN:
(纸本)0818682596
Cluster of Workstations is becoming an important kind of parallel computing platform. Two issues are essential for promoting the popularization of COW: high-performance communication mechanism and powerful programming environment. In this paper Mie present our research work on COW, which aims at giving a practical solution to the above issues. In order to build a high performance communication system, we design a reduced communication protocol in addition to making use of high-speed network hardware. Based on PVM, we implement a practical programming environment which include parallel compiling systems, parallel debugger, load balancing tool and execution fault recovery tool. Some performance results are given in this paper.
暂无评论