Irene Finocchi

dblp:f/IreneFinocchi · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Performance modeling and evaluation
workload characterization
0.642014
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.322014
Input-Sensitive Profiling · IEEE Trans. Software Eng. 2014
Input-sensitive profiling · PLDI 2012
Graph data management › graph algorithms
graph pruning
0.312018
Efficient Pruning of Large Knowledge Graphs · IJCAI 2018
Software maintenance and evolution › change impact analysis
change propagation
0.322014
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.322012
k-Calling context profiling · OOPSLA 2012
Mining hot calling contexts in small space · PLDI 2011
Program analysis › static analysis
incremental analysis
0.212014
Reactive Imperative Programming with Dataflow Constraints · ACM Trans. Program. Lang. Syst. 2014
Programming languages and type systems
language design
0.212014
Reactive Imperative Programming with Dataflow Constraints · ACM Trans. Program. Lang. Syst. 2014
Compilers and program optimization
performance bottleneck identification
0.212014
Input-Sensitive Profiling · IEEE Trans. Software Eng. 2014
Hardware reliability and fault tolerance › software fault tolerance
fault-tolerant data structures
0.222009
Resilient dictionaries · ACM Trans. Algorithms 2009
Resilient search trees · SODA 2007
Algorithms and data structures › data streams › streaming algorithms
graph streaming
0.222009
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.112012
k-Calling context profiling · OOPSLA 2012
Program analysis
constraint solving
0.112011
Reactive imperative programming with dataflow constraints · OOPSLA 2011
Program analysis
dynamic analysis
0.112011
Mining hot calling contexts in small space · PLDI 2011
Distributed computing theory › fault tolerance
fault-tolerant algorithm
0.122006
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.112009
Resilient dictionaries · ACM Trans. Algorithms 2009
Graph algorithms and graph theory › shortest path
single-source shortest paths
0.112009
Trading off space for passes in graph streaming problems · ACM Trans. Algorithms 2009
Graph algorithms and graph theory › graph algorithms › connectivity
undirected connectivity
0.112009
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.112007
Resilient search trees · SODA 2007
Algorithms and data structures
sorting and searching
0.012004
Sorting and searching in the presence of memory faults (without redundancy) · STOC 2004
Debugging and program repair
performance debugging
0.012012
Input-sensitive profiling · PLDI 2012
Debugging and program repair › program repair
data structure repair
0.012011
Reactive imperative programming with dataflow constraints · OOPSLA 2011
Distributed computing theory
distributed graph coloring
0.012002
Experimental analysis of simple, distributed vertex coloring algorithms · SODA 2002
Algorithms and data structures › data streams
data stream processing
0.012009
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.012009
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
YearPublicationVenuePosition
2024 From Stars to Diamonds: Counting and Listing Almost Complete Subgraphs in Large Networks
abstract
Abstract 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 Graphs
abstract
In 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
IJCAI2
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
Algorithmica2
2017 Resilient Dynamic Programming
Saverio Caminiti, Irene Finocchi, Emanuele G. Fusco, Francesco Silvestri 0001
Algorithmica2
2016 Mining hot calling contexts in small space
abstract
Calling 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 indicators
abstract
We 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
SoCC2
2014 Estimating the Empirical Cost Function of Routines with Dynamic Workloads
Emilio Coppa, Camil Demetrescu, Irene Finocchi, Romolo Marotta
CGO3
2014 Reactive Imperative Programming with Dataflow Constraints
abstract
Dataflow 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 Profiling
abstract
In 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
CiE1
2012 k-Calling context profiling
abstract
Calling 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
OOPSLA3
2012 Input-sensitive profiling
abstract
In 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
PLDI3
2012 Editorial: Preface to the special issue
abstract
-
Tiziana Calamoneri, Irene Finocchi
Networks2
2011 Dynamic programming in faulty memory hierarchies (cache-obliviously)
abstract
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 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
FSTTCS2
2011 Reactive imperative programming with dataflow constraints
abstract
Dataflow 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
OOPSLA2
2011 Mining hot calling contexts in small space
abstract
Calling 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
PLDI3
2011 Local dependency dynamic programming in the presence of memory faults
abstract
We 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
STACS2
2010 Experimental Study of Resilient Algorithms and Data Structures
Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano
SEA2
2009 The Price of Resiliency: a Case Study on Sorting with Memory Faults
Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano
Algorithmica2
2009 Trading off space for passes in graph streaming problems
abstract
Data 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. Algorithms2
2009 Resilient dictionaries
abstract
We 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. Algorithms1
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
ESA2
2008 Sorting and Searching in Faulty Memories
Irene Finocchi, Giuseppe F. Italiano
Algorithmica1
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
ESA3
2007 Resilient search trees
Irene Finocchi, Fabrizio Grandoni 0001, Giuseppe F. Italiano
SODA1
2007 On coding labeled trees
Saverio Caminiti, Irene Finocchi, Rossella Petreschi
Theor. Comput. Sci.2
2006 Visual editing of animated algorithms: the Leonardo Web builder
abstract
Leonardo 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
AVI3
2006 The Price of Resiliency: A Case Study on Sorting with Memory Faults
Umberto Ferraro Petrillo, Irene Finocchi, Giuseppe F. Italiano
ESA2
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
SODA2
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
ESA1
2005 An Experimental Analysis of Simple, Distributed Vertex Coloring Algorithms
Irene Finocchi, Alessandro Panconesi, Riccardo Silvestri
Algorithmica1
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 Systems
abstract
Summary 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
IPDPS2
2004 A Unified Approach to Coding Labeled Trees
Saverio Caminiti, Irene Finocchi, Rossella Petreschi
LATIN2
2004 Sorting and searching in the presence of memory faults (without redundancy)
abstract
We 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
STOC1
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
GD2
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
SODA1
2001 Hierarchical Clustering of Trees: Algorithms and Experiments
Irene Finocchi, Rossella Petreschi
ALENEX1
2001 Layered Drawings of Graphs with Crossing Constraints
Irene Finocchi
COCOON1
2001 On the Validity of Hierarchical Decompositions
Irene Finocchi, Rossella Petreschi
COCOON1
1999 Infinite Trees and the Future
Camil Demetrescu, Giuseppe Di Battista, Irene Finocchi, Giuseppe Liotta, Maurizio Patrignani, Maurizio Pizzonia
GD3