VLDB 2026 Research / reviewers in the wild / expert
Irene Finocchi
dblp:f/IreneFinocchi
· DBLP profile ↗
49ranked-venue papers
16as first author
1since 2021 · last 2024
0000-0002-6394-6798ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 31 · 15 first-authorSoftware engineering, systems software and programming languages · 9Systems, architecture and hardware · 4Artificial intelligence and machine learning · 2Databases, data management, data science and information retrieval · 2Computer networks · 1Graphics, computer vision, multimedia, augmented reality and games · 1Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 first-author · 1 since 2021
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
6 papers |
Program analysis · 48% Programming languages and type systems · 18% Software maintenance and evolution · 18% | |
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Performance modeling and evaluation · 85% Hardware reliability and fault tolerance · 15% | |
| Theoretical computer science
7 papers |
Algorithms and data structures · 58% Graph algorithms and graph theory · 24% Distributed computing theory · 18% | |
| Databases, data mining, and information retrieval
1 paper |
Knowledge graphs · 50% Graph data management · 50% |
Topics — the 24 heaviest of 29, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Performance modeling and evaluation
workload characterization |
0.6 | 4 | 2014 | Input-Sensitive Profiling · IEEE Trans. Software Eng. 2014 Input-sensitive profiling · PLDI 2012 k-Calling context profiling · OOPSLA 2012 |
Performance modeling and evaluation
profiling |
0.3 | 2 | 2014 | Input-Sensitive Profiling · IEEE Trans. Software Eng. 2014 Input-sensitive profiling · PLDI 2012 |
Graph data management › graph algorithms
graph pruning |
0.3 | 1 | 2018 | Efficient Pruning of Large Knowledge Graphs · IJCAI 2018 |
Software maintenance and evolution › change impact analysis
change propagation |
0.3 | 2 | 2014 | Reactive Imperative Programming with Dataflow Constraints · ACM Trans. Program. Lang. Syst. 2014 Reactive imperative programming with dataflow constraints · OOPSLA 2011 |
Program analysis › dynamic analysis › profiling
calling context profiling |
0.3 | 2 | 2012 | k-Calling context profiling · OOPSLA 2012 Mining hot calling contexts in small space · PLDI 2011 |
Program analysis › static analysis
incremental analysis |
0.2 | 1 | 2014 | Reactive Imperative Programming with Dataflow Constraints · ACM Trans. Program. Lang. Syst. 2014 |
Programming languages and type systems
language design |
0.2 | 1 | 2014 | Reactive Imperative Programming with Dataflow Constraints · ACM Trans. Program. Lang. Syst. 2014 |
Compilers and program optimization
performance bottleneck identification |
0.2 | 1 | 2014 | Input-Sensitive Profiling · IEEE Trans. Software Eng. 2014 |
Hardware reliability and fault tolerance › software fault tolerance
fault-tolerant data structures |
0.2 | 2 | 2009 | Resilient dictionaries · ACM Trans. Algorithms 2009 Resilient search trees · SODA 2007 |
Algorithms and data structures › data streams › streaming algorithms
graph streaming |
0.2 | 2 | 2009 | Trading off space for passes in graph streaming problems · ACM Trans. Algorithms 2009 Trading off space for passes in graph streaming problems · SODA 2006 |
Program analysis › dynamic analysis
profiling |
0.1 | 1 | 2012 | k-Calling context profiling · OOPSLA 2012 |
Program analysis
constraint solving |
0.1 | 1 | 2011 | Reactive imperative programming with dataflow constraints · OOPSLA 2011 |
Program analysis
dynamic analysis |
0.1 | 1 | 2011 | Mining hot calling contexts in small space · PLDI 2011 |
Distributed computing theory › fault tolerance
fault-tolerant algorithm |
0.1 | 2 | 2006 | Optimal Resilient Sorting and Searching in the Presence of Memory Faults · ICALP (1) 2006 Sorting and searching in the presence of memory faults (without redundancy) · STOC 2004 |
Algorithms and data structures › data structure design › search structures
dictionary data structure |
0.1 | 1 | 2009 | Resilient dictionaries · ACM Trans. Algorithms 2009 |
Graph algorithms and graph theory › shortest path
single-source shortest paths |
0.1 | 1 | 2009 | Trading off space for passes in graph streaming problems · ACM Trans. Algorithms 2009 |
Graph algorithms and graph theory › graph algorithms › connectivity
undirected connectivity |
0.1 | 1 | 2009 | Trading off space for passes in graph streaming problems · ACM Trans. Algorithms 2009 |
Algorithms and data structures › data structure design › search structures
search trees |
0.1 | 1 | 2007 | Resilient search trees · SODA 2007 |
Algorithms and data structures
sorting and searching |
0.0 | 1 | 2004 | Sorting and searching in the presence of memory faults (without redundancy) · STOC 2004 |
Debugging and program repair
performance debugging |
0.0 | 1 | 2012 | Input-sensitive profiling · PLDI 2012 |
Debugging and program repair › program repair
data structure repair |
0.0 | 1 | 2011 | Reactive imperative programming with dataflow constraints · OOPSLA 2011 |
Distributed computing theory
distributed graph coloring |
0.0 | 1 | 2002 | Experimental analysis of simple, distributed vertex coloring algorithms · SODA 2002 |
Algorithms and data structures › data streams
data stream processing |
0.0 | 1 | 2009 | Trading off space for passes in graph streaming problems · ACM Trans. Algorithms 2009 |
Algorithms and data structures › data streams › streaming algorithms › graph streaming
semi-streaming model |
0.0 | 1 | 2009 | Trading off space for passes in graph streaming problems · ACM Trans. Algorithms 2009 |
Methods — techniques the papers use, named apart from their topics
statistical curve fitting · 0.7iterative layering · 0.3bottom-up graph traversal · 0.3edge profiling · 0.3dynamic instrumentation · 0.3context-sensitive profiling · 0.3bounding techniques · 0.3amortized analysis · 0.2valgrind · 0.2self-adjusting computation · 0.2dataflow constraint solving · 0.2VALGRIND · 0.2resilient data structures · 0.1streaming algorithms · 0.1space-passes tradeoffs · 0.1lower bound arguments · 0.1lower bound argument · 0.1fault tolerance · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | From Stars to Diamonds: Counting and Listing Almost Complete Subgraphs in Large NetworksabstractAbstract Listing dense subgraphs is a fundamental task with a variety of network analytics applications. A lot of research has been done focusing on $k$-cliques, i.e. complete subgraphs on $k$ nodes. However, requiring complete connectivity between the nodes of a subgraph may be too restrictive in many real applications. Hence, in this paper, we consider a natural relaxation of cliques, called $k$-diamonds and defined as cliques of size $k$ with one missing edge. We first provide a sequential algorithm that, in $O(nm^{(k-1)/2})$ time, counts and lists all the $k$-diamonds in large graphs, for any constant $k \geq 4$. A parallel extension of the sequential algorithm is then proposed and analyzed in a MapReduce-style model, achieving the same local and total space usage of the state-of-the-art algorithms for $k$-cliques. The running time is optimal on dense graphs and $O(\sqrt{m})$ larger than $k$-clique counting if the graph is sparse. Our algorithms compute induced diamonds by analyzing the structure of directed stars formed by the graph nodes and their neighbors. Irene Finocchi, Renan Leon Garcia, Blerina Sinaimeri |
Comput. J. | 1 |
| 2019 | Counting cliques in parallel without a cluster: Engineering a fork/join algorithm for shared-memory platforms
Emilio Coppa, Irene Finocchi, Renan Leon Garcia |
Inf. Sci. | 2 |
| 2018 | Efficient Pruning of Large Knowledge GraphsabstractIn this paper we present an efficient and highly accurate algorithm to prune noisy or over-ambiguous knowledge graphs given as input an extensional definition of a domain of interest, namely as a set of instances or concepts. Our method climbs the graph in a bottom-up fashion, iteratively layering the graph and pruning nodes and edges in each layer while not compromising the connectivity of the set of input nodes. Iterative layering and protection of pre-defined nodes allow to extract semantically coherent DAG structures from noisy or over-ambiguous cyclic graphs, without loss of information and without incurring in computational bottlenecks, which are the main problem of state-of-the-art methods for cleaning large, i.e., Web-scale, knowledge graphs. We apply our algorithm to the tasks of pruning automatically acquired taxonomies using benchmarking data from a SemEval evaluation exercise, as well as the extraction of a domain-adapted taxonomy from the Wikipedia category hierarchy. The results show the superiority of our approach over state-of-art algorithms in terms of both output quality and computational efficiency. Stefano Faralli 0001, Irene Finocchi, Simone Paolo Ponzetto, Paola Velardi |
IJCAI | 2 |
| 2018 | CrumbTrail: An efficient methodology to reduce multiple inheritance in knowledge graphs
Stefano Faralli 0001, Irene Finocchi, Simone Paolo Ponzetto, Paola Velardi |
Knowl. Based Syst. | 2 |
| 2017 | Guest Editors' Foreword
Nikhil Bansal 0001, Irene Finocchi |
Algorithmica | 2 |
| 2017 | Resilient Dynamic Programming
Saverio Caminiti, Irene Finocchi, Emanuele G. Fusco, Francesco Silvestri 0001 |
Algorithmica | 2 |
| 2016 | Mining hot calling contexts in small spaceabstractCalling context trees (CCTs) associate performance metrics with paths through a program's call graph, providing valuable information for program understanding and performance analysis. In real applications, however, CCTs might easily consist of tens of millions of nodes, making them difficult to analyze and also hurting execution times because of poor access locality. For performance analysis, accurately mining only hot calling contexts may be more useful than constructing an entire CCT with millions of uninteresting paths, because the distribution of context frequencies is typically very skewed. In this article, we show how to exploit this property to considerably reduce the CCT size, introducing a novel runtime data structure, called hot CCT (HCCT), in the spectrum of representations for interprocedural control flow. The HCCT includes only hot nodes and their ancestors in a CCT and can be constructed independently from it by using fast, space-efficient algorithms for mining frequent items in data streams. With this approach, we can distinguish between hot and cold contexts on the fly while obtaining very accurate frequency counts. We show, both theoretically and experimentally, that the HCCT achieves a similar precision as the CCT in a space that is several orders of magnitude smaller and roughly proportional to the number of hot contexts. Our approach can be effectively combined with previous context-sensitive profiling techniques, as we show for static bursting. We devise an implementation as a plug-in for the gcc compiler that incurs a slowdown competitive with the gprof call-graph profiler while collecting finer-grained profiles. Copyright © 2015 John Wiley & Sons, Ltd. Daniele Cono D'Elia, Camil Demetrescu, Irene Finocchi |
Softw. Pract. Exp. | 3 |
| 2015 | On data skewness, stragglers, and MapReduce progress indicatorsabstractWe tackle the problem of predicting the performance of MapReduce applications designing accurate progress indicators, which keep programmers informed on the percentage of completed computation time during the execution of a job. This is especially important in pay-as-you-go cloud environments, where slow jobs can be aborted in order to avoid excessive costs. Performance predictions can also serve as a building block for several profile-guided optimizations. By assuming that the running time depends linearly on the input size, state-of-the-art techniques can be seriously harmed by data skewness, load unbalancing, and straggling tasks. We thus design a novel profile-guided progress indicator, called NearestFit, that operates without the linear hypothesis assumption in a fully online way (i.e., without resorting to profile data collected from previous executions). NearestFit exploits a careful combination of nearest neighbor regression and statistical curve fitting techniques. Fine-grained profiles required by our theoretical progress model are approximated through space- and time-efficient data streaming algorithms. We implemented NearestFit on top of Hadoop 2.6.0. An extensive empirical assessment over the Amazon EC2 platform on a variety of benchmarks shows that its accuracy is very good, even when competitors incur non-negligible errors and wide prediction fluctuations. Emilio Coppa, Irene Finocchi |
SoCC | 2 |
| 2014 | Estimating the Empirical Cost Function of Routines with Dynamic Workloads
Emilio Coppa, Camil Demetrescu, Irene Finocchi, Romolo Marotta |
CGO | 3 |
| 2014 | Reactive Imperative Programming with Dataflow ConstraintsabstractDataflow languages provide natural support for specifying constraints between objects in dynamic applications, where programs need to react efficiently to changes in their environment. In this article, we show that one-way dataflow constraints, largely explored in the context of interactive applications, can be seamlessly integrated in any imperative language and can be used as a general paradigm for writing performance-critical reactive applications that require efficient incremental computations. In our framework, programmers can define ordinary statements of the imperative host language that enforce constraints between objects stored in special memory locations designated as “reactive.” Reactive objects can be of any legal type in the host language, including primitive data types, pointers, arrays, and structures. Statements defining constraints are automatically re-executed every time their input memory locations change, letting a program behave like a spreadsheet where the values of some variables depend on the values of other variables. The constraint-solving mechanism is handled transparently by altering the semantics of elementary operations of the host language for reading and modifying objects. We provide a formal semantics and describe a concrete embodiment of our technique into C/C++, showing how to implement it efficiently in conventional platforms using off-the-shelf compilers. We discuss common coding idioms and relevant applications to reactive scenarios, including incremental computation, observer design pattern, data structure repair, and software visualization. The performance of our implementation is compared to problem-specific change propagation algorithms, as well as to language-centric approaches such as self-adjusting computation and subject/observer communication mechanisms, showing that the proposed approach is efficient in practice. Camil Demetrescu, Irene Finocchi, Andrea Ribichini |
ACM Trans. Program. Lang. Syst. | 2 |
| 2014 | Input-Sensitive ProfilingabstractIn this article we present a building block technique and a toolkit towards automatic discovery of workload-dependentperformance bottlenecks. From one or more runs of a program, our profiler automatically measures how the performance of individual routines scales as a function of the input size, yielding clues to their growth rate. The output of the profiler is, for each executed routine of the program, a set of tuples that aggregate performance costs by input size. The collected profiles can be used to produceperformance plots and derive trend functions by statistical curve fitting techniques. A key feature of our method is the ability toautomatically measure the size of the input given to a generic code fragment: to this aim, we propose an effective metric for estimating the input size of a routine and show how to compute it efficiently. We discuss several examples, showing that our approach can reveal asymptotic bottlenecks that other profilers may fail to detect and can provide useful characterizations of the workload and behavior of individual routines in the context of mainstream applications, yielding several code optimizations as well as algorithmic improvements. To prove the feasibility of our techniques, we implemented a Valgrind tool called aprof and performed an extensive experimentalevaluation on the SPEC CPU2006 benchmarks. Our experiments show that aprof delivers comparable performance to otherprominent Valgrind tools, and can generate informative plots even from single runs on typical workloads for mostalgorithmically-critical routines. Emilio Coppa, Camil Demetrescu, Irene Finocchi |
IEEE Trans. Software Eng. | 3 |
| 2013 | Software Streams: Big Data Challenges in Dynamic Program Analysis
Irene Finocchi |
CiE | 1 |
| 2012 | k-Calling context profilingabstractCalling context trees are one of the most fundamental data structures for representing the interprocedural control flow of a program, providing valuable information for program understanding and optimization. Nodes of a calling context tree associate performance metrics to whole distinct paths in the call graph starting from the root function. However, no explicit information is provided for detecting short hot sequences of activations, which may be a better optimization target in large modular programs where groups of related functions are reused in many different parts of the code. Furthermore, calling context trees can grow prohibitively large in some scenarios. Another classical approach, called edge profiling, collects performance metrics for caller-callee pairs in the call graph, allowing it to detect hot paths of fixed length one. We study a generalization of edge and context-sensitive profiles by introducing a novel data structure called k-calling context forest (k-CCF). Nodes in a k-CCF associate performance metrics to paths of length at most k that lead to each distinct routine of the program, providing edge profiles for k=1, full context-sensitive profiles for k equal to infinity, as well as any other intermediate point in the spectrum. We study the properties of the k-CCF both theoretically and experimentally on a large suite of prominent Linux applications, showing how to construct it efficiently and discussing its relationships with the calling context tree. Our experiments show that the k-CCF can provide effective space-accuracy tradeoffs for interprocedural contextual profiling, yielding useful clues to the hot spots of a program that may be hidden in a calling context tree and using less space for small values of k, which appear to be the most interesting in practice. Giorgio Ausiello, Camil Demetrescu, Irene Finocchi, Donatella Firmani |
OOPSLA | 3 |
| 2012 | Input-sensitive profilingabstractIn this paper we present a profiling methodology and toolkit for helping developers discover hidden asymptotic inefficiencies in the code. From one or more runs of a program, our profiler automatically measures how the performance of individual routines scales as a function of the input size, yielding clues to their growth rate. The output of the profiler is, for each executed routine of the program, a set of tuples that aggregate performance costs by input size. The collected profiles can be used to produce performance plots and derive trend functions by statistical curve fitting or bounding techniques. A key feature of our method is the ability to automatically measure the size of the input given to a generic code fragment: to this aim, we propose an effective metric for estimating the input size of a routine and show how to compute it efficiently. We discuss several case studies, showing that our approach can reveal asymptotic bottlenecks that other profilers may fail to detect and characterize the workload and behavior of individual routines in the context of real applications. To prove the feasibility of our techniques, we implemented a Valgrind tool called aprof and performed an extensive experimental evaluation on the SPEC CPU2006 benchmarks. Our experiments show that aprof delivers comparable performance to other prominent Valgrind tools, and can generate informative plots even from single runs on typical workloads for most algorithmically-critical routines. Emilio Coppa, Camil Demetrescu, Irene Finocchi |
PLDI | 3 |
| 2012 | Editorial: Preface to the special issueabstract- Tiziana Calamoneri, Irene Finocchi |
Networks | 2 |
| 2011 | Dynamic programming in faulty memory hierarchies (cache-obliviously)abstractRandom 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 one-level faulty memory model and, with respect to dynamic programming, could address only problems with local dependencies. Our improvement upon these works is two-fold: (1) we significantly extend the class of problems that can be solved resiliently via dynamic programming in the presence of faults, settling challenging non-local problems such as all-pairs shortest paths and matrix multiplication; (2) we investigate the connection between resiliency and cache-efficiency, providing cache-oblivious 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 cache-efficiency. All our algorithms are correct with high probability and match the running time and cache misses of their standard non-resilient counterparts while tolerating a large (polynomial) number of faults. Our results also extend to Fast Fourier Transform. Saverio Caminiti, Irene Finocchi, Emanuele G. Fusco, Francesco Silvestri 0001 |
FSTTCS | 2 |
| 2011 | Reactive imperative programming with dataflow constraintsabstractDataflow languages provide natural support for specifying constraints between objects in dynamic applications, where programs need to react efficiently to changes of their environment. Researchers have long investigated how to take advantage of dataflow constraints by embedding them into procedural languages. Previous mixed imperative/dataflow systems, however, require syntactic extensions or libraries of ad hoc data types for binding the imperative program to the dataflow solver. In this paper we propose a novel approach that smoothly combines the two paradigms without placing undue burden on the programmer. In our framework, programmers can define ordinary statements of the imperative host language that enforce constraints between objects stored in special memory locations designated as "reactive". Differently from previous approaches, reactive objects can be of any legal type in the host language, including primitive data types, pointers, arrays, and structures. Statements defining constraints are automatically re-executed every time their input memory locations change, letting a program behave like a spreadsheet where the values of some variables depend upon the values of other variables. The constraint solving mechanism is handled transparently by altering the semantics of elementary operations of the host language for reading and modifying objects. We provide a formal semantics and describe a concrete embodiment of our technique into C/C++, showing how to implement it efficiently in conventional platforms using off-the-shelf compilers. We discuss common coding idioms and relevant applications to reactive scenarios, including incremental computation, observer design pattern, and data structure repair. The performance of our implementation is compared to ad hoc problem-specific change propagation algorithms, as well as to language-centric approaches such as self-adjusting computation and subject/observer communication mechanisms, showing that the proposed approach is efficient in practice. Camil Demetrescu, Irene Finocchi, Andrea Ribichini |
OOPSLA | 2 |
| 2011 | Mining hot calling contexts in small spaceabstractCalling context trees (CCTs) associate performance metrics with paths through a program's call graph, providing valuable information for program understanding and performance analysis. Although CCTs are typically much smaller than call trees, in real applications they might easily consist of tens of millions of distinct calling contexts: this sheer size makes them difficult to analyze and might hurt execution times due to poor access locality. For performance analysis, accurately collecting information about hot calling contexts may be more useful than constructing an entire CCT that includes millions of uninteresting paths. As we show for a variety of prominent Linux applications, the distribution of calling context frequencies is typically very skewed. In this paper we show how to exploit this property to reduce the CCT size considerably. Daniele Cono D'Elia, Camil Demetrescu, Irene Finocchi |
PLDI | 3 |
| 2011 | Local dependency dynamic programming in the presence of memory faultsabstractWe investigate the design of dynamic programming algorithms in unreliable memories, i.e., in the presence of faults that may arbitrarily corrupt memory locations during the algorithm execution. As a main result, we devise a general resilient framework that can be applied to all local dependency dynamic programming problems, where updates to entries in the auxiliary table are determined by the contents of neighboring cells. Consider, as an example, the computation of the edit distance between two strings of length n and m. We prove that, for any arbitrarily small constant epsilon in (0,1] and n >=m, this problem can be solved correctly with high probability in O(nm + alpha delta^{1+epsilon}) worst-case time and O(nm + n delta) space, when up to delta memory faults can be inserted by an adversary with unbounded computational power and alpha <= delta is the actual number of faults occurring during the computation. We also show that an optimal edit sequence can be constructed in additional time O(n delta + alpha delta^{1+epsilon}). It follows that our resilient algorithms match the running time and space usage of the standard non-resilient implementations while tolerating almost linearly-many faults. Saverio Caminiti, Irene Finocchi, Emanuele G. Fusco |
STACS | 2 |
| 2010 | Experimental Study of Resilient Algorithms and Data Structures
Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano |
SEA | 2 |
| 2009 | The Price of Resiliency: a Case Study on Sorting with Memory Faults
Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano |
Algorithmica | 2 |
| 2009 | Trading off space for passes in graph streaming problemsabstractData stream processing has recently received increasing attention as a computational paradigm for dealing with massive data sets. Surprisingly, no algorithm with both sublinear space and passes is known for natural graph problems in classical read-only streaming. Motivated by technological factors of modern storage systems, some authors have recently started to investigate the computational power of less restrictive models where writing streams is allowed. In this article, we show that the use of intermediate temporary streams is powerful enough to provide effective space-passes tradeoffs for natural graph problems. In particular, for any space restriction of s bits, we show that single-source shortest paths in directed graphs with small positive integer edge weights can be solved in O (( n log 3/2 n )/√ s ) passes. The result can be generalized to deal with multiple sources within the same bounds. This is the first known streaming algorithm for shortest paths in directed graphs. For undirected connectivity, we devise an O (( n log n )/ s ) passes algorithm. Both problems require Ω( n / s ) passes under the restrictions we consider. We also show that the model where intermediate temporary streams are allowed can be strictly more powerful than classical streaming for some problems, while maintaining all of its hardness for others. Camil Demetrescu, Irene Finocchi, Andrea Ribichini |
ACM Trans. Algorithms | 2 |
| 2009 | Resilient dictionariesabstractWe address the problem of designing data structures in the presence of faults that may arbitrarily corrupt memory locations. More precisely, we assume that an adaptive adversary can arbitrarily overwrite the content of up to δ memory locations, that corrupted locations cannot be detected, and that only O (1) memory locations are safe. In this framework, we call a data structure resilient if it is able to operate correctly (at least) on the set of uncorrupted values. We present a resilient dictionary, implementing search, insert, and delete operations. Our dictionary has O (log n + δ) expected amortized time per operation, and O ( n ) space complexity, where n denotes the current number of keys in the dictionary. We also describe a deterministic resilient dictionary, with the same amortized cost per operation over a sequence of at least δ ϵ operations, where ϵ > 0 is an arbitrary constant. Finally, we show that any resilient comparison-based dictionary must take Ω(log n + δ) expected time per search. Our results are achieved by means of simple, new techniques which might be of independent interest for the design of other resilient algorithms. Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano |
ACM Trans. Algorithms | 1 |
| 2009 | Optimal resilient sorting and searching in the presence of memory faults
Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano |
Theor. Comput. Sci. | 1 |
| 2008 | Engineering Tree Labeling Schemes: A Case Study on Least Common Ancestors
Saverio Caminiti, Irene Finocchi, Rossella Petreschi |
ESA | 2 |
| 2008 | Sorting and Searching in Faulty Memories
Irene Finocchi, Giuseppe F. Italiano |
Algorithmica | 1 |
| 2007 | Optimal Resilient Dynamic Dictionaries
Gerth Stølting Brodal, Rolf Fagerberg, Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano, Allan Grønlund Jørgensen, Gabriel Moruz, Thomas Mølhave |
ESA | 3 |
| 2007 | Resilient search trees
Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano |
SODA | 1 |
| 2007 | On coding labeled trees
Saverio Caminiti, Irene Finocchi, Rossella Petreschi |
Theor. Comput. Sci. | 2 |
| 2006 | Visual editing of animated algorithms: the Leonardo Web builderabstractLeonardo Web is a collection of tools to animate algorithms. Animations can be generated with a visual editor or directly as a trace of an algorithm's execution. They can be visualized via a small Java player, available as an applet or as a standalone application; the player supports bidirectional continuous and step-by-step execution. Furthermore the system allows to export the animations in several formats, including Macromedia Flash, Microsoft PowerPoint and animated GIF.In this paper we discuss the design issues of one of the component of the visual editor of Leonardo Web, called the Builder, that can be used to design an animation from scratch as well as to refine batch-generated ones. Vincenzo Bonifaci, Camil Demetrescu, Irene Finocchi, Luigi Laura |
AVI | 3 |
| 2006 | The Price of Resiliency: A Case Study on Sorting with Memory Faults
Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano |
ESA | 2 |
| 2006 | Optimal Resilient Sorting and Searching in the Presence of Memory Faults
Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano |
ICALP (1) | 1 |
| 2006 | Trading off space for passes in graph streaming problems
Camil Demetrescu, Irene Finocchi, Andrea Ribichini |
SODA | 2 |
| 2006 | Conflict-free star-access in parallel memory systems
Sajal K. Das 0001, Irene Finocchi, Rossella Petreschi |
J. Parallel Distributed Comput. | 2 |
| 2005 | Designing Reliable Algorithms in Unreliable Memories
Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano |
ESA | 1 |
| 2005 | An Experimental Analysis of Simple, Distributed Vertex Coloring Algorithms
Irene Finocchi, Alessandro Panconesi, Riccardo Silvestri |
Algorithmica | 1 |
| 2005 | Structure-Preserving Hierarchical Decompositions
Irene Finocchi, Rossella Petreschi |
Theory Comput. Syst. | 1 |
| 2004 | Star-Coloring of Graphs for Conflict-Free Access to Parallel Memory SystemsabstractSummary form only given. We study conflict-free data distribution schemes in parallel memories in multiprocessor system architectures. Given a host graph G, the problem is to map the nodes of G into memory modules such that any instance in G of a template type T can be accessed without memory conflicts. A conflict occurs if two or more nodes of T are mapped to the same module. The mapping algorithm should be fast in terms of data access, minimize the required number of memory modules, and guarantee load balancing on the modules. We consider conflict-free access to star templates (i.e., any node of G along with all its neighbors) and we study the star-access problem on two specific host graphs, tori and hypercubes. We propose conflict-free mappings that are fast and load-balanced, using an optimal or provably good number of memory modules. Sajal K. Das 0001, Irene Finocchi, Rossella Petreschi |
IPDPS | 2 |
| 2004 | A Unified Approach to Coding Labeled Trees
Saverio Caminiti, Irene Finocchi, Rossella Petreschi |
LATIN | 2 |
| 2004 | Sorting and searching in the presence of memory faults (without redundancy)abstractWe investigate the design of algorithms resilient to memory faults, i. e., algorithms that, despite the corruption of some memory values during their execution, are able to produce a correct output on the set of uncorrupted values. In this framework, we consider two fundamental problems: sorting and searching. In particular, we prove that any O(nlog n) comparison-based sorting algorithm can tolerate at most O((nlog n)1/2) memory faults. Furthermore, we present one comparison-based sorting algorithm with optimal space and running time that is resilient to O((nlog n)1/3) faults. We also prove polylogarithmic lower and upper bounds on fault-tolerant searching. Irene Finocchi, Giuseppe F. Italiano |
STOC | 1 |
| 2004 | Divider-based algorithms for hierarchical tree partitioning
Irene Finocchi, Rossella Petreschi |
Discret. Appl. Math. | 1 |
| 2004 | A Java-based system for building animated presentations over the Web
Vincenzo Bonifaci, Camil Demetrescu, Irene Finocchi, Luigi Laura |
Sci. Comput. Program. | 3 |
| 2003 | Engineering and Visualizing Algorithms
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano |
GD | 2 |
| 2003 | Combinatorial algorithms for feedback problems in directed graphs
Camil Demetrescu, Irene Finocchi |
Inf. Process. Lett. | 2 |
| 2002 | Experimental analysis of simple, distributed vertex coloring algorithms
Irene Finocchi, Alessandro Panconesi, Riccardo Silvestri |
SODA | 1 |
| 2001 | Hierarchical Clustering of Trees: Algorithms and Experiments
Irene Finocchi, Rossella Petreschi |
ALENEX | 1 |
| 2001 | Layered Drawings of Graphs with Crossing Constraints
Irene Finocchi |
COCOON | 1 |
| 2001 | On the Validity of Hierarchical Decompositions
Irene Finocchi, Rossella Petreschi |
COCOON | 1 |
| 1999 | Infinite Trees and the Future
Camil Demetrescu, Giuseppe Di Battista, Irene Finocchi, Giuseppe Liotta, Maurizio Patrignani, Maurizio Pizzonia |
GD | 3 |