CORE: Visualization tool for fault localization in concurrent programs
|
|
|
- Joshua Ethan Shelton
- 9 years ago
- Views:
Transcription
1 CORE: Visualization tool for fault localization in concurrent programs Deepal Jayasinghe College of Computing Georgia Institute of Technology Pengcheng Xiong College of Computing Georgia Institute of Technology 1. INTRODUCTION With the widespread deployment of parallel systems based on multi-core processors, the increasing popularity of concurrent programming (for both the client side and on the server side) has brought the issue of concurrent defect analysis to the forefront [1].This motivates a large body of research that seeks to solve concurrency bugs as well as to improve the quality of multi-core, multi-threaded programs, both in academic circles and in industry. Concurrency bugs can be categorized in to a number of different types, and the main categories discussed in the literature are atomicity violations, ordering violations, locking discipline violations and data races. Concurrency bug is difficult to find due to non-deterministic behavior and huge interleaving space Ronsee et al. [2] developed a system to detect data races and provides record/replay capability. Lu et al. (AVIO)[3] and Lucia et al. (Atom-Aid)[4] detect atomicity violations using heuristics based on identifying unserializable interleavings. Savage et al. developed Eraser [5] tool to detect locking discipline violations using its lock-set algorithm. Lu et al.[6] presented a classes of bugs such as ordering violations and bugs involving multiple variables. Park et al. [7] present a new dynamic fault-localization technique called Falcon that can pinpoint buggy data-access patterns in multi-threaded concurrent programs. Their technique monitors memory-access sequences among threads, detects data-access patterns associated with a program s pass/fail results, and reports data-access patterns with suspiciousness scores. Their approach is based on Soot [8] framework for instrumentation and program analysis. Instead of running the program with multiple test cases, in their approach they run the program with same test case multiple times. This helps to localize and analyze buggy code in a concurrent program. The whole methodology is shown in Fig. 1. Firstly, denote a memory access to a shared variable with Figure 1: Instrumentation and Visualization of Multi-thread program four pieces of information: (1) the memory access type as read (R) or write (W); (2) the thread that executes it, (3) the statement containing the access, and (4) the shared memory variable. And it can be denoted as T ype thread ;statement(var). For example, R 1; S 2 (x) indicates a read access to shared variable x in statement S 2 of thread 1. Secondly, instrument the program and get the memory access to a shared variable. Count the total number of pass and failed patterns. Finally, use online pattern identification and pattern suspiciousness ranking to discover the cause pattern for the bug. For example, W1;1-W2;4-R1;3 is the cause for the order violation of shared variable X. However, the results are presented in plain text format which is hard to read and analyze for programmers. Thus, using these tools, it is still difficult for developers to understand fault-localization in multi-threaded concurrent programs. This paper extends Falcon approach and proposes a virtualization tool which can not only show the order violation and atomicity violation results, but also relate the violations with source code. The contribution of this paper is twofold. The main contribution is a new visualization technique for supporting the understanding of fault-localization technique to pinpoint buggy data-access patterns in multi-threaded concurrent programs. Another important contribution is to visualize those findings in more descriptive manner so that programmers and testers can easily understand the issues in the program. Our tool will help to bridge the gap between issues identification and visualization. The rest of the paper is organized as follows. In the next
2 section, first, we given a motivating example with possible concurrency violations, then we use that example to show what are order violation and atomicity violation and what information we can collect when we instrument the program. In section 3, we state our principles to design the visualization. We show how we implement the visualization in section 4. Finally, we make conclusion in section BACKGROUND In this section, we firstly give the definition of two kinds of concurrency violations, i.e., order violation and atomicity violation. Then we present an example for instrumentation information that we use throughout the paper. 2.1 A motivating example Assume we have a class called Account as shown below (part of the program). public class Account { synchronized void depsite(double money){ amount+=money; synchronized void withdraw(double money){ amount-=money; synchronized void transfer(account ac,double mn){ amount-=mn; ac.amount+=mn; //no aquire for the other lock!! //+= might cause problem --it is not atomic. And further assume that we have a class called ManageAccount as shown below (part of the program), which extends Thread class and override run method to invoke the methods defined in Account. public class ManageAccount extends Thread{ public void run(){ account.depsite(300); account.withdraw(100); //transfering to the next account Account acc=accounts[(i+1)%num]; account.transfer(acc,99); After initialization of several accounts, we will first deposit 300 to each account, withdraw 100 from each account and finally transfer 99 to the next account. Although each method for account has been labeled synchronized, it still suffers from concurrency violations. For example, if one thread for an account is trying to deposit 300 to this account while the other thread for another account is trying to transfer 99 to this account, there may be a concurrency violation. Falcon tool helps to localize fault in concurrent programs as in our example. It uses the Soot Analysis Framework for instrumentation. It determines which variables might be shared variables among multiple threads by a static thread escape analysis [9], and instruments the program to observe and record accesses at runtime. It also instruments methods, in order to provide detailed stack-trace information in subsequent bug analysis. It also provides an option to inject artificial delays that can increase the number of interleavings that occur, thereby increasing the chance of eliciting a concurrency bugs. It also computes suspiciousness values for each pattern, and reports the list of ranked suspicious patterns in a text format 2.2 Order violation Order violation is defined as: the desired order between two memory accesses is flipped. An order violation occurs when a conflicting interleaving pattern appears that leads to unintended program behavior. The following is a part of execution status report generated by Falcon for execution information of order violation. It contains the following information. <order> <pass>9</pass> <fail>1</fail> <susp>10</susp> <stack1>10:manageaccount.java_31 4</stack1> <stack2>10:manageaccount.java_31 4</stack2> <var1>6</var1> <var2>8</var2> </order> Element <pass>9</pass> <fail>1</fail> <stack1>... </stack1> <stack2>...</stack2> Description We tested 10 times. There are 9 times when the test can pass. There is 1 time when the can fails There is 1 time when the Stack trace for variable 1. Set of methods which were executed before coming to the current line. The sequence is method 10 and then method 4. Stack trace for variable 2. The sequence is method 10 and then method 4. Table 1: Execution information for order violation The following is an XML representation of instrumentation information which Falcon has used for a given program. It contains the following information <methodinfo> <mid>4</mid> <msig><contest.account.account: void transfer(contest.account.account,double)> </msig> </methodinfo> <variableinfo> <vid>6</vid> <vtype>wf</vtype> <vsig>this.<contest.account.account:
3 double amount></vsig> <vfile>account.java</vfile> <vline>24</vline> </variableinfo> Element Description <mid>4</mid> Method 4 <msig>... </msig> Method 4 is void transfer <vid>6 </vid> Variable 6 <vsig>...</vsig> Variable 6 is double amount at line 24 <vline>24</vline> Line 24 is the code amount- =mn; Table 2: Execution information for Atomocity violation By combining the execution information and instrumentation information, we can find out why the order violation happens: 2.3 Atomicity violation An atomic violation is defined as the desired atomicity among multiple memory accesses is violated. Atomicity is often referred to as serializability, which is satisfied if the resulting state of data in a concurrent execution is the same as that of a serialized execution. The following is a part of execution status report generated by Falcon for execution information of atomicity violation. It contains the following information <atomicity> <pass>0</pass> <fail>1</fail> <susp>100</susp> <stack1>6:main.java_59 3</stack1> <stack2>10:manageaccount.java_28 2</stack2> <var1>4</var1> <var2>2</var2> <stack3>6</stack3> <var3>27</var3> </atomicity> The execution information for atomicity violation is similar to that for order violation except that there is new element called stack3 and the first and the third stacks are with the same thread and the second stack is with a different thread. The instrumentation information of for atomicity violation is the same as that for order violation. By combining the execution information and instrumentation information, we can find out why the atomicity violation happens: 3. CONTRIBUTION AND DESCRIPTION In this section, we describe our visualization techniques and our contributions. First, we describe the way in which we gathered the requirements for our visualization (Section 3.1). Then, we discuss the design decisions we made for the visualizations and the way in which these decisions were guided by the gathered requirements and our past experiences (Section 3.2). Finally, we present the three views of our visualization in detail (Section 3.3). 3.1 Requirements Shah et al. [10] gather general insights that developers might need to better understand exception-handling constructs by conducting a survey among software engineers from industry and academia. In Tarantula Jones et al. discussed how to use visualization techniques to analyze sequential program and relate the buggy code with the original program [11]. We use those techniques as the main guidelines for visualizing atomicity violation and order vitalization. Additionally we discussed with the few developers and researchers who would benefit from our tool and incorporated those suggestions also into the tool. Most of the people expressed the need for viewing methods and variables that cause the concurrency violations in the source code because it would help them to understand the data visit patterns/sequences and their relationship to concurrency violations. Some of the people also express the need for viewing the suspiciousness ranking of visit patterns/sequences because it would help them to discover the cause pattern for the bug. 3.2 Design decisions The consulting result indicates the need for representing concurrency violation related information at two levels of detail. The low-level representation provides detailed information about the methods and variables with respect to specific concurrency violation. The high high-level representation provides statistic information about suspiciousness ranking of visit patterns/sequences. We follow the concept relates to the information visualization mantra Overview first, zoom and filter, then details-ondemand, introduced by Shneiderman [12]. We then create two views for our visualization. The high-level view gives an overview of the name of the methods, variables and the statistic information about suspiciousness ranking of visit patterns/sequences. The low-level view gives the detailed statements which include the corresponding methods and variables. 3.3 Detail of the views Summary View The Summary view provides an overview of the tests execution; as shown in Fig. 2 the table represents all the test cases and number of pass test cases number of fail test cases and based on that the suspicious level. To easily understand the suspicious level we have used color hue; green less suspicious and red mean highly suspicious High-level view The high-level view provides the interested variables; the methods visit those variables and the visiting pattern/sequence as shown in Fig.3
4 The user can first select the variables/the methods that he/she wants to find out for more details. Then the lowlevel view will give the exact statement for the variables/the methods and highlight the statement. For example, if the user chooses to find out where the variable Variable 1: amount is in the program, he/she can simply click the mouse. Then the view will navigate to the statement in the source code. Figure 2: Summary view Total view The total view includes the summary view in the top-right and the high-level view in the left. Besides these two views, it also includes a low-level view in the bottom as shown in Fig.5 [Appendix section contains more clear figures for both order vialatio and atomicity vialation]. The user can first select the test case that he/she wants to show from the summary view. Then the high-level view will give the total number of tests that run in this test case, the pass count, the fail count and also the suspicious ratio. The view will also give the name of the variables and also the methods that visit the variable and their pattern/sequence. For example, there are 10 cases that run in test0, of which 9 passes and 1 fails. Then the suspicious ratio is 10%. The variables are both account and the method that visit these account are run, clinit. In thread 1, the visiting sequence is run then run. In thread 2, the visiting sequence is clinit then run. Figure 5: Total View 4. IMPLEMENTATION AND EVALUATION To evaluate our visualization technique, we developed the CORE (Concurrency violation visualization) prototype and conducted a case study. This section first presents the overview of our prototype implementation and then discusses a preliminary evaluation. Figure 3: High-level View Low-level view The low-level view provides the details of the interested variables, the methods visit those variables in statement granularity as shown in Fig Prototype implementation According to previous design decision of what to present and how to present while using techniques which do not try to overload the user with dozens of information, our implementation is based on information visualization mantra where we provide an overview first and then zoom and filter, and finally details-on-demand. There are a number of free and open source tools and packages for information visualization, among them Pre-puse [13] and GWT [14] were more in line with our project requirements. Unfortunately we need to change our dataset significantly to use those tools. As a result we use basic java awt and swing packages as the visualization libraries. Since our tool consists of a number of different views, we use Java tabbed pane to hold them and provide easy navigation among them. Figure 4: Low-level View In the view which presents the overall picture of the instrumentation we have used tabular representations since that helps to easily distinguish all the different instrumentations. And each row of the table represents a single instrumentation and linked with the source code, so just clicking on the
5 table row will lead user to the correct line of the source program. Each column of the table represents an attribute of execution and/or instrumentation. In order to better describe the execution information, we use Java drawing to draw colored circle (green for read and red for write) alone with the variable name, and by clicking on the drawn circle user can go the source code. And we also highlight the corresponding line in the source code. User can click on the corresponding code panel and open that in a new Window if he wishes to analyze further. The tool also features creating projects, which help developers to create a project with instrumentation, execution information and corresponding source code. Later on he can reuse the already created a project to analyze and visualize concurrent buggy access patterns, which helps them to save time on loading all the necessary files for the tool. Software evolution is inevitable as a result we need to develop the software in a way that we can evolve the application with minimum code changes, in our design and implementation we have considered the some immediate and long term features that we need to implement and have kept room for further improvements. 4.2 preliminary evaluation We evaluate the tool in the following two aspects: Aspect 1: Does CORE help programmer effectively localize faults for subject programs? Aspect 2: Does CORE help programmer efficiently work for subject programs while imposing small overhead? We use CORE to visualize the concurrency bugs in Contest benchmarks [15], which includes classes like Account, AirlinesTickets, BubbleSort2, BufWriter, Lottery, MergeSort, Shop and also Java Collection library like ArrayList, Hash- Set, StringBuffer, TreeSet, Vector. The result is that we can effectively show the concurrency bugs. As mentioned before, because CORE can create a project with instrumentation, execution information and corresponding source code, the programmer can reuse the already created a project to analyze and visualize concurrent buggy access patterns. Thus CORE can help programmer efficiently work for subject programs. 5. CONCLUSION Increasing use of multi-core based system, introduction of Web 2.0 technologies and use of multithread software have become a challenging task for enabling programmers to productively write and debug concurrent programs. This has motivated the development of several methods and tools for debugging and locating concurrency bugs. Park et al. [7] develop a tool called Falcon to discover the concurrency violations, with suspiciousness values. However, the concurrency violation information is stored in xml files which make it difficult to understand the thread interleaving in a program. In this paper, we present a visualization technique that shows information related to two kinds of concurrency violation, i.e., order violation and atomicity violation. We also consult programmers and professors to gather deeper insights into the problems. The consulting results our experiences guided the design of our visualization system, which we implemented as a tool called CORE (Concurrency violation visualization). It mainly composes of two views, i.e., the high-level view for the interested variables, the methods visit those variables and the visiting pattern/sequence and the low-level view for the details of the interested variables, the methods visit those variables in statement granularity. Programmer can sort the concurrency violation with various items, such as suspiciousness values or failing count. Then, if the programmer clicks one violation in the violation list, then we show the bug location in the file, and the stack trace of them, etc. Although CORE provides a number of unique capabilities that we believe will be useful for software engineers, our work is just the start of what is possible in the area of supporting the understanding of concurrency violation using visualizations. Future research includes: (1) Evaluate the CORE using more rigorous evaluation although we have conducted studies for performing preliminary evaluation of our system; (2) CORE uses the xml files for instrumentation and execution as input and output the result. In the future, we plan to generalize this approach by defining a standard format using XML to represent both the input and the output analysis results. 6. ACKNOWLEDGMENTS We would like to thank Sangmin Park for giving us a chance implement a visualization tool for better support his approach, and provide instrumentation and execution information to test our program. 7. REFERENCES [1] P. Godefroid and N. Nagappan. Concurrency at Microsoft An Exploratory Survey. In Microsoft Research, Redmond, WA, [2] M. Ronsee and K. De Bosschere. RecPlay: A Fully Integrated Practical Record/Replay System In ToCS [3] S. Lu, J. Tucek, F. Qin, and Y. Zhou. AVIO: Detecting Atomicity Violations via Access Interleaving Invariants. In ASPLOS [4] B. Lucia, J. Devietti, K. Strauss, and L. Ceze. Atom-Aid: Detecting and Surviving Atomicity Violations. In ISCA [5] S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. A Dynamic Data Race Detector for Multi-Threaded Programs. In ToCS [6] S. Lu, S. Park, E. Seo, and Y. Zhou. Learning from Mistakes- A Comprehensive Study on Real World Concurrency Bug Characteristics. In ASPLOS [7] Sangmin Park, Richard W. Vuduc, and Mary Jean Harrold. Falcon: Fault Localization in Concurrent Programs. [8] Soot Framework [9] R. L. Halpert. Master s thesis. McGill University [10] Hina Shah, Carsten Görg and Mary Jean Harrold. Visualization of Exception Handling Constructs to Support Program Understanding. In Proceedings of the 4th ACM
6 symposium on Software visualization, Ammersee, Germany, [11] James A. Jones, Mary Jean Harrold, and John Stasko. Visualization for Fault Localization.. Proceedings of the Workshop on Software Visualization. In 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, May [12] Shneiderman, B. The eyes have it: A task by data type taxonomy for information visualizations. In In Proceedings of the IEEE Symposium on Visual Languages, 336Ű [13] PreFuse [14] Elipse GWT [15] Y. Eytani, K. Havelund, S. D. Stoller, and S. Ur. Towards a framework and a benchmark for testing tools for multi-threaded programs. In Concurr. Comput. Pract. Exper., 19(3): , APPENDIX
7 Figure 6: Total view : Atomicity Vialation Figure 7: Total view : Order Vialation
Comparing Four Static Analysis Tools for Java Concurrency Bugs
Comparing Four Static Analysis Tools for Java Concurrency Bugs Md. Abdullah Al Mamun, Aklima Khanam, Håkan Grahn, and Robert Feldt School of Computing, Blekinge Institute of Technology SE-371 79 Karlskrona,
Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005
Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1
Software Visualization Tools for Component Reuse
Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New
Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification
Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by
RADBench: A Concurrency Bug Benchmark Suite
USENIX HotPar 2011, Berkeley RADBench: A Concurrency Bug Benchmark Suite Nicholas Jalbert UC Berkeley [email protected] Cristiano Pereira Intel [email protected] Koushik Sen UC Berkeley
Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6
Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis Derek Foo 1, Jin Guo 2 and Ying Zou 1 Department of Electrical and Computer Engineering 1 School of Computing 2 Queen
VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015
VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,
Java Coding Practices for Improved Application Performance
1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the
Chapter 3 Application Monitors
Chapter 3 Application Monitors AppMetrics utilizes application monitors to organize data collection and analysis per application server. An application monitor is defined on the AppMetrics manager computer
Process Modelling from Insurance Event Log
Process Modelling from Insurance Event Log P.V. Kumaraguru Research scholar, Dr.M.G.R Educational and Research Institute University Chennai- 600 095 India Dr. S.P. Rajagopalan Professor Emeritus, Dr. M.G.R
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
Visualizing Repertory Grid Data for Formative Assessment
Visualizing Repertory Grid Data for Formative Assessment Kostas Pantazos 1, Ravi Vatrapu 1, 2 and Abid Hussain 1 1 Computational Social Science Laboratory (CSSL) Department of IT Management, Copenhagen
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
Characterizing Real World Bugs Causing Sequential Consistency Violations
Characterizing Real World Bugs Causing Sequential Consistency Violations Mohammad Majharul Islam [email protected] University of Texas at San Antonio Abdullah Muzahid [email protected] University
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
3M Stats and Status Software for 3M Detection System Model 8900/9900. Staff Guide
3M Stats and Status Software for 3M Detection System Model 8900/9900 Staff Guide Copyright 2009, 3M. All rights reserved. 3M Stats and Status Software for 3M Detection System Model 8900/9900 Staff Guide
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
NetBeans Profiler is an
NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that
Basic Unix/Linux 1. Software Testing Interview Prep
Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
Performance Monitoring and Visualization of Large-Sized and Multi- Threaded Applications with the Pajé Framework
Performance Monitoring and Visualization of Large-Sized and Multi- Threaded Applications with the Pajé Framework Mehdi Kessis France Télécom R&D {Mehdi.kessis}@rd.francetelecom.com Jean-Marc Vincent Laboratoire
Squashing the Bugs: Tools for Building Better Software
Squashing the Bugs: Tools for Building Better Software Stephen Freund Williams College The Blue Screen of Death (BSOD) USS Yorktown Smart Ship 27 Pentium-based PCs Windows NT 4.0 September 21, 1997: data
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
NakeDB: Database Schema Visualization
NAKEDB: DATABASE SCHEMA VISUALIZATION, APRIL 2008 1 NakeDB: Database Schema Visualization Luis Miguel Cortés-Peña, Yi Han, Neil Pradhan, Romain Rigaux Abstract Current database schema visualization tools
Software Project Models
INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini [email protected],
TEXT-FILLED STACKED AREA GRAPHS Martin Kraus
Martin Kraus Text can add a significant amount of detail and value to an information visualization. In particular, it can integrate more of the data that a visualization is based on, and it can also integrate
SignalDraw: GUI Tool For Generating Pulse Sequences
SignalDraw: GUI Tool For Generating Pulse Sequences Konstantin Berlin Department of Computer Science University of Maryland College Park, MD 20742 [email protected] December 9, 2005 Abstract Generating
Resource Utilization of Middleware Components in Embedded Systems
Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system
GSPIM: Graphical Visualization Tool for MIPS Assembly
GSPIM: Graphical Visualization Tool for MIPS Assembly Programming and Simulation Patrick Borunda Science University of Arizona [email protected] Chris Brewer Science University of Arizona [email protected]
Java SE 8 Programming
Oracle University Contact Us: 1.800.529.0165 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming
ARCHITECTURE FOR INTEGRATING A WEB-BASED IDE AND A PROJECT MANAGEMENT SYSTEM
ARCHITECTURE FOR INTEGRATING A WEB-BASED IDE AND A PROJECT MANAGEMENT SYSTEM Arnold Choa 1, Linda Chua 1, Kevin See 1, Alvin Uy 1, Danny Cheng 2 1 Software Technology College of Computer Studies, De La
Mutual Exclusion using Monitors
Mutual Exclusion using Monitors Some programming languages, such as Concurrent Pascal, Modula-2 and Java provide mutual exclusion facilities called monitors. They are similar to modules in languages that
Tackling Big Data with MATLAB Adam Filion Application Engineer MathWorks, Inc.
Tackling Big Data with MATLAB Adam Filion Application Engineer MathWorks, Inc. 2015 The MathWorks, Inc. 1 Challenges of Big Data Any collection of data sets so large and complex that it becomes difficult
An Introduction to LoadRunner A Powerful Performance Testing Tool by HP. An Introduction to LoadRunner. A Powerful Performance Testing Tool by HP
An Introduction to LoadRunner A Powerful Performance Testing Tool by HP Index Sr. Title Page 1 Introduction 2 2 LoadRunner Testing Process 4 3 Load test Planning 5 4 LoadRunner Controller at a Glance 7
SkySpark Tools for Visualizing and Understanding Your Data
Issue 20 - March 2014 Tools for Visualizing and Understanding Your Data (Pg 1) Analytics Shows You How Your Equipment Systems are Really Operating (Pg 2) The Equip App Automatically organize data by equipment
Chapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
A system is a set of integrated components interacting with each other to serve a common purpose.
SYSTEM DEVELOPMENT AND THE WATERFALL MODEL What is a System? (Ch. 18) A system is a set of integrated components interacting with each other to serve a common purpose. A computer-based system is a system
Monitoring Atomicity in Concurrent Programs
Monitoring Atomicity in Concurrent Programs Azadeh Farzan 1 and P. Madhusudan 2 1 Carnegie Mellon University ([email protected]) 2 Univ. of Illinois at Urbana-Champaign ([email protected]) Abstract. We
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
ACCELERATING SELECT WHERE AND SELECT JOIN QUERIES ON A GPU
Computer Science 14 (2) 2013 http://dx.doi.org/10.7494/csci.2013.14.2.243 Marcin Pietroń Pawe l Russek Kazimierz Wiatr ACCELERATING SELECT WHERE AND SELECT JOIN QUERIES ON A GPU Abstract This paper presents
How To Visualize Performance Data In A Computer Program
Performance Visualization Tools 1 Performance Visualization Tools Lecture Outline : Following Topics will be discussed Characteristics of Performance Visualization technique Commercial and Public Domain
Debugging with TotalView
Tim Cramer 17.03.2015 IT Center der RWTH Aachen University Why to use a Debugger? If your program goes haywire, you may... ( wand (... buy a magic... read the source code again and again and...... enrich
A Visualization System and Monitoring Tool to Measure Concurrency in MPICH Programs
A Visualization System and Monitoring Tool to Measure Concurrency in MPICH Programs Michael Scherger Department of Computer Science Texas Christian University Email: [email protected] Zakir Hussain Syed
Java C# Tutorial on Thread Management and Network Marketing Model
Visualization of Concurrent Program Executions Cyrille Artho Research Center for Information Security (RCIS), AIST, Tokyo, Japan Klaus Havelund NASA Jet Propulsion Laboratory/Columbus Technologies, Pasadena,
Basic Programming and PC Skills: Basic Programming and PC Skills:
Texas University Interscholastic League Contest Event: Computer Science The contest challenges high school students to gain an understanding of the significance of computation as well as the details of
EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11
EMC Publishing Ontario Curriculum Computer and Information Science Grade 11 Correlations for: An Introduction to Programming Using Microsoft Visual Basic 2005 Theory and Foundation Overall Expectations
Why Do Developers Neglect Exception Handling?
Why Do Developers Neglect Exception Handling? Hina Shah, Carsten Görg, Mary Jean Harrold College of Computing, Georgia Institute of Technology, Atlanta, Georgia, U.S.A. {hinashah,goerg,harrold}@cc.gatech.edu
Monitoring Replication
Monitoring Replication Article 1130112-02 Contents Summary... 3 Monitor Replicator Page... 3 Summary... 3 Status... 3 System Health... 4 Replicator Configuration... 5 Replicator Health... 6 Local Package
Business Application Services Testing
Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load
Advanced Outlook Tutorials
Advanced Outlook Tutorials Filtering: Create a filter to send email directly to a specific folder from a certain sender: 1. Right click on the sender s email. 2. Choose Rules. 3. Click on Create Rule.
Also on the Performance tab, you will find a button labeled Resource Monitor. You can invoke Resource Monitor for additional analysis of the system.
1348 CHAPTER 33 Logging and Debugging Monitoring Performance The Performance tab enables you to view the CPU and physical memory usage in graphical form. This information is especially useful when you
Treemaps for Search-Tree Visualization
Treemaps for Search-Tree Visualization Rémi Coulom July, 2002 Abstract Large Alpha-Beta search trees generated by game-playing programs are hard to represent graphically. This paper describes how treemaps
So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we
Facing the Challenges for Real-Time Software Development on Multi-Cores
Facing the Challenges for Real-Time Software Development on Multi-Cores Dr. Fridtjof Siebert aicas GmbH Haid-und-Neu-Str. 18 76131 Karlsruhe, Germany [email protected] Abstract Multicore systems introduce
Advances in Smart Systems Research : ISSN 2050-8662 : http://nimbusvault.net/publications/koala/assr/ Vol. 3. No. 3 : pp.
Advances in Smart Systems Research : ISSN 2050-8662 : http://nimbusvault.net/publications/koala/assr/ Vol. 3. No. 3 : pp.49-54 : isrp13-005 Optimized Communications on Cloud Computer Processor by Using
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad OpenDemand Systems, Inc. Abstract / Executive Summary As Web applications and services become more complex, it becomes increasingly difficult
WHITEPAPER. Managing Design Changes in Enterprise SBM Installations
WHITEPAPER Managing Design Changes in Enterprise SBM Installations By Tom Clement Serena Software, Inc. October 2013 Summary This document explains how to organize your SBM maintenance and development
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
The Cisco CMX Analytics Service
Overview of the Analytics Service, page 1 The Analytics Dashboard, page 2 Customized Widgets, page 8 Social Media Analytics, page 14 Performing Heatmap Analysis, page 16 Using the Schedule Manager, page
1.1 Difficulty in Fault Localization in Large-Scale Computing Systems
Chapter 1 Introduction System failures have been one of the biggest obstacles in operating today s largescale computing systems. Fault localization, i.e., identifying direct or indirect causes of failures,
BSPCloud: A Hybrid Programming Library for Cloud Computing *
BSPCloud: A Hybrid Programming Library for Cloud Computing * Xiaodong Liu, Weiqin Tong and Yan Hou Department of Computer Engineering and Science Shanghai University, Shanghai, China [email protected],
Atomicity for Concurrent Programs Outsourcing Report. By Khilan Gudka <[email protected]> Supervisor: Susan Eisenbach
Atomicity for Concurrent Programs Outsourcing Report By Khilan Gudka Supervisor: Susan Eisenbach June 23, 2007 2 Contents 1 Introduction 5 1.1 The subtleties of concurrent programming.......................
Creating and Using Databases with Microsoft Access
CHAPTER A Creating and Using Databases with Microsoft Access In this chapter, you will Use Access to explore a simple database Design and create a new database Create and use forms Create and use queries
Scalable Data Analysis in R. Lee E. Edlefsen Chief Scientist UserR! 2011
Scalable Data Analysis in R Lee E. Edlefsen Chief Scientist UserR! 2011 1 Introduction Our ability to collect and store data has rapidly been outpacing our ability to analyze it We need scalable data analysis
A static representation for ToonTalk programs
A static representation for ToonTalk programs Mikael Kindborg [email protected] www.ida.liu.se/~mikki Department of Computer and Information Science Linköping University Sweden Abstract Animated and static
Database Application Developer Tools Using Static Analysis and Dynamic Profiling
Database Application Developer Tools Using Static Analysis and Dynamic Profiling Surajit Chaudhuri, Vivek Narasayya, Manoj Syamala Microsoft Research {surajitc,viveknar,manojsy}@microsoft.com Abstract
Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications
Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications Jun Wang, Xi Xiong, Peng Liu Penn State Cyber Security Lab 1 An inherent security limitation
MERLIN. The Quick Start Guide to professional project management. 2013 ProjectWizards GmbH, Melle, Germany. All rights reserved.
MERLIN The Quick Start Guide to professional project management 2013 ProjectWizards GmbH, Melle, Germany. All rights reserved. INTRODUCTION Welcome to the quick start guide to Merlin! Thank you for choosing
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM
STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM Albert M. K. Cheng, Shaohong Fang Department of Computer Science University of Houston Houston, TX, 77204, USA http://www.cs.uh.edu
AP Computer Science AB Syllabus 1
AP Computer Science AB Syllabus 1 Course Resources Java Software Solutions for AP Computer Science, J. Lewis, W. Loftus, and C. Cocking, First Edition, 2004, Prentice Hall. Video: Sorting Out Sorting,
Tutorial 3 Maintaining and Querying a Database
Tutorial 3 Maintaining and Querying a Database Microsoft Access 2013 Objectives Session 3.1 Find, modify, and delete records in a table Hide and unhide fields in a datasheet Work in the Query window in
Using Microsoft Picture Manager
Using Microsoft Picture Manager Storing Your Photos It is suggested that a county store all photos for use in the County CMS program in the same folder for easy access. For the County CMS Web Project it
Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.
MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
Visualization for Network Traffic Monitoring & Security
Visualization for Network Traffic Monitoring & Security Erwan ISIT/KYUSHU, Supélec 2006 Plan Visualization Visualization Host based Network based Between networks Other prototypes Pre-processing PGVis
Access Tutorial 3 Maintaining and Querying a Database. Microsoft Office 2013 Enhanced
Access Tutorial 3 Maintaining and Querying a Database Microsoft Office 2013 Enhanced Objectives Session 3.1 Find, modify, and delete records in a table Hide and unhide fields in a datasheet Work in the
Processing Data with rsmap3d Software Services Group Advanced Photon Source Argonne National Laboratory
Processing Data with rsmap3d Software Services Group Advanced Photon Source Argonne National Laboratory Introduction rsmap3d is an application for producing 3D reciprocal space maps from x-ray diffraction
Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism
[Recreated electronic version by Eric A. Brewer ([email protected]), Oct 20, 1998] Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism THOMAS E. ANDERSON,
