55 research outputs found
FADI: a fault-tolerant environment for open distributed computing
FADI is a complete programming environment that serves the reliable execution of distributed application programs. FADI encompasses all aspects of modern fault-tolerant distributed computing. The built-in user-transparent error detection mechanism covers processor node crashes and hardware transient failures. The mechanism also integrates user-assisted error checks into the system failure model. The nucleus non-blocking checkpointing mechanism combined with a novel selective message logging technique delivers an efficient, low-overhead backup and recovery mechanism for distributed processes. FADI also provides means for remote automatic process allocation on the distributed system nodes
Tachyon: Reliable, Memory Speed Storage for Cluster Computing Frameworks
Tachyon is a distributed file system enabling reliable data sharing at memory speed across cluster computing frameworks. While caching today improves read workloads, writes are either network or disk bound, as replication is used for fault-tolerance. Tachyon eliminates this bottleneck by pushing lineage, a well-known technique, into the storage layer. The key challenge in making a long-running lineage-based storage system is timely data recovery in case of failures. Tachyon addresses this issue by introducing a checkpointing algorithm that guarantees bounded recovery cost and resource allocation strategies for recomputation under commonly used resource schedulers. Our evaluation shows that Tachyon outperforms in-memory HDFS by 110x for writes. It also improves the end-to-end latency of a realistic workflow by 4x. Tachyon is open source and is deployed at multiple companies.National Science Foundation (U.S.) (CISE Expeditions Award CCF-1139158)Lawrence Berkeley National Laboratory (Award 7076018)United States. Defense Advanced Research Projects Agency (XData Award FA8750-12-2-0331
Static analysis-based approaches for secure software development
Software security is a matter of major concern for software development enterprises that wish to deliver highly secure software products to their customers. Static analysis is considered one of the most effective mechanisms for adding security to software products. The multitude of static analysis tools that are available provide a large number of raw results that may contain security-relevant information, which may be useful for the production of secure software. Several mechanisms that can facilitate the production of both secure and reliable software applications have been proposed over the years. In this paper, two such mechanisms, particularly the vulnerability prediction models (VPMs) and the optimum checkpoint recommendation (OCR) mechanisms, are theoretically examined, while their potential improvement by using static analysis is also investigated. In particular, we review the most significant contributions regarding these mechanisms, identify their most important open issues, and propose directions for future research, emphasizing on the potential adoption of static analysis for addressing the identified open issues. Hence, this paper can act as a reference for researchers that wish to contribute in these subfields, in order to gain solid understanding of the existing solutions and their open issues that require further research
Compiler-support for robust multi-core computing
“The original publication is available at www.springerlink.com”. Copyright Springer.Embedded computing is characterised by the limited availability of computing resources. Further, embedded systems are often used in safety-critical applications with real-time constraints. Thus, the software development has to follow rigorous procedures to minimise the risk of system failures. However, besides the inherent application complexities, there is also an increased technology-based complexity due to the shift to concurrent programming of multi-core systems. For such systems it is quite challenging to develop safe and resource-efficient systems. In this paper we give a plea for the need of better software development tools to cope with this challenge. For example, we outline how compilers can help to simplify the writing of fault-tolerant and robust software, which keeps the application code more compact, comprehensive, and maintainable. We take a rather extreme stand by promoting a functional programming approach. This functional programming paradigm reduces the complexity of program analysis and thus allows for more efficient and powerful techniques. We will implement an almost transparent support for robustness within the SaC research compiler, which accepts a C-like functional program as input. Compared to conventional approaches in the field of automatic software-controlled resilience, our functional setting will allow for lower overhead, making the approach interesting for embedded computing as well as for high-performance computing
Green neighbourhoods in low voltage networks: measuring impact of electric vehicles and photovoltaics on load profiles
In the near future, various types of low-carbon technologies (LCTs) are expected to be widely employed throughout the United Kingdom. However, the effect that these technologies will have at a household level on the existing low voltage (LV) network is still an area of extensive research. We propose an agent based model that estimates the growth of LCTs within local neighbourhoods, where social influence is imposed. Real-life data from an LV network is used that comprises of many socially diverse neighbourhoods. Both electric vehicle uptake and the combined scenario of electric vehicle and photovoltaic adoption are investigated with this data. A probabilistic approach is outlined, which determines lower and upper bounds for the model response at every neighbourhood. This technique is used to assess the implications of modifying model assumptions and introducing new model features. Moreover, we discuss how the calculation of these bounds can inform future network planning decisions
Experimental Investigation to Improve the Energy Efficiency of Solar PV Panels Using Hydrophobic SiO2 Nanomaterial
This research aims to experimentally improve the overall efficiency of solar photovoltaic (PV) panels by coating them with hydrophobic SiO2 nanomaterial. Also, an accurate mathematical model was used to estimate the parameters of the PV panel, which is a non-linear optimization problem. Based on the experimental data and using the particle swarm optimization (PSO) algorithm, the optimal five parameters of a single diode model of a PV panel were determined in this study. This experimental work was conducted and carried out in the Renewable Energy Laboratory of Assiut University, Egypt. A comparative analysis was completed for three identical solar PV panels; the first panel was coated with hydrophobic SiO2 nanomaterial, so it was considered to be a self-cleaning panel; the second panel was uncoated and cleaned manually on a daily basis; and the third panel was kept dusty all the time through the experimental investigation, and was used as a reference. Experimentally, the output power of the PV panels was monitored for each panel in this study. Also, the anti-static and anti-reflection effects of coating solar PV panels with hydrophobic SiO2 nanomaterial were investigated experimentally. According to the obtained experimental results, it was found that the use of SiO2 coating for PV panels results in the better performance of the PV panels. The overall efficiency of the coated panel increased by 15% and 5%, compared to the dusty panel and the uncoated panel which was manually cleaned daily, respectively
Improving Message Logging Protocols Scalability through Distributed Event Logging
International audienceMessage logging is an attractive solution to provide fault tolerance for message passing applications because it is more scalable than coordinated checkpointing. Sender-based message logging is a well known optimization that allows to save messages payload in the sender memory and so only the events corresponding to message receptions have to be logged reliably using an event logger. In existing work on message logging, the event logger has always been considered as a centralized process, limiting message logging protocols scalability. In this paper, we propose a distributed event logger. This new event logger takes advantage of multi-cores processors to be executed in parallel with application processes. It makes use of the nodes' volatile memory to save events reliably. We propose a simple gossip-based dissemination protocol to make application processes aware of new stable events. We evaluated our distributed event logger in the Open MPI library with an optimistic and a pessimistic message logging protocol. Experiments show that distributed event logging improves message logging protocols scalability.Les protocoles à enregistrement de message sont une solution attrayante pour assurer la tolérance aux fautes d'applications à échange de messages car ils passent mieux à l'échelle que les protocoles de sauvegarde de points de reprise coordonnés. L'enregistrement de messages fondé sur l'émetteur est une optimisation bien connue qui permet de sauvegarder le contenu des messages dans la mémoire des émetteurs. Ainsi, seul les évènements associés à la réception des messages ont besoin d'être sauvegardés de manière fiable en utilisant un enregistreur d'évènements. Dans les travaux existants, l'enregistreur d'évènements a toujours été considéré comme centralisé, limitant le passage à l'échelle des protocoles à enregistrement de messages. Dans ce papier nous proposons un enregistreur d'évènements distribué. Ce nouvel enregistreur d'évènements profite des processeurs multi-cœurs pour être exécuter en parallèle avec les processus de l'application. Il utilise la mémoire volatile des nœuds pour sauvegarder les évènements de manière fiable. Nous proposons un simple algorithme de diffusion épidémique pour informer les processus applicatifs des nouveaux évènements sauvegardés de manière fiable. Nous avons évalué notre enregistreur d'évènements distribué dans la bibliothèque Open MPI avec un protocole à enregistrement de messages pessimiste et un optimiste. Nos expériences montrent que l'enregistreur d'évènements distribué améliore le passage à l'échelle des protocoles à enregistrement de messages
- …