Voici les éléments 1 - 2 sur 2
  • Publication
    Métadonnées seulement
    Exploiting Concurrency in Domain-Specific Data Structures: A Concurrent Order Book and Workload Generator for Online Trading
    Concurrent programming is essential to exploit parallel processing capabilities of modern multi-core CPUs. While there exist many languages and tools to simplify the development of concurrent programs, they are not always readily applicable to domain-specific problems that rely on complex shared data structures associated with various semantics (e.g., priorities or consistency). In this paper, we explore such a domain-specific application from the financial field, where a data structure—an order book —is used to store and match orders from buyers and sellers arriving at a high rate. This application has interesting characteristics as it exhibits some clear potential for parallelism, but at the same time it is relatively complex and must meet some strict guarantees, notably w.r.t. the ordering of operations. We first present an accurate yet slightly simplified description of the order book problem and describe the challenges in paral- lelizing it. We then introduce several approaches for introducing concurrency in the shared data structure, in increasing order of sophistication starting from lock-based techniques to partially lock-free designs. We propose a comprehensive workload generator for constructing histories of orders according to realistic models from the financial domain. We finally perform an evaluation and comparison of the different concurrent designs.
  • Publication
    Accès libre
    Exploiting concurrency and heterogeneity for energy-efficient computing: an actor-based approach
    En vue d’améliorer l’efficacité énergétique, les fournisseurs de cloud computing ont commencé à examiner des méthodes radicales pour réduire le niveau de consommation énergétique. Le problème de l’optimisation de l’efficacité énergétique doit être considéré tant au niveau matériel qu’au niveau logiciel. De nombreux perfectionnements ont été réalisés pour réduire la consommation d’énergie au niveau matériel. Bien que ceux-ci soient efficaces, leur utilisation individuelle ne garantit pas encore une diminution considérable de la dissipation énergétique. Ainsi, un objectif majeur de cette thèse est de proposer une structure logicielle qui s’adapte de différentes façons afin de répondre aux exigences de performance logicielle et de consommation énergétique. Afin d’élaborer un tel système, je me concentre en premier lieu sur les modèles de transmission de messages, et en particulier sur le modèle acteur.
    Le modèle acteur est probablement trop conservateur dans sa manière de traiter la concurrence. En effet, j’ai découvert un certain nombre de problèmes concernant la programmation concurrente avec les paramètres par défaut du modèle acteur, qui sont: 1) un retard de mise en attente des messages lors d’actions coordonnées, 2) un traitement séquentiel des messages, 3) des problèmes de performance dans le traitement concurrent de messages en cas de forte concurrence, et enfin 4) l’incapacité du modèle acteur à utiliser harmonieusement les ressources d’un processeur graphique.
    J’utilise la mémoire transactionnelle pour améliorer le processus de transmission de messages du modèle acteur, et je propose également une structure de DSL, c’est-à-dire un langage spécifique à ce domaine, pour aborder une prise en charge du processeur graphique. En répondant aux problèmes identifiés ici, je montre qu’on peut améliorer significativement la performance, l’efficacité énergétique, ainsi que la simplicité de programmation dans le modèle acteur., To accommodate energy efficiency, cloud providers started looking into radical ways of reducing the energy consumption. Energy-efficient optimizations should be addressed at both software and hardware levels of the datacenter. There have been numerous improvements in reducing the energy consumption on the hardware level. While they are efficient, however, their usage alone does not warrant significant decrease of energy dissipation. I argue that software-based methods for energy efficiency have not received as much attention as hardware-based methods. As such, in this thesis, an important target is to provide a software framework that adapts itself in many different aspects in order to satisfy application performance and energy consumption requirements. For developing such a framework, I primarily concentrate on message passing models and, in particular, on the actor model.
    The actor model is arguably too conservative in its default concurrent settings. Specifically, I have identified a number of issues with the default concurrency settings of the actor model, which are: (1) message queuing delay during coordinated actions, (2) sequential message processing, (3) performance problems for concurrent message processing during high contention, and (4) the inability of the actor model to seamlessly exploit GPU resources. I use transactional memory for optimizing actor model’s message passing process, as well as propose DSL support for introducing GPU support. By addressing the identified problems I show that we can significantly improve performance, energy efficiency and programmability in the actor model.