14763261
Zero-Efficient Buffer Design for Reliable Network-on-Chip in Tiled Chip-Multi-Processor
Network-on-chip (NoC) is a promising solution for efficient interconnection between processor cores in chip-multi-processor (CMP). This paper is focusing on the energy-efficient design of buffers, a group of the most important components in NoC. From our investigation, an overwhelming majority of "zero" is contained in the packets transmitting in NoC for CMP. A zero-efficient buffer design is proposed as well as the error control scheme. Compared with conventional design, up to 43% energy consumption can be saved. We use a 90 nm CMOS process in our simulation.
15679648
First-aid: surviving and preventing memory management bugs during production runs
Memory bugs in C/C++ programs severely affect system availability and security. This paper presents First-Aid, a lightweight runtime system that survives software failures caused by common memory management bugs and prevents future failures by the same bugs during production runs. Upon a failure, First-Aid diagnoses the bug type and identifies the memory objects that trigger the bug. To do so, it rolls back the programto previous checkpoints and uses two types of environmental changes that can prevent or expose memory bug manifestation during re-execution. Based on the diagnosis, First-Aid generates and applies runtime patches to avoid the memory bug and prevent its reoccurrence. Furthermore, First-Aid validates the consistent effects of the runtime patches and generates on-site diagnostic reports to assist developers in fixing the bugs.
 We have implemented First-Aid on Linux and evaluated it with seven applications that contain various types of memory bugs, including buffer overflow, uninitialized read, dangling pointer read/write, and double free. The results show that First-Aid can quickly diagnose the tested bugs and recover applications from failures (in 0.084 to 3.978 seconds). The results also show that the runtime patches generated by First-Aid can prevent future failures caused by the diagnosed bugs. Additionally, First-Aid provides detailed diagnostic information on both the root cause and the manifestation of the bugs. Furthermore, First-Aid incurs low overhead (0.4-11.6% with an average of 3.7%) during normal execution for the tested buggy applications, SPEC INT2000, and four allocation intensive programs.
1201413
LeakSurvivor: Towards Safely Tolerating Memory Leaks for Garbage-Collected Languages
Continuous memory leaks severely hurt program performance and software availability for garbage-collected programs. This paper presents a safe method, called LeakSurvivor, to tolerate continuous memory leaks at runtime for garbage-collected programs. Our main idea is to periodically swap out the "Potentially Leaked" (PL) memory objects identified by leak detectors from the virtual memory to disks. As a result, the virtual memory space occupied by the PL objects can be reclaimed by garbage collectors and available for future uses. If a swapped-out PL object is accesses later, LeakSurvivor will restore it from disks to the memory for correct program execution. Furthermore, LeakSurvivor helps developers to prune false positives. 
 
We have built the prototype of LeakSurvivor on top of Jikes RVM 2.4.2, a high performance Java-in-Java virtual machine developed by IBM. We conduct the experiments with three Java applications including Eclipse, SPECjbb2000 and Jigsaw. Among them, Eclipse and Jigsaw contain memory leaks introduced by their developers, while SPECjbb2000 contain a memory leak injected by us. Our results show that LeakSurvivor effectively tolerates memory leaks for two applications (Eclipse and SPECjbb2000), i.e., no cumulative performance degradation and no software failures when facing continuous memory leaks at runtime. For Jigsaw, LeakSurvivor extends the program lifetime by two times and improves the performance by 46% compared with native runs. Furthermore, when there are no memory leaks, LeakSurvivor imposes small runtime overhead, i.e., 2.5% over the leak detector and 23.7% over the native runs.
31658979
A wavelet approach to extracting contours of document images
In this paper, a new method for extracting contours of document images is proposed. It is a wavelet-based method that consists of three steps. First, by orthogonal wavelet decomposition, a document image is decomposed into a set of wavelet approximation and wavelet details. Next, contour extraction is achieved by applying a wavelet reconstruction technique. In the third step, a multiresolution-contours extraction with respect to an iteration wavelet reconstruction is implemented. A novel combination of multiresolution-contours results in clear contours of the document image. This reconstruction procedure is accompanied by an energy distribution estimation from which wavelet decomposition times can be adaptively controlled. Our method has no redundant operation compared to the scheme of wavelet transform. Therefore, the computational time and memory requirement are less than those by wavelet transform.
15542014
Efficient checkpointing of java software using context-sensitive capture and replay
Checkpointing and replaying is an attractive technique that has been used widely at the operating/runtime system level to provide fault tolerance. Applying such a technique at the application level can benefit a range of software engineering tasks such as testing of long-running programs, automated debugging, and dynamic slicing. We propose a checkpointing/replaying technique for Java that operates purely at the language level, without the need for JVM-level or OS-level support. At the core of our approach are static analyses that select, at certain program points, a safe subset of the program state to capture and replay. Irrelevant statements before the checkpoint are eliminated using control-dependence-based slicing; the remaining statements together with the captured run-time values are used to indirectly recreate the call stack of the original program at the checkpoint. At the checkpoint itself and at certain subsequent program points, the replaying version restores parts of the program state that are necessary for execution of the surrounding method. Our experimental studies indicate that the proposed static and dynamic analyses have the potential to reduce significantly the execution time for replaying, with low run-time overhead for checkpointing.
9189850
The Parameter Optimization of Human-Simulated Intelligent Controller Based on Improved Genetic Algorithm
The human-simulated intelligent controller, using a hierarchical and multi-mode control structure, effectively solves the control difficult problems of many complex systems. But there are many parameters to be determined. In order to solve them, the paper introduces an improved genetic algorithm (IGA) which is combined with orthogonal design method. It is served as the simulation experiment platform by the cart-double pendulum. Through selected the reasonable fitness function and determined the appropriate parameters range, using the IGA, the parameters of the human-simulated intelligent controller are optimized. The simulation results show the IGA is better than the manual adjustment method. So it is proved that the IGA is more effective in solving the parameter optimization of human-simulated intelligent controller, and also promotes the more extended application space of intelligent control theory.
40790501
A Practical Peer-Performance-Aware DHT
How to Build an efficient Distributed Hash Table (DHT) is a fundamental issue in Peer-to-Peer research field. Previous solutions ignore the heterogeneity of the large scale network. However, in practice, the fact is that the resource held by each peer in the Internet is extremely diverse. And the the willing to share local resources of each peer is also diverse. Therefore, the contribution for the system of a peer should depend on the resources it holds or how many resources it want to share, and should not be uniform. In this paper, we propose a Peer-Performance-Aware Distributed Hash Table (PPADHT) which aims to exploit the heterogeneity. It takes the performance difference of peers into consideration to construct a dynamic variation of wrapped butterfly to achieve the goal. We also show how to optimize the performance of PPADHT in the view of hop counts by random graphs. Our simulation results show that the average lookup hop counts of the PPADHT is approximately a log scale with constant out degrees. And it can achieve loadbalance in two ways: both the document load and message routing load, without introducing any additional load on the peer. Here, the load balance means the load is proportion to the performance of peer.
2826645
PROFILE COMPILER: Ontology-based, community-grounded, multilingual online services to support collaborative decision making
In todaypsilas industries, ontologies and the modern semantic technologies are offered as the potential solutions to support mutual understanding in the collaborative settings. Currently, organizations are unable to cope with collaborative decision making in a particular domain. Mastering domain knowledge and sharing decision rules is a complex yet important issue. In this paper, we first design a generic framework for community-grounded, collaborative decision making enabled, ontology based systems. This framework is constructed with three main engineering tracks: the linguistic engineering track, the ontology engineering track and the group decision engineering track. Each engineering track has its own methodology supported by a tool. Then, we use Semantic Decision Tables to elaborate the knowledge blocks resulting from these three engineering tracks. Semantic Decision Tables are mainly used (1) to elaborate concepts of the domain ontologies, (2) to gather semantically grounded decision rules within a decision group and (3) to provide tabular reports to the users. Finally, an online multilingual knowledge platform - the PROFILE COMPILER is developed as the result. It allows small or medium-sized enterprises (SMEs) to retrieve and personalize existing domain ontology, design and share their decision rules. We illustrate in the domain of Human Resource Management (HRM).
35426902
Towards Ontological Commitments with Omega -RIDL Markup Language
In the DOGMA (Developing Ontology-Grounded Methods and Applications) ontology engineering approach, ontology construction starts from an uninterpreted base of elementary fact types, called lexons, which are mined from linguistic descriptions. Applications that ontologically commit to such a lexon base are assigned a formal semantics by mapping the application symbols to paths in this lexon base. Besides specifying which concepts are used, we restrict how they may be used and queried with semantic constraints, or rules, based on the fact-based database modeling method NIAM/ORM. Such ontological commitments are specified in the Ω-RIDL1 language. In this paper we present the Ω -RIDL Markup Language and illustrate with a case from the field of Human Resources Management.
17461739
The design and implementation of LilyTask in shared memory
Constructing high performance computing system and providing easy-to-use programming model for users are two main parts of parallel computing, but the latter has been in a sorry state for a long time. LilyTask programming model is based on tasks which can be easily mapped to the decomposition of computation. Without explict synchronization and mutual exclusion, users will concentrate on the inherent parallelism in a problem instead of lock/unlock programming techniques. Most existing implementations of the task pool, a flexible data structure for task parallel, lack basic representation of relations among tasks. LilyTask introduces task group and task relation to help users easily map subproblems to tasks. The kernel of LilyTask system, a distributed task pool, automatically exploits potential parallelism among tasks at runtime. With runtime task assignment and task stealing, LilyTask system achieves dynamic load balancing. Our performance evaluation shows that LilyTask system with task pool outperforms sequential programs and BSPlib in solving both regular and irregular problems.