31 research outputs found
Courtage sémantique de services de calcul
La recherche du ou des services de calcul scientifique disponibles sur une grille qui répondent aux besoins d'un utilisateur, aussi appelée courtage de services, est une activité complexe. En effet, les services disponibles sont souvent conçus pour répondre de manière efficace à de nombreux besoins différents. Ceux-ci comportent donc en général de nombreux paramètres et la simple signature du service ne suffit pas pour que l'utilisateur puisse le trouver. La solution proposée dans ces travaux consiste à utiliser une description formelle du domaine d'application comportant l'ensemble des données et des opérateurs du domaine ainsi que les propriétés des opérateurs. Dans le cadre de cette thèse, cette description est effectuée sous la forme d'une spécification algébrique. Un service ou une requête sont alors des termes de l'algèbre associée. En ce qui concerne les signatures, nous combinons le sous-typage des sortes et la surcharge des opérateurs selon le système de type proposé par G. Castagna pour le λ&-calcul. Le courtage consiste alors à effectuer un filtrage modulo la théorie équationnelle associée à la spécification, entre le terme représentant le service souhaité et les termes représentant les services disponibles. Nous proposons et avons implanté deux algorithmes différents inspirés d'un parcours de l'arbre de recherche des solutions contraint par une quantité d'énergie (nombre d'équations et/ou de compositions applicables). Le premier algorithme est directement dérivé des travaux de Gallier et Snyder sur l'unification équationnelle. Nous avons montré sa correction et argumenté sa complétude (ou exhaustivité). Le second algorithme découle d'une définition constructive de l'ensemble des services qui peuvent répondre à la requête d'un utilisateur. L'algorithme consiste alors en un parcours particulier de l'arbre construit pour engendrer le service requis. Nous avons également montré sa correction, et sa complétude pour certaines formes d'équations. Nous illustrons notre approche dans les domaines applicatifs suivants : algèbre linéaire et optimisation, et nous nous intéressons au traitement de la combinaison de domaines applicatifs. ABSTRACT : The search for a computing service available on a grid which corresponds to an user's needs, also called trading services, is a complex activity. Indeed available services are often implemented to fulfill efficiently different requirements.These services offer many parameters and their signature is often not enough for a precise description. The object of this work consists in using a formal description of the dedicated domain : the data, the operators and their properties. This description is carried out as an algebraic specification. Services and requests are then terms of the associated algebra. For the signatures, we combine sub-sorting and overloading of operators by using the type system proposed by G. Castagna for the λ&-calculus. Trading is then implemented as an equational matching modulo the theory associated to the specification, between the term representing the required service and the terms representing the available services. We propose two algorithms inspired from a traversal of the solution search tree constrained by an amount of energy. The first one is directly inspired from the work of Gallier and Snyder on equational unification. We have proved its correctness and argued its completeness. The second one is derived from a constructive definition of the set of services which answer the user request. We have proved its correctness and its completeness for some kind of equations. We illustrate our approach with applications to linear algebra and optimization and an interaction between these two domains
Automated Verification of Asynchronous Communicating Systems with TLA+
Verifying the compatibility of communicating peers is a crucial issue in critical distributed systems. Unlike the synchronous world, the asynchronous world covers a wide range of message ordering paradigms (e.g. FIFO or causal) that are instrumental to the compatibility of peer compositions. We propose a framework that takes into account the variety of asynchronous communication models and compatibility properties. The notions of peer, communication model, system and compatibility criteria are formalized in TLA+ to benefit from its verification tools. We present an implemented toolchain that generates TLA+ specifications from the behavioral descriptions of peers and checks compatibility of the composition with respect to given communication models and compatibility criteria
Characterization and Derivation of Heard-Of Predicates for Asynchronous Message-Passing Models
In distributed computing, multiple processes interact to solve a problem
together. The main model of interaction is the message-passing model, where
processes communicate by exchanging messages. Nevertheless, there are several
models varying along important dimensions: degree of synchrony, kinds of
faults, number of faults... This variety is compounded by the lack of a general
formalism in which to abstract these models. One way to bring order is to
constrain these models to communicate in rounds. This is the setting of the
Heard-Of model, which captures many models through predicates on the messages
sent in a round and received on time. Yet, it is not easy to define the
predicate that captures a given operational model. The question is even harder
for the asynchronous case, as unbounded message delay means the implementation
of rounds must depend on details of the model. This paper shows that
characterising asynchronous models by heard-of predicates is indeed meaningful.
This characterization relies on delivered predicates, an intermediate
abstraction between the informal operational model and the heard-of predicates.
Our approach splits the problem into two steps: first extract the delivered
model capturing the informal model, and then characterize the heard-of
predicates that are generated by this delivered model. For the first part, we
provide examples of delivered predicates, and an approach to derive more. It
uses the intuition that complex models are a composition of simpler models. We
define operations like union, succession or repetition that make it easier to
derive complex delivered predicates from simple ones while retaining
expressivity. For the second part, we formalize and study strategies for when
to change rounds. Intuitively, the characterizing predicate of a model is the
one generated by a strategy that waits for as much messages as possible,
without blocking forever
La composition de services dans le monde asynchrone Formalisation et vérification en TLA+
International audienceLes architectures orientées services (SOA) permettent de répondre à deux défis importants du génie logiciel : la rutilisabilité et la décomposition. Néanmoins elles amènent de nouveaux problème, notamment liés à la répartition des services et la non-centralisation du contrôle. Les services étant indépendants et autonomes, il faut s’assurer que mis ensemble ils sont capables de communiquer et que leurs interactions n’introduisent pas de mauvais fonctionnement global. Dans le monde asynchrone, plus proche de la réalité, cette vérification devient non triviale, et cela d’autant plus qu’il existe de multiples modèles asynchrones, plus ou moins libéraux dans ce qu’ils autorisent. Nous exposons dans ce papier nos travaux en cours autour des modèles asynchrones et de la vérification des compositions de services paramétrées par ces modèles
Diet-ethic: Fair Scheduling of Optional Computations in GridRPC Middleware
Most HPC platforms require users to submit a pre-determined number of computation requests (also called jobs). Unfortunately, this is cumbersome when some of the computations are optional, i.e., they are not critical, but their completion would improve results. For example, given a deadline, the number of requests to submit for a Monte Carlo experiment is difficult to choose. The more requests are completed, the better the results are, however, submitting too many might overload the platform. Conversely, submitting too few requests may leave resources unused and misses an opportunity to improve the results. This paper introduces and solves the problem of scheduling optional computations. An architecture which auto-tunes the number of requests is proposed, then implemented in the DIET GridRPC middleware. Real-life experiments show that several metrics are improved, such as user satisfaction, fairness and the number of completed requests. Moreover, the solution is shown to be scalable.La plupart des plate-formes HPC demandent à l'utilisateur de soumettre un nombre pré-déterminé de requêtes de calcul (aussi appelées " job "). Malheureusement, cela n'est pas pertinent quand une partie des calculs est optionnelle, c'est-à -dire, que l'exécution des requêtes n'est pas critique pour l'utilisateur, mais que leur complétion pourrait améliorer les résultats. Par exemple, étant donnée une date limite, le nombre de requêtes à soumettre pour une expérience Monte Carlo est difficile à choisir. Plus il y a des requêtes qui sont exécutées, meilleures sont les résultats. Cependant, en soumettant trop de requêtes, on risque de surcharger la plate-forme. À l'opposé, en ne soumettant pas assez de requêtes, les ressources sont sous-exploitées alors qu'elles auraient pu être utilisées pour améliorer les résultats. Cet article introduit et résout le problème d'ordonnancer des requêtes optionnelles. Une architecture qui choisit automatiquement le nombre de requêtes est proposée puis implémentée dans l'intergiciel GridRPC DIET. Les expériences faites sur de vraies plate-formes - telles que Grid'5000 - montrent que plusieurs métriques peuvent être améliorées, telles que la satisfaction des utilisateurs, l'équité et le nombre des requêtes exécutées. Enfin, la solution proposée passe à l'échelle
Diet-ethic: Fair Scheduling of Optional Computations in GridRPC Middleware
Most HPC platforms require users to submit a pre-determined number of computation requests (also called jobs). Unfortunately, this is cumbersome when some of the computations are optional, i.e., they are not critical, but their completion would improve results. For example, given a deadline, the number of requests to submit for a Monte Carlo experiment is difficult to choose. The more requests are completed, the better the results are, however, submitting too many might overload the platform. Conversely, submitting too few requests may leave resources unused and misses an opportunity to improve the results. This paper introduces and solves the problem of scheduling optional computations. An architecture which auto-tunes the number of requests is proposed, then implemented in the DIET GridRPC middleware. Real-life experiments show that several metrics are improved, such as user satisfaction, fairness and the number of completed requests. Moreover, the solution is shown to be scalable.La plupart des plate-formes HPC demandent à l'utilisateur de soumettre un nombre pré-déterminé de requêtes de calcul (aussi appelées " job "). Malheureusement, cela n'est pas pertinent quand une partie des calculs est optionnelle, c'est-à -dire, que l'exécution des requêtes n'est pas critique pour l'utilisateur, mais que leur complétion pourrait améliorer les résultats. Par exemple, étant donnée une date limite, le nombre de requêtes à soumettre pour une expérience Monte Carlo est difficile à choisir. Plus il y a des requêtes qui sont exécutées, meilleures sont les résultats. Cependant, en soumettant trop de requêtes, on risque de surcharger la plate-forme. À l'opposé, en ne soumettant pas assez de requêtes, les ressources sont sous-exploitées alors qu'elles auraient pu être utilisées pour améliorer les résultats. Cet article introduit et résout le problème d'ordonnancer des requêtes optionnelles. Une architecture qui choisit automatiquement le nombre de requêtes est proposée puis implémentée dans l'intergiciel GridRPC DIET. Les expériences faites sur de vraies plate-formes - telles que Grid'5000 - montrent que plusieurs métriques peuvent être améliorées, telles que la satisfaction des utilisateurs, l'équité et le nombre des requêtes exécutées. Enfin, la solution proposée passe à l'échelle
Formalisations pour les compositions de services
L’omniprésence de l’informatique dans notre quotidien entraîne un besoin croissant de garanties sur les programmes et systèmes informatiques. Je défends une approche par modélisation et vérification formelles, où les résultats sont mécanisés pour les rendre accessibles à des non-experts des méthodes formelles. Mon domaine d’application est la composition de services. En effet, plusieurs facettes de l’informatique engendrent des problématiques similaires :la programmation orientée objets, la programmation orientée composants, la programmation orientée services, les systèmes répartis ont tous pour but de composer les objets / composants/ services / processus pour modéliser et réaliser un système complexe. Mes travaux abordent,sous un angle formel, la composition de services au sens large et les problèmes de découverte,sélection, vérification et adaptation qui en découlent. Plusieurs points de vue sur les services sont abordés : la fonctionnalité qu’ils réalisent, leur comportement (interactions) et leur qualité de service. Certains travaux s’intéressent à la découverte de compositions de services guidée par la fonctionnalité souhaitée. Les techniques utilisées sont celles issues des types abstraits algébriques et de l’unification équationnelle. D’autres travaux s’intéressent à la sélection de la meilleure composition de service en fonction de critères de qualité de service. L’approche se base sur des algorithmes d’optimisation multi-critères et d’apprentissage automatique. Enfin, des travaux s’intéressent à vérifier des propriétés sur des compositions de services interagissant par messages de façon asynchrone. La diversité de la communication dans le monde asynchrone a été étudiée et formalisée
Actes des 15ème journées sur les Approches Formelles dans l'Assistance au Développement de Logiciels (AFADL 2016)
International audienc
Courtage sémantique de services de calcul
La recherche de services de calcul qui correspondent aux besoins d'un utilisateur sur une grille de calcul est une activité complexe. L'objet des travaux réalisés consiste à utiliser une description formelle du domaine d'application comportant l'ensemble des données et des opérateurs du domaine ainsi que leurs propriétés. Cette description est effectuée sous forme d'une spécification algébrique. Le courtage consiste alors à effectuer un filtrage modulo la théorie équationnelle associée à la spécification, entre le terme représentant le service souhaité et les termes représentant les services disponibles. Nous proposons et avons implanté deux algorithmes différents inspirés d'un parcours de l'arbre de recherche des solutions contraint par une quantité d'énergie. Nous présentons les domaines applicatifs algèbre linéaire et optimisation et nous nous intéressons au traitement de la combinaison de domaines. Enfin, nous concluons et présentons les perspectives principales de nos travaux.The search for a computing service which corresponds to the user's needs on a grid is a complex activity. The object of this work consists in using a formal description of the dedicated domain : the data, the operators and their properties. This description is carried out as an algebraic specification. Trading then consists in computing an equational matching modulo the theory associated to the specification, between the term representing the required service and the terms representing the available services. We propose two algorithms inspired from a traversal of the solution search tree constrained by an amount of energy. We present some applications in linear algebra and optimization and an interaction between these domain.TOULOUSE-ENSEEIHT (315552331) / SudocSudocFranceF
Proving a Non-Blocking Algorithm for Process Renaming with TLA+
National audienceShared-memory concurrent algorithms are well-known for being difficult to write, ill-adapted to test, and complex to prove. Wait-free concurrent objects are a subclass where a process is never prevented from progressing, whatever the other processes are doing (or not doing). Algorithms in this subclass are often non intuitive and among the most complex to prove. This paper presents the analysis and the proof of a wait-free concurrent algorithm that is used to rename processes. By its adaptive and non-blocking nature, the renaming algorithm resists to test, because of the cost of covering all its states and transitions even with a small input set. Thus, a proof has been conducted in Open image in new window and verified with TLAPS, the Open image in new window Proof System. This algorithm is itself based on the assembly of wait-free concurrent objects, the splitters, that separate processes. With just two shared variables and three assignments, a splitter seems a simple object but it is not linearizable. To avoid explicitly in-lining it and dealing with its internal state, the proof of the renaming algorithm relies on replacing the splitter with a sequential specification that is proved correct with TLAPS and verified complete by model-checking on finite instances