Results 1 
8 of
8
Optimal resilient sorting and searching in the presence of memory faults
 IN PROC. 33RD INTERNATIONAL COLLOQUIUM ON AUTOMATA, LANGUAGES AND PROGRAMMING, VOLUME 4051 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2006
"... We investigate the problem of reliable computation in the presence of faults that may arbitrarily corrupt memory locations. In this framework, we consider the problems of sorting and searching in optimal time while tolerating the largest possible number of memory faults. In particular, we design an ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
We investigate the problem of reliable computation in the presence of faults that may arbitrarily corrupt memory locations. In this framework, we consider the problems of sorting and searching in optimal time while tolerating the largest possible number of memory faults. In particular, we design an O(n log n) time sorting algorithm that can optimally tolerate up to O ( √ n log n) memory faults. In the special case of integer sorting, we present an algorithm with linear expected running time that can tolerate O ( √ n) faults. We also present a randomized searching algorithm that can optimally tolerate up to O(log n) memory faults in O(log n) expected time, and an almost optimal deterministic searching algorithm that can tolerate O((log n) 1−ǫ) faults, for any small positive constant ǫ, in O(log n) worstcase time. All these results improve over previous bounds.
Designing Reliable Algorithms in Unreliable Memories
"... Some of today’s applications run on computer platforms with large and inexpensive memories, which are also errorprone. Unfortunately, the appearance of even very few memory faults may jeopardize the correctness of the computational results. An algorithm is resilient to memory faults if, despite t ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
Some of today’s applications run on computer platforms with large and inexpensive memories, which are also errorprone. Unfortunately, the appearance of even very few memory faults may jeopardize the correctness of the computational results. An algorithm is resilient to memory faults if, despite the corruption of some memory values before or during its execution, it is nevertheless able to get a correct output at least on the set of uncorrupted values. In this paper we will survey some recent work on reliable computation in the presence of memory faults.
Local dependency dynamic programming in the presence of memory faults
 In STACS, volume 9 of LIPIcs
, 2011
"... memory faults ..."
Dynamic programming in faulty memory hierarchies (cacheobliviously) ∗
"... Random access memories suffer from transient errors that lead the logical state of some bits to be read differently from how they were last written. Due to technological constraints, caches in the memory hierarchy of modern computer platforms appear to be particularly prone to bit flips. Since algor ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
Random access memories suffer from transient errors that lead the logical state of some bits to be read differently from how they were last written. Due to technological constraints, caches in the memory hierarchy of modern computer platforms appear to be particularly prone to bit flips. Since algorithms implicitly assume data to be stored in reliable memories, they might easily exhibit unpredictable behaviors even in the presence of a small number of faults. In this paper we investigate the design of dynamic programming algorithms in faulty memory hierarchies. Previous works on resilient algorithms considered a onelevel faulty memory model and, with respect to dynamic programming, could address only problems with local dependencies. Our improvement upon these works is twofold: (1) we significantly extend the class of problems that can be solved resiliently via dynamic programming in the presence of faults, settling challenging nonlocal problems such as allpairs shortest paths and matrix multiplication; (2) we investigate the connection between resiliency and cacheefficiency, providing cacheoblivious implementations that incur an (almost) optimal number of cache misses. Our approach yields the first resilient algorithms that can tolerate faults at any level of the memory hierarchy, while maintaining cacheefficiency. All our algorithms are correct with high probability and match the running time and cache misses of their standard nonresilient counterparts while tolerating a large (polynomial) number of faults. Our results also extend to Fast Fourier Transform. 1998 ACM Subject Classification B.8 [Performance and reliability]; F.2 [Analysis of algorithms and problem complexity]; I.2.8 [Dynamic programming].
The Price of Resiliency: A Case Study on Sorting with Memory Faults
, 2006
"... We address the problem of sorting in the presence of faults that may arbitrarily corrupt memory locations, and investigate the impact of memory faults both on the correctness and on the running times of mergesortbased algorithms. To achieve this goal, we develop a software testbed that simulates di ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
We address the problem of sorting in the presence of faults that may arbitrarily corrupt memory locations, and investigate the impact of memory faults both on the correctness and on the running times of mergesortbased algorithms. To achieve this goal, we develop a software testbed that simulates different fault injection strategies, and perform a thorough experimental study using a combination of several fault parameters. Our experiments give evidence that simpleminded approaches to this problem are largely impractical, while the design of more sophisticated resilient algorithms seems really worth the effort. Another contribution of our computational study is a carefully engineered implementation of a resilient sorting algorithm, which appears robust to different memory fault patterns.
Resilient dynamic programming∗
, 2015
"... We investigate the design of dynamic programming algorithms in unreliable memories, i.e., in the presence of errors that lead the logical state of some bits to be read differently from how they were last written. Assuming that a limited number of memory faults can be inserted at runtime by an adver ..."
Abstract
 Add to MetaCart
(Show Context)
We investigate the design of dynamic programming algorithms in unreliable memories, i.e., in the presence of errors that lead the logical state of some bits to be read differently from how they were last written. Assuming that a limited number of memory faults can be inserted at runtime by an adversary with unbounded computational power, we obtain the first resilient algorithms for a broad range of dynamic programming problems, devising a general framework that can be applied to both iterative and recursive implementations. Besides all local dependency problems, where updates to table entries are determined by the contents of neighboring cells, we also settle challenging nonlocal problems, such as allpairs shortest paths and matrix multiplication. All our algorithms are correct with high probability and match the running time of their standard nonresilient counterparts while tolerating a polynomial number of faults. The recursive algorithms are also cacheefficient and can tolerate faults at any level of the memory hierarchy. Our results exploit a careful combination of data replication, majority techniques, fingerprint computations, and lazy fault detection. To cope with the complex data access patterns induced by some of our algorithms, we also devise amplified fingerprints, which might be of independent interest in the design of resilient algorithms for different problems.
Periodic, RandomFaultTolerant Correction Networks
"... We study the problem of sorting sequences of Nkeys that can be obtained from sorted ones by changing values of s, 0 < s ≤ N, keys at unknown positions. Such sdisturbed sequences can appear as outputs of a sorting network that contains faulty comparators. We present a simple comparator network o ..."
Abstract
 Add to MetaCart
(Show Context)
We study the problem of sorting sequences of Nkeys that can be obtained from sorted ones by changing values of s, 0 < s ≤ N, keys at unknown positions. Such sdisturbed sequences can appear as outputs of a sorting network that contains faulty comparators. We present a simple comparator network of depth 4 that sorts 1disturbed sequences in logarithmic time, where the network is used repeatedly, i.e. if its output is not sorted, the network is run again taking the output as input. Then we analyze the passivefault model of comparator networks introduced by Yao and Yao, where a faulty comparator outputs directly its input without making a comparison. In this context, we give a construction of Ninput, ffaulttolerant comparator networks of depth 6 that sort 1disturbed sequences in time O(logN + f). Finally, we prove that choosing f = O(logN) one can make such networks randomfaulttolerant. In the last two results the constructions and their analysis are simpler as the previous nonperiodic ones, and still their runtimes are asymptotically optimal.