Analysis Of Floating Point Programs For Numerical Reliability And Efficiency


Download Analysis Of Floating Point Programs For Numerical Reliability And Efficiency PDF/ePub or read online books in Mobi eBooks. Click Download or Read Online button to get Analysis Of Floating Point Programs For Numerical Reliability And Efficiency book now. This website allows unlimited access to, at the time of writing, more than 1.5 million titles, including hundreds of thousands of titles in various foreign languages.

Download

Analysis of Floating-point Programs for Numerical Reliability and Efficiency


Analysis of Floating-point Programs for Numerical Reliability and Efficiency

Author: Hui Guo

language: en

Publisher:

Release Date: 2020


DOWNLOAD





Floating-point representation is widely used in modern days to emulate arithmetic over reals. Unfortunately, floating-point arithmetic leads to rounding errors that propagate and accumulate during execution. Even though floating-point programs may work properly with rounding errors in most cases, there are situations in which the accumulation of rounding errors may lead to catastrophic failures in the real world. In this dissertation, we consider a program failure that is caused by floating-point arithmetic as a numerical bug. This dissertation aims to understand numerical bugs that appear in real-world applications, and more importantly, improve the reliability and efficiency of floating-point programs via program analysis. This work starts with an empirical study of five widely used real-world numerical software libraries to understand the characteristics of numerical bugs. Numerical bugs are known to be particularly difficult to diagnose and fix. Understanding the characteristics of numerical bugs is the first step to combat them more effectively. In the study, we propose a categorization of numerical bugs, and discuss their frequency, symptoms and fixes. To the best of our knowledge, this is the first comprehensive study of real-world numerical bugs. The second part of this dissertation focuses on generating error-inducing inputs to expose and maximize the numerical error in the program output. Such error-inducing inputs are important in testing and debugging floating-point programs. Specifically, we formulate the problem of generating high error-inducing floating-point inputs as a code coverage maximization problem. The code coverage maximization problem has been widely explored and can be solved using symbolic execution. Our key insight is that by injecting inaccuracy checks after floating-point arithmetic operations, we force the symbolic execution engine to explore the probability of the occurrence of severe rounding errors and numerical cancellations in different code regions. We implemented the algorithm into a tool named FPGen. Our evaluation shows that FPGen significantly outperforms the state-of-the-art error-inducing input generator by triggering errors in 33% more programs, and by triggering errors that are, on average, more than 2 orders of magnitude larger. Third, we automatically identify mixed-precision configurations a program can potentially use to achieve a good balance between accuracy and performance. In particular, we use lower precision types in some code areas of the program to improve its performance while the new program still produces correct results with regard to an error threshold. Specifically, we perform program analysis to obtain the community structure of the floating-point variables in the program. The community structure describes how frequently each variable interacts with each other. We explore lower precision configurations of the program by hierarchically searching through configurations of the variable communities from top down to bottom of the community structure. We implemented our algorithm in the tool HiFPTuner, and show that it exhibits higher search efficiency over the state-of-the-art precision tuning tool. Lastly, we present pLiner, a tool to automatically pinpoint lines of code that trigger compiler-induced variability. Floating-point arithmetic does not satisfy the commutative, associative and distributive laws. A compiler optimization may change the semantics of the floating-point code, therefore, introduce variability in program results. pLiner uses a novel approach to enhance the precision at different granularities and performs a guided search to identify code areas that are the origin of compiler-induced variability. Comparing to the state-of-the-art tool that identifies the root cause of floating-point errors, our evaluation shows that pLiner is 81% more effective detecting the origin of compiler-induced variability.

Applied Linear Algebra


Applied Linear Algebra

Author: Kartikeya Dutta

language: en

Publisher: Educohack Press

Release Date: 2025-02-20


DOWNLOAD





"Applied Linear Algebra: Core Principles" is a comprehensive guide that delves into the principles, methodologies, and practical applications of linear algebra in various fields of science, engineering, and technology. Combining theoretical foundations, computational techniques, and real-world examples, this book offers a holistic approach to understanding and utilizing linear algebra concepts. Covering a wide range of topics, including vector spaces, matrices, eigenvalue problems, singular value decomposition, and numerical techniques, readers will gain a thorough understanding of both fundamental and advanced principles. Real-world applications in data science, machine learning, signal processing, control systems, and image processing are integrated throughout, demonstrating the practical relevance of linear algebra. Complex mathematical concepts are presented in a clear and accessible manner, making the book suitable for students, researchers, and practitioners with varying levels of mathematical background. Detailed explanations, illustrative examples, and step-by-step solutions aid comprehension and retention. An interdisciplinary approach connects theoretical concepts with practical applications, highlighting the versatility of linear algebra in solving real-world problems. Extensive references to literature, research papers, and online resources enable readers to explore topics in greater depth. This book is an invaluable resource for students, researchers, and professionals seeking to apply linear algebra techniques in their work across various domains.

Numerical Computation 1


Numerical Computation 1

Author: Christoph W. Ueberhuber

language: en

Publisher: Springer Science & Business Media

Release Date: 2012-12-06


DOWNLOAD





This book deals with various aspects of scientific numerical computing. No at tempt was made to be complete or encyclopedic. The successful solution of a numerical problem has many facets and consequently involves different fields of computer science. Computer numerics- as opposed to computer algebra- is thus based on applied mathematics, numerical analysis and numerical computation as well as on certain areas of computer science such as computer architecture and operating systems. Applied Mathemalies I I I Numerical Analysis Analysis, Algebra I I Numerical Computation Symbolic Computation I Operating Systems Computer Hardware Each chapter begins with sample situations taken from specific fields of appli cation. Abstract and general formulations of mathematical problems are then presented. Following this abstract level, a general discussion about principles and methods for the numerical solution of mathematical problems is presented. Relevant algorithms are developed and their efficiency and the accuracy of their results is assessed. It is then explained as to how they can be obtained in the form of numerical software. The reader is presented with various ways of applying the general methods and principles to particular classes of problems and approaches to extracting practically useful solutions with appropriately chosen numerical software are developed. Potential difficulties and obstacles are examined, and ways of avoiding them are discussed. The volume and diversity of all the available numerical software is tremendous.