96,094 research outputs found
Mira: A Framework for Static Performance Analysis
The performance model of an application can pro- vide understanding about its
runtime behavior on particular hardware. Such information can be analyzed by
developers for performance tuning. However, model building and analyzing is
frequently ignored during software development until perfor- mance problems
arise because they require significant expertise and can involve many
time-consuming application runs. In this paper, we propose a fast, accurate,
flexible and user-friendly tool, Mira, for generating performance models by
applying static program analysis, targeting scientific applications running on
supercomputers. We parse both the source code and binary to estimate
performance attributes with better accuracy than considering just source or
just binary code. Because our analysis is static, the target program does not
need to be executed on the target architecture, which enables users to perform
analysis on available machines instead of conducting expensive exper- iments on
potentially expensive resources. Moreover, statically generated models enable
performance prediction on non-existent or unavailable architectures. In
addition to flexibility, because model generation time is significantly reduced
compared to dynamic analysis approaches, our method is suitable for rapid
application performance analysis and improvement. We present several scientific
application validation results to demonstrate the current capabilities of our
approach on small benchmarks and a mini application
Skip-Sliding Window Codes
Constrained coding is used widely in digital communication and storage
systems. In this paper, we study a generalized sliding window constraint called
the skip-sliding window. A skip-sliding window (SSW) code is defined in terms
of the length of a sliding window, skip length , and cost constraint
in each sliding window. Each valid codeword of length is determined by
windows of length where window starts at th symbol for
all non-negative integers such that ; and the cost constraint
in each window must be satisfied. In this work, two methods are given to
enumerate the size of SSW codes and further refinements are made to reduce the
enumeration complexity. Using the proposed enumeration methods, the noiseless
capacity of binary SSW codes is determined and observations such as greater
capacity than other classes of codes are made. Moreover, some noisy capacity
bounds are given. SSW coding constraints arise in various applications
including simultaneous energy and information transfer.Comment: 28 pages, 11 figure
Distance Properties of Short LDPC Codes and their Impact on the BP, ML and Near-ML Decoding Performance
Parameters of LDPC codes, such as minimum distance, stopping distance,
stopping redundancy, girth of the Tanner graph, and their influence on the
frame error rate performance of the BP, ML and near-ML decoding over a BEC and
an AWGN channel are studied. Both random and structured LDPC codes are
considered. In particular, the BP decoding is applied to the code parity-check
matrices with an increasing number of redundant rows, and the convergence of
the performance to that of the ML decoding is analyzed. A comparison of the
simulated BP, ML, and near-ML performance with the improved theoretical bounds
on the error probability based on the exact weight spectrum coefficients and
the exact stopping size spectrum coefficients is presented. It is observed that
decoding performance very close to the ML decoding performance can be achieved
with a relatively small number of redundant rows for some codes, for both the
BEC and the AWGN channels
Symbolic and analytic techniques for resource analysis of Java bytecode
Recent work in resource analysis has translated the idea of amortised resource analysis to imperative languages using a program logic that allows mixing of assertions about heap shapes, in the tradition of separation logic, and assertions about consumable resources. Separately, polyhedral methods have been used to calculate bounds on numbers of iterations in loop-based programs. We are attempting to combine these ideas to deal with Java programs involving both data structures and loops, focusing on the bytecode level rather than on source code
First-Passage Time and Large-Deviation Analysis for Erasure Channels with Memory
This article considers the performance of digital communication systems
transmitting messages over finite-state erasure channels with memory.
Information bits are protected from channel erasures using error-correcting
codes; successful receptions of codewords are acknowledged at the source
through instantaneous feedback. The primary focus of this research is on
delay-sensitive applications, codes with finite block lengths and, necessarily,
non-vanishing probabilities of decoding failure. The contribution of this
article is twofold. A methodology to compute the distribution of the time
required to empty a buffer is introduced. Based on this distribution, the mean
hitting time to an empty queue and delay-violation probabilities for specific
thresholds can be computed explicitly. The proposed techniques apply to
situations where the transmit buffer contains a predetermined number of
information bits at the onset of the data transfer. Furthermore, as additional
performance criteria, large deviation principles are obtained for the empirical
mean service time and the average packet-transmission time associated with the
communication process. This rigorous framework yields a pragmatic methodology
to select code rate and block length for the communication unit as functions of
the service requirements. Examples motivated by practical systems are provided
to further illustrate the applicability of these techniques.Comment: To appear in IEEE Transactions on Information Theor
SmartUnit: Empirical Evaluations for Automated Unit Testing of Embedded Software in Industry
In this paper, we aim at the automated unit coverage-based testing for
embedded software. To achieve the goal, by analyzing the industrial
requirements and our previous work on automated unit testing tool CAUT, we
rebuild a new tool, SmartUnit, to solve the engineering requirements that take
place in our partner companies. SmartUnit is a dynamic symbolic execution
implementation, which supports statement, branch, boundary value and MC/DC
coverage. SmartUnit has been used to test more than one million lines of code
in real projects. For confidentiality motives, we select three in-house real
projects for the empirical evaluations. We also carry out our evaluations on
two open source database projects, SQLite and PostgreSQL, to test the
scalability of our tool since the scale of the embedded software project is
mostly not large, 5K-50K lines of code on average. From our experimental
results, in general, more than 90% of functions in commercial embedded software
achieve 100% statement, branch, MC/DC coverage, more than 80% of functions in
SQLite achieve 100% MC/DC coverage, and more than 60% of functions in
PostgreSQL achieve 100% MC/DC coverage. Moreover, SmartUnit is able to find the
runtime exceptions at the unit testing level. We also have reported exceptions
like array index out of bounds and divided-by-zero in SQLite. Furthermore, we
analyze the reasons of low coverage in automated unit testing in our setting
and give a survey on the situation of manual unit testing with respect to
automated unit testing in industry.Comment: In Proceedings of 40th International Conference on Software
Engineering: Software Engineering in Practice Track, Gothenburg, Sweden, May
27-June 3, 2018 (ICSE-SEIP '18), 10 page
- …