Spelling suggestions: "subject:"nonconcurrent"" "subject:"nonconcurrently""
81 |
Processer och metoder som möjliggör för en effektiv produktframtagningFriberg, Caroline, Björkell, Mattias January 2010 (has links)
<p>The high level of competition and the rapidly growing technology development has created new challenges for today's businesses where they are forced to deliver more customized products at a lower price and a shorter time period. This places high demands on the companies' ability to design and develop better products in a more efficient way. In addition to developing products, the design process focuses on securing long-term success for the company by developing nourishing skills. However, to achieve an effective design process the companies must improve their ability to plan as well as use their knowledge base in a more efficient manner. Toyota's product development system is a critical component for companies to address challenges that they’re facing and offers a great potential to create significant competitive advantages. Toyota's product development system is designed to streamline the design of processes and products, as they often create restrictions on business and describes the importance of making use of a coordinated effort by several functions, and strives to integrate processes, people, technology and tools in an effective manner.</p><p> </p><p>The concept of Concurrent Engineering includes parallel efforts rather than a time-consuming serial work and seeks to minimize delays in the product development process. Concurrent Engineering enables for quality products, to reach the market faster at a lower cost and allows the company to quickly and flexibly adapt to changing demands and conditions through parallel efforts. Like Toyota’s product development system, Concurrent Engineering promotes an integrated approach where multifunctional teams work towards a common goal striving to solve problems at an early stage.</p><p> </p><p>Propulsion and Control in Västerås, a division within Bombardier Transportation, is currently suffering from extensive engineering changes and struggles to uphold time plans and budgets. The thesis will therefore cover the complete product development process where focus has been directed towards the processes and conditions that could enable for an effective product development process. During the thesis work the underlying causes for the problems mentioned above, have been identified. Internal documents regarding the company's current process has been reviewed and interviews have been carried out in order to evaluate the company’s current situation. During the thesis work a comparative study has been conducted at a large company within the Mälardalen-region. This study has been used as a practical example to reinforce the theoretical reasoning and has additionally allowed for further examination of a company's product development process.</p><p> </p><p>The thesis has resulted in a number of suggestions for improvements, where the main action areas are covered by cross-functionality, routines, follow-up, supplier involvement and prototypes. Another action area that has been identified is front-loading which aims at examining several alternatives and solving problems as well as creating countermeasures at an early stage. These six areas were found to have a significant role in creating an effective product development process and are considered to be relevant for the company's current situation.</p>
|
82 |
A Framework for Testing Concurrent ProgramsJanuary 2011 (has links)
This study proposes a new framework that can effectively apply unit testing to concurrent programs, which are difficult to develop and debug. Test-driven development, a practice enabling developers to detect bugs early by incorporating unit testing into the development process, has become wide-spread, but it has only been effective for programs with a single thread of control. The order of operations in different threads is essentially non-deterministic, making it more complicated to reason about program properties in concurrent programs than in single-threaded programs. Because hardware, operating systems, and compiler optimizations influence the order in which operations in different threads are executed, debugging is problematic since a problem often cannot be reproduced on other machines. Multi-core processors, which have replaced older single-core designs, have exacerbated these problems because they demand the use of concurrency if programs are to benefit from new processors. The existing tools for unit testing programs are either flawed or too costly. JUnit , for instance, assumes that programs are single-threaded and therefore does not work for concurrent programs; ConTest and rstest predate the revised Java memory model and make incorrect assumptions about the operations that affect synchronization. Approaches such as model checking or comprehensive schedule-based execution are too costly to be used frequently. All of these problems prevent software developers from adopting the current tools on a large scale. The proposed framework (i) improves JUnit to recognize errors in all threads, a necessary development without which all other improvements are futile, (ii) places some restrictions on the programs to facilitate automatic testing, (iii) provides tools that reduce programmer mistakes, and (iv) re-runs the unit tests with randomized schedules to simulate the execution under different conditions and on different machines, increasing the probability that errors are detected. The improvements and restrictions, shown not to seriously impede programmers, reliably detect problems that the original JUnit missed. The execution with randomized schedules reveals problems that rarely occur under normal conditions. With an effective testing tool for concurrent programs, developers can test programs more reliably and decrease the number of errors in spite of the proliferation of concurrency demanded by modern processors.
|
83 |
Performance Optimizations for Software Transactional MemoryJanuary 2011 (has links)
The transition from single-core processors to multi-core processors demands a change from sequential programming to concurrent programming for mainstream programmers. However, concurrent programming has long been widely recognized as being notoriously difficult. A major reason for its difficulty is that existing concurrent programming constructs provide low-level programming abstractions. Using these constructs forces programmers to consider many low level details. Locks, the dominant programming construct for mutual exclusion, suffer several well known problems, such as deadlock, priority inversion, and convoying, and are directly related to the difficulty of concurrent programming. The alternative to locks, i.e. non-blocking programming, not only is extremely error-prone, but also does not produce consistently good performance. Better programming constructs are critical to reduce the complexity of concurrent programming, increase productivity, and expose the computing power in multi-core processors. Transactional memory has emerged recently as one promising programming construct for supporting atomic operations on shared data. By eliminating the need to consider a huge number of possible interactions among concurrent transactions, Transactional memory greatly reduces the complexity of concurrent programming and vastly improves programming productivity. Software transactional memory systems implement a transactional memory abstraction in software. Unfortunately, existing designs of Software Transactional Memory systems incur significant performance overhead that could potentially prevent it from being widely used. Reducing STM's overhead will be critical for mainstream programmers to improve productivity while not suffering performance degradation. My thesis is that the performance of STM can be significantly improved by intelligently designing validation and commit protocols, by designing the time base, and by incorporating application-specific knowledge. I present four novel techniques for improving performance of STM systems to support my thesis. First, I propose a time-based STM system based on a runtime tuning strategy that is able to deliver performance equal to or better than existing strategies. Second, I present several novel commit phase designs and evaluate their performance. Then I propose a new STM programming interface extension that enables transaction optimizations using fast shared memory reads while maintaining transaction composability. Next, I present a distributed time base design that outperforms existing time base designs for certain types of STM applications. Finally, I propose a novel programming construct to support multi-place isolation. Experimental results show the techniques presented here can significantly improve the STM performance. We expect these techniques to help STM be accepted by more programmers.
|
84 |
Identification and annotation of concurrency design patterns in Java source code using static analysis.Mwebesa, Martin 01 December 2011 (has links)
Concurrent software is quickly becoming a very important facet in Software Engineering due
to numerous advantages, one of which is increased processing speed. Despite it's importance,
concurrent software is fraught with very difficult to detect bugs, for example deadlocks and
data races. Concurrency design patterns were created to o er successfully tried and tested
means to design and develop concurrent software to, amongst other things, minimize the
occurrence of these hard to detect bugs. In this thesis we discuss our novel static analysis
technique to detect these concurrency design patterns in Java source code and identify them
using commented Java annotations. Using our technique the commented Java annotations
are inserted above Java constructs that are not only part of the Java source code but also
make up the various roles that comprise the concurrency design pattern. The identifying
of the concurrency design patterns in the Java source code can aid in their maintenance
later on, by matching the inserted Java annotations to the various Java constructs they are
annotating. Maintaining the concurrency design patterns within the Java source code in
effect aids in maintaining the Java source code error free. / UOIT
|
85 |
Control of Batch Processes Based on Hierarchical Petri NetsONOGI, Katsuaki, KURIMOTO, Hidekazu, HASHIZUME, Susumu, ITO, Takashi, YAJIMA, Tomoyuki 01 November 2004 (has links)
No description available.
|
86 |
Integration between Scheduling and Design of Batch Systems Based on Petri Net ModelsONOGI, Katsuaki, YAJIMA, Tomoyuki, HASHIZUME, Susumu, ITO, Takashi 01 November 2005 (has links)
No description available.
|
87 |
µProfiler: A Concurrent Profiler for Concurrent C++ (µC++)Gidzinski, Justyna Jay January 2007 (has links)
A concurrent program, unlike a sequential program, has multiple threads of execution, resulting in numerous advantages (e.g., faster execution), but also in complex and unpredictable interaction. As a consequence, a concurrent program can easily underutilize available parallelism, and performance can be extremely difficult for users to predict and analyze on their own.
A profiler is a tool that can help a user identify as well as locate potential performance problems in a program. Profiling is accomplished through monitoring of the program execution, and analyzing and visualizing the collected performance data. A profiler must display useful information in a way that allows a user to effectively and efficiently understand and analyze a program's behaviour.
This thesis describes the advancement in design and implementation of µProfiler, a profiler for sequential and concurrent programs written in µC++. µC++ is a concurrent dialect of the C++ programming language, which executes in uni-processor and multi-processor shared-memory environments. Major advancements to three µProfiler metrics are presented: the Execution State, the Exact Routine Call-Graph and the Statistical Routine Call-Graph. The Execution State metric charts each state for every thread over the entire execution of the program. With high overhead and perfect accuracy, the Exact Routine Call-Graph metric provides an exact call-graph profile of the program's dynamic execution, describing the control flow among routines. With low overhead and less accuracy, the Statistical Routine Call-Graph metric provides a statistical call-graph profile of the program's dynamic execution. For each metric, advancements were made throughout the profiling process (i.e., monitoring, analysis and visualization), addressing goals such as scalability, functionality, usability and performance. The metrics provide reasonable memory overhead and, based on the comparison to related work, are state-of-the-art in functionality and provide similar run-time performance.
|
88 |
Processer och metoder som möjliggör för en effektiv produktframtagningFriberg, Caroline, Björkell, Mattias January 2010 (has links)
The high level of competition and the rapidly growing technology development has created new challenges for today's businesses where they are forced to deliver more customized products at a lower price and a shorter time period. This places high demands on the companies' ability to design and develop better products in a more efficient way. In addition to developing products, the design process focuses on securing long-term success for the company by developing nourishing skills. However, to achieve an effective design process the companies must improve their ability to plan as well as use their knowledge base in a more efficient manner. Toyota's product development system is a critical component for companies to address challenges that they’re facing and offers a great potential to create significant competitive advantages. Toyota's product development system is designed to streamline the design of processes and products, as they often create restrictions on business and describes the importance of making use of a coordinated effort by several functions, and strives to integrate processes, people, technology and tools in an effective manner. The concept of Concurrent Engineering includes parallel efforts rather than a time-consuming serial work and seeks to minimize delays in the product development process. Concurrent Engineering enables for quality products, to reach the market faster at a lower cost and allows the company to quickly and flexibly adapt to changing demands and conditions through parallel efforts. Like Toyota’s product development system, Concurrent Engineering promotes an integrated approach where multifunctional teams work towards a common goal striving to solve problems at an early stage. Propulsion and Control in Västerås, a division within Bombardier Transportation, is currently suffering from extensive engineering changes and struggles to uphold time plans and budgets. The thesis will therefore cover the complete product development process where focus has been directed towards the processes and conditions that could enable for an effective product development process. During the thesis work the underlying causes for the problems mentioned above, have been identified. Internal documents regarding the company's current process has been reviewed and interviews have been carried out in order to evaluate the company’s current situation. During the thesis work a comparative study has been conducted at a large company within the Mälardalen-region. This study has been used as a practical example to reinforce the theoretical reasoning and has additionally allowed for further examination of a company's product development process. The thesis has resulted in a number of suggestions for improvements, where the main action areas are covered by cross-functionality, routines, follow-up, supplier involvement and prototypes. Another action area that has been identified is front-loading which aims at examining several alternatives and solving problems as well as creating countermeasures at an early stage. These six areas were found to have a significant role in creating an effective product development process and are considered to be relevant for the company's current situation.
|
89 |
µProfiler: A Concurrent Profiler for Concurrent C++ (µC++)Gidzinski, Justyna Jay January 2007 (has links)
A concurrent program, unlike a sequential program, has multiple threads of execution, resulting in numerous advantages (e.g., faster execution), but also in complex and unpredictable interaction. As a consequence, a concurrent program can easily underutilize available parallelism, and performance can be extremely difficult for users to predict and analyze on their own.
A profiler is a tool that can help a user identify as well as locate potential performance problems in a program. Profiling is accomplished through monitoring of the program execution, and analyzing and visualizing the collected performance data. A profiler must display useful information in a way that allows a user to effectively and efficiently understand and analyze a program's behaviour.
This thesis describes the advancement in design and implementation of µProfiler, a profiler for sequential and concurrent programs written in µC++. µC++ is a concurrent dialect of the C++ programming language, which executes in uni-processor and multi-processor shared-memory environments. Major advancements to three µProfiler metrics are presented: the Execution State, the Exact Routine Call-Graph and the Statistical Routine Call-Graph. The Execution State metric charts each state for every thread over the entire execution of the program. With high overhead and perfect accuracy, the Exact Routine Call-Graph metric provides an exact call-graph profile of the program's dynamic execution, describing the control flow among routines. With low overhead and less accuracy, the Statistical Routine Call-Graph metric provides a statistical call-graph profile of the program's dynamic execution. For each metric, advancements were made throughout the profiling process (i.e., monitoring, analysis and visualization), addressing goals such as scalability, functionality, usability and performance. The metrics provide reasonable memory overhead and, based on the comparison to related work, are state-of-the-art in functionality and provide similar run-time performance.
|
90 |
Cooperative Modeling and Design History Tracking Using Design Tracking MatrixKim, Jonghyun 2009 August 1900 (has links)
This thesis suggests a new framework for cooperative modeling which supports
concurrency design protocol with a design history tracking function. The proposed
framework allows designers to work together while eliminating design conflicts and
redundancies, and preventing infeasible designs. This framework provides methods to
track optimal design path and redundant design history in the overall design process.
This cooperative modeling architecture consists of a modeling server and voxel-based
multi-client design tool. Design change among server and multiple clients are executed
using the proposed concurrency design protocol. The design steps are tracked and
analyzed using Design Tracking Graph and Design Tracking Matrix (DTM), which
provide a design data exchange algorithm allowing seamless integration of design
modifications between participating designers. This framework can be used for effective
cooperative modeling, and helps identify and eliminate conflicts and minimize delay.
The proposed algorithm supports effective cooperative design functions. First, it
provides a method to obtain the optimal design path which can be stored in a design
library and utilized in the future design. Second, it helps capture modeling pattern which can be used for analyzing designer's performance. Finally, obtained redundancies can be
used to evaluate designer?s design efficiency.
|
Page generated in 0.0584 seconds