Developers must often diagnose anomalies in programs they only have a partial knowledge of. As a result, they must simultaneously reverse engineer parts of the system they are unfamiliar with while interpreting dynamic observation data (performance profiling traces, error-propagation channels, memory leaks), a task particularly difficult. To support developers in this kind of comprehension task, filtering and aggregation have long been suggested as key enabling strategies. Unfortunately, traditional approaches typically only provide a uniform level of aggregation, thus limiting the ability of developers to construct context-dependent representations of a program's execution. In this paper, we propose a localised approach to navigate and analyse the CPU usage of little-known programs and libraries. Our method exploits the structural information present in profiling call trees to selectively raise or lower the local abstraction level of the performance data. We explain the formalism underpinning our approach, describe a prototype, and present a preliminary user study that shows our tool has the potential to complement more traditional navigation approaches
Federated learning (FL) is very appealing for its privacy benefits: essentially, a global model is trained with updates computed on mobile devices while keeping the data of users local. Standard FL infrastructures are however designed to have no energy or performance impact on mobile devices, and are therefore not suitable for applications that require frequent ( online ) model updates, such as news recommenders. This article presents FLeet , the first Online FL system, acting as a middleware between the Android operating system and the machine learning application. FLeet combines the privacy of Standard FL with the precision of online learning thanks to two core components: (1) I-Prof , a new lightweight profiler that predicts and controls the impact of learning tasks on mobile devices, and (2) AdaSGD , a new adaptive learning algorithm that is resilient to delayed updates. Our extensive evaluation shows that Online FL, as implemented by FLeet , can deliver a 2.3× quality boost compared to Standard FL while only consuming 0.036% of the battery per day. I-Prof can accurately control the impact of learning tasks by improving the prediction accuracy by up to 3.6× in terms of computation time, and by up to 19× in terms of energy. AdaSGD outperforms alternative FL approaches by 18.4% in terms of convergence speed on heterogeneous data.
K-Nearest-Neighbor (KNN) graphs have emerged as a fundamental building block of many on-line services providing recommendation, similarity search and classification. Constructing a KNN graph rapidly and accurately is, however, a computationally intensive task. As data volumes keep growing, speed and the ability to scale out are becoming critical factors when deploying a KNN algorithm. In this work, we present KIFF, a generic, fast and scalable KNN graph construction algorithm. KIFF directly exploits the bipartite nature of most datasets to which KNN algorithms are applied. This simple but powerful strategy drastically limits the computational cost required to rapidly converge to an accurate KNN solution, especially for sparse datasets. Our evaluation on a representative range of datasets show that KIFF provides, on average, a speed-up factor of 14 against recent state-of-the art solutions while improving the quality of the KNN approximation by 18%.
K-Nearest-Neighbor (KNN) graphs have emerged as a fundamental
building block of many on-line services such as recommendation,
similarity search and classification. Constructing a KNN graph
rapidly and accurately is however, a computationally intensive task.
As data volumes keep growing, speed and the ability to scale out
are becoming critical factors when deploying a KNN construction
algorithm. In this work, we present KIFF, a generic, fast and scalable
KNN graph construction algorithm. KIFF directly exploits the
bipartite nature of most datasets to which KNN algorithms are applied.
This novel strategy drastically limits the computational cost
required to rapidly converge to an accurate KNN solution, especially
for sparse datasets. We use a variety of datasets to experimentally
prove that KIFF quickly computes a close approximation
of the ideal KNN while reducing the computational cost compared
to state-of-the-art approaches. KIFF provides, on average, a speed-up
factor of 28 while improving the quality of the KNN approximation
by 18%.
Des logiciels complexes, assembles a partir de nombreux composants preexistants, sont aujourd'hui utilises pour des emplois de plus en plus critiques (telecommunication, ferroviaire, automobile...). Les risques encourus, aussi bien humains qu'economiques, exigent de pouvoir mettre en place dans ces systemes des mecanismes de tolerance aux fautes flexibles et adaptables independamment des composants utilises. Mais la complexification des logiciels pose probleme, car les approches developpees jadis pour assurer la surete de fonctionnement de petits systemes ne leur sont plus applicables. Connues depuis longtemps, les architectures reflexives, en autorisant le decouplage des aspects fonctionnels et non-fonctionnels d'un systeme, visent a resoudre ce probleme. Jusqu'ici cependant, les approches proposees s'etaient limitees a des prototypes simples, souvent realises ex-nihilo pour experimentation. Or la tolerance aux fautes est une propriete globale des systemes consideres, qui requiert la prise en compte de tous les niveaux d'abstraction rencontres. Dans cette these, nous etudions comment le paradigme reflexif peut etre adapte pour permettre d'integrer les considerations algorithmiques de la tolerance aux fautes (validite, observation, controle) aux contraintes architecturales rencontrees dans les systemes complexes (abstraction, transparence, inter-operabilite). Pour aborder cette problematique, nous developpons un nouveau cadre conceptuel, la reflexivite multi-niveaux, et les concepts d'empreinte reflexive et de lien inter-niveaux qui lui sont associes. Nous validons ensuite la pertinence pratique de notre proposition en abordant la replication de serveurs CORBA a brins d'execution multiples (multithreaded) sur un exemple concret constitue de GNU/Linux et de l'ORB commercial ORBacus. Nous concluons finalement a la necessite d'un nouveau paradigme de developpement base sur des composants rendus reflexifs des leur realisation.
Byzantine-Fault-Tolerant (BFT) systems are rapidly emerging as a viable technology for production-grade systems, notably in closed consortia deployments for nancial and supply-chain applications. Unfortunately, most algorithms proposed so far to coordinate these systems suffer from substantial scalability issues, and lack important features to implement Internet-scale governance mechanisms. In this paper, we observe that many application workloads offer little concurrency, and propose PnyxDB, an eventually-consistent Byzantine Fault Tolerant replicated datastore that exhibits both high scalability and low latency. Our approach is based on conditional endorsements, that allow nodes to specify the set of transactions that must not be committed for the endorsement to be valid. In addition to its high scalability, PnyxDB supports application-level voting, i.e. individual nodes are able to endorse or reject a transaction according to application-defined policies without compromising consistency. We provide a comparison against BFTSMaRt and Tendermint, two competitors with different design aims, and show that our implementation speeds up commit latencies by a factor of 11, remaining below 5 seconds in a worldwide geodistributed deployment of 180 nodes.