Demo Data from EDBT 2026 / reviewers in the wild / expert
William Kahan
dblp:k/WilliamKahan
· DBLP profile ↗
6ranked-venue papers
1as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 4 · 1 first-authorSystems, architecture and hardware · 1Software engineering, systems software and programming languages · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
2 papers |
Compilers and program optimization · 78% Program analysis · 17% Software testing · 5% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
High-performance computing · 100% |
Topics — the 5 heaviest of 6, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization › approximate computing › precision tuning
floating-point precision tuning |
0.4 | 2 | 2016 | Floating-point precision tuning using blame analysis · ICSE 2016 Precimonious: tuning assistant for floating-point precision · SC 2013 |
Program analysis
dynamic analysis |
0.2 | 1 | 2013 | Precimonious: tuning assistant for floating-point precision · SC 2013 |
Compilers and program optimization › approximate computing › precision tuning
mixed-precision tuning |
0.2 | 1 | 2013 | Precimonious: tuning assistant for floating-point precision · SC 2013 |
Compilers and program optimization › approximate computing
precision tuning |
0.2 | 1 | 2013 | Precimonious: tuning assistant for floating-point precision · SC 2013 |
High-performance computing
performance optimization at scale |
0.1 | 1 | 2016 | Floating-point precision tuning using blame analysis · ICSE 2016 |
Methods — techniques the papers use, named apart from their topics
search-based optimization · 0.5dynamic analysis · 0.5blame analysis · 0.5search-based type tuning · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Floating-point precision tuning using blame analysisabstractWhile tremendously useful, automated techniques for tuning the precision of floating-point programs face important scalability challenges. We present Blame Analysis, a novel dynamic approach that speeds up precision tuning. Blame Analysis performs floating-point instructions using different levels of accuracy for their operands. The analysis determines the precision of all operands such that a given precision is achieved in the final result of the program. Our evaluation on ten scientific programs shows that Blame Analysis is successful in lowering operand precision. As it executes the program only once, the analysis is particularly useful when targeting reductions in execution time. In such case, the analysis needs to be combined with search-based tools such as Precimonious. Our experiments show that combining Blame Analysis with Precimonious leads to obtaining better results with significant reduction in analysis time: the optimized programs execute faster (in three cases, we observe as high as 39.9% program speedup) and the combined analysis time is 9x faster on average, and up to 38x faster than Precimonious alone. Cindy Rubio-González, Cuong Nguyen 0001, Benjamin Mehne, Koushik Sen, James Demmel, William Kahan, Costin Iancu, Wim T. L. P. Lavrijsen, David H. Bailey, David Hough 0001 |
ICSE | 6 |
| 2013 | Precimonious: tuning assistant for floating-point precisionabstractGiven the variety of numerical errors that can occur, floating-point programs are difficult to write, test and debug. One common practice employed by developers without an advanced background in numerical analysis is using the highest available precision. While more robust, this can degrade program performance significantly. In this paper we present Precimonious, a dynamic program analysis tool to assist developers in tuning the precision of floating-point programs. Precimonious performs a search on the types of the floating-point program variables trying to lower their precision subject to accuracy constraints and performance goals. Our tool recommends a type instantiation that uses lower precision while producing an accurate enough answer without causing exceptions. We evaluate Precimonious on several widely used functions from the GNU Scientific Library, two NAS Parallel Benchmarks, and three other numerical programs. For most of the programs analyzed, Precimonious reduces precision, which results in performance improvements as high as 41%. Cindy Rubio-González, Cuong Nguyen 0001, Hong Diep Nguyen, James Demmel, William Kahan, Koushik Sen, David H. Bailey, Costin Iancu, David Hough 0001 |
SC | 5 |
| 2006 | Error bounds from extra-precise iterative refinementabstractWe present the design and testing of an algorithm for iterative refinement of the solution of linear equations where the residual is computed with extra precision. This algorithm was originally proposed in 1948 and analyzed in the 1960s as a means to compute very accurate solutions to all but the most ill-conditioned linear systems. However, two obstacles have until now prevented its adoption in standard subroutine libraries like LAPACK: (1) There was no standard way to access the higher precision arithmetic needed to compute residuals, and (2) it was unclear how to compute a reliable error bound for the computed solution. The completion of the new BLAS Technical Forum Standard has essentially removed the first obstacle. To overcome the second obstacle, we show how the application of iterative refinement can be used to compute an error bound in any norm at small cost and use this to compute both an error bound in the usual infinity norm, and a componentwise relative error bound.We report extensive test results on over 6.2 million matrices of dimensions 5, 10, 100, and 1000. As long as a normwise (componentwise) condition number computed by the algorithm is less than 1/max{10,√n}εw, the computed normwise (componentwise) error bound is at most 2 max{10,√n} · εw, and indeed bounds the true error. Here,nis the matrix dimension and εw= 2-24is the working precision. Residuals were computed in double precision (53 bits of precision). In other words, the algorithm always computed a tiny error at negligible extra cost for most linear systems. For worse conditioned problems (which we can detect using condition estimation), we obtained small correct error bounds in over 90% of cases. James Demmel, Yozo Hida, William Kahan, Xiaoye S. Li, Sonil Mukherjee, E. Jason Riedy |
ACM Trans. Math. Softw. | 3 |
| 2002 | On computing givens rotations reliably and efficientlyabstractWe consider the efficient and accurate computation of Givens rotations. When f and g are positive real numbers, this simply amounts to computing the values of c = f /√ f 2 + g 2 , s = g /√ f 2 + g 2 , and r = √ f 2 + g 2 . This apparently trivial computation merits closer consideration for the following three reasons. First, while the definitions of c , s and r seem obvious in the case of two nonnegative arguments f and g , there is enough freedom of choice when one or more of f and g are negative, zero or complex that LAPACK auxiliary routines SLARTG, CLARTG, SLARGV and CLARGV can compute rather different values of c , s and r for mathematically identical values of f and g . To eliminate this unnecessary ambiguity, the BLAS Technical Forum chose a single consistent definition of Givens rotations that we will justify here. Second, computing accurate values of c , s and r as efficiently as possible and reliably despite over/underflow is surprisingly complicated. For complex Givens rotations, the most efficient formulas require only one real square root and one real divide (as well as several much cheaper additions and multiplications), but a reliable implementation using only working precision has a number of cases. On a Sun Ultra-10, the new implementation is slightly faster than the previous LAPACK implementation in the most common case, and 2.7 to 4.6 times faster than the corresponding vendor, reference or ATLAS routines. It is also more reliable; all previous codes occasionally suffer from large inaccuracies due to over/underflow. For real Givens rotations, there are also improvements in speed and accuracy, though not as striking. Third, the design process that led to this reliable implementation is quite systematic, and could be applied to the design of similarly reliable subroutines. David Bindel, James Demmel, William Kahan, Osni Marques |
ACM Trans. Math. Softw. | 3 |
| 2002 | Design, implementation and testing of extended and mixed precision BLASabstractThis article describes the design rationale, a C implementation, and conformance testing of a subset of the new Standard for the BLAS (Basic Linear Algebra Subroutines): Extended and Mixed Precision BLAS. Permitting higher internal precision and mixed input/output types and precisions allows us to implement some algorithms that are simpler, more accurate, and sometimes faster than possible without these features. The new BLAS are challenging to implement and test because there are many more subroutines than in the existing Standard, and because we must be able to assess whether a higher precision is used for internal computations than is used for either input or output variables. We have therefore developed an automated process of generating and systematically testing these routines. Our methodology is applicable to languages besides C. In particular, our algorithms used in the testing code will be valuable to all other BLAS implementors. Our extra precision routines achieve excellent performance---close to half of the machine peak Megaflop rate even for the Level 2 BLAS, when the data access is stride one. Xiaoye S. Li, James Demmel, David H. Bailey, Greg Henry, Yozo Hida, Jimmy Iskandar, William Kahan, Suh Y. Kang, Anil Kapur, Michael C. Martin, Brandon Thompson, Teresa Tung, Daniel J. Yoo |
ACM Trans. Math. Softw. | 7 |
| 1985 | Anomalies in the IBM ACRITH packageabstractThe IBM ACRITH package of numerical software is advertised as reliable and easy to use; but sometimes its results must astonish or confuse a naive user. This report exhibits a few of the surprises. For instance, a finite continued fraction, easy to evaluate in two dozen keystrokes on a handheld calculator, causes ACRITH to overflow either exponent range or 15 Megabytes of virtual memory. Lacking access to source code, we must speculate to explain the anomalies. Some seem attributable to small bugs in the code; some to optimistic claims or oversimplifications in the code's documentation; some to flaws in the doctrine underlying the code. We conclude that different techniques than used by ACRITH might have been about as accurate and yet more economical, robust and perspicuous. William Kahan, E. LeBlanc |
IEEE Symposium on Computer Arithmetic | 1 |