Spelling suggestions: "subject:"logiciels -- développement."" "subject:"logiciels -- éveloppement.""
1 |
Optimisation de stratifiés en utilisant un algorithme génétiqueGirard, Frédéric 12 April 2018 (has links)
Ces travaux portent sur l'optimisation de structures stratifiées en utilisant un algorithme génétique. Un programme d'optimisation est développé et est ensuite appliqué à la résolution d'une série de problèmes d'optimisation pour lesquels les variables de design peuvent appartenir soit à un domaine discret soit à un domaine continu. Tout d'abord, il est question de problèmes où le nombre de plis, le matériau et l'épaisseur des plis sont fixés. Les variables de design sont alors l'orientation de chaque pli qui peut prendre, dans un premier cas, des valeurs discrètes (0ʻ, ł45ʻ, 90ʻ) puis des valeurs continues (de 0ʻ à 90ʻ). Deuxièmement, il est question de problèmes pour lesquels le nombre de plis et le matériau des plis deviennent des variables de design qui s'ajoutent alors à l'orientation des plis. Dans ces cas, la valeur des variables de design (matériaux et orientations) est choisie dans une liste de valeurs. / L'objectif de ces problèmes est, en premier lieu, la minimisation du poids ou du coût de la structure sous différentes contraintes et finalement, la minimisation du poids et du coût simultanément avec une formulation multi-objectifs. L'algorithme génétique développé utilise une stratégie multi-élitiste et empêche la présence d'individus identiques dans la population. Finalement, un algorithme génétique hybride, combinant l'algorithme génétique et une recherche locale, est développé et ensuite testé sur ces mêmes problèmes. Cette hybridation de l'algorithme résulte en une diminution du temps de calcul exigé et en une amélioration substantielle des résultats.
|
2 |
Novel approaches to the operation & orchestration of IoT systems / Novel approaches to the operation and orchestration of IoT systemsMouine, Mohamed 24 October 2024 (has links)
L'Internet des Objets (IoT) ainsi que le Edge Computing ont connu une croissance significative autant en termes de popularité que d'avancement technologique. La démocratisation des nouvelles technologies de communications à haut débit et le développement des plateformes infonuagiques modernes ont joué un rôle majeur dans l'adoption de l'IoT dans divers cas d'utilisation commerciaux. Parmi ces applications figurent la médecine, l'Industrie 4.0, ainsi que les centres de données, pour n'en citer que quelques-unes. Ces applications modernes de l'Internet des Objets se caractérisent par une importance particulière attribuée à la flexibilité, la résilience et la sécurité des systèmes. Les contextes mis en jeu présentent en effet d'importants défis et problématiques allant bien au-delà des enjeux logiciels traditionnels. Cela s'explique principalement par la nature critique des infrastructures et environnements mis en cause. Dans de tels contextes, une défaillance du système serait susceptible d'entraîner des conséquences financières désastreuses pour les entreprises et même une menace grave à la sécurité physique des usagers et opérateurs. Dans ce mémoire, nous explorons le potentiel et les possibilités qu'offrent des approches inspirées par les écosystèmes logiciels adjacents dans le but de répondre aux problématiques et défis présentés par l'évolution technologique de l'IoT. Des propositions sont finalement présentées visant l'objectif commun de réduire la complexité opérationnelle et d'assurer une résilience optimale de ces systèmes. Pour commencer, nous abordons la complexité de gestion et de développement des infrastructures IoT. Nous basons notre approche sur des concepts applicatifs et contextuels issus du domaine d'affaires du cas d'utilisation. Grâce au développement piloté par modèle (Model Driven Development), nous visons à combler l'écart technique entre les couches technologiques abstraites et les concepts concrets ou humains de l'application. Dans le contexte d'un système médical digital et distribué, nous présentons un langage spécifique au domaine (DSL) qui interface les composants technologiques complexes grâce à des modèles de domaine concrets et proches du cas d'utilisation identifié. Les schémas de modèles proposés se concentrent sur l'adoption d'une approche flexible et intuitive pour concevoir et mettre à l'échelle l'infrastructure en fonction des besoins de l'entreprise. En tirant parti de technologies Cloud-Native, telles que les conteneurs, Kubernetes et les communications événementielles, nous démontrons l'efficacité de cette approche dans le contexte de scénarios majeurs. La solution vise principalement à accroître la flexibilité du processus de développement et maintenance des systèmes IoT, tout en maintenant une résilience optimale. Le premier sujet d'intérêt sélectionné est celui des applications et composantes exécutées en périphérie (edge workloads) ainsi que l'intégration des dispositifs et appareils physiques avec l'infrastructure cloud du système. L'approche proposée se base sur l'utilisation de Kubernetes en tant que plateforme d'orchestration principale. Kubernetes est l'une des solutions les plus populaires pour la gestion des systèmes cloud modernes à grande échelle. L'outil offre plusieurs avantages en termes de flexibilité, de résilience et de sécurité. Pour permettre l'extension de Kubernetes aux environnements hors-cloud, nous proposons KubeEdge. KubeEdge permet l'intégration transparente des nœuds hors-cloud au cluster Kubernetes initial. Cela permet la planification de services dans le edge en émulant l'environnement cloud ainsi que ses mécanismes natifs de résilience et d'orchestration. En plus d'étendre la portée du cluster au edge, KubeEdge implémente plusieurs solutions de gestion des composantes physiques spécifiques à l'IoT. La solution proposée s'appuie sur des communications asynchrones via le protocole MQTT. Les communications événementielles permettent une meilleure flexibilité des environnements et processus synchronisés entre edge et cloud. Cette approche permet aussi d'atténuer les contraintes infrastructurelles et simplifie l'évolution et la maintenance des systèmes en permettant l'ajout ou la suppression de composants physiques avec fluidité. La deuxième partie de la thèse couvre l'analyse de données et l'exécution d'applications intelligentes dans le edge. L'IoT se caractérise par un immense volume de données générées. Ces données sont souvent exploitées dans le contexte de tâches d'analyse et d'applications intelligentes. Ce sujet introduit diverses contraintes et défis qui lui sont propres et qui varient au travers du cycle de vie des données collectées. Les deux principaux aspects considérés dans ce contexte sont d'abord, la complexité de gestion de larges volumes de données en termes d'efficacité de stockage et de coûts, puis l'optimisation et l'efficacité des processus de traitement et d'analyse applicatifs. Pour aborder ces problématiques, nous avons opté pour une distribution des charges de calcul et de stockage dans les couches périphériques. L'implémentation se concrétise principalement au travers d'instances InfluxDB et Telegraf dans les environnements edge. Ces composantes se connectent aux canaux d'événements du broker MQTT. Les métriques sont initialement stockées et traitées directement dans le edge et subissent diverses transformations et calculs tels qu'une normalisation, un sous-échantillonnage, un enrichissement, etc. Les données sortantes sont migrées périodiquement vers des volumes de stockage centralisés à l'échelle du cloud. Le traitement au niveau du edge permet de distribuer les volumes de stockage et de simplifier les processus analytiques devenus davantage modulaires et réplicables. De plus, la rétention temporaire des données en périphérie permet une stratégie de résilience native en cas de rupture de la connexion cloud-edge et simplifie la gestion de sauvegardes de secours. / The Internet of Things (IoT) and edge computing have seen significant growth in popularity and technical advancement. The democratization of high-speed communications and the development of modern cloud technologies, to name a few factors, have played a major role in the adoption of IoT for a variety of business applications. Some of these applications are healthcare, manufacturing (Industry 4.0), and data centers, to name a few. These modern applications of the Internet of Things are characterized by the importance of scalability, resilience, and security. These use cases present us with challenges and concerns that go far beyond traditional software systems due to the critical nature of some workloads. System failure in this context can lead to disastrous monetary consequences for businesses and even represent a safety threat for users and operators. In this research thesis, we explore the potential of leveraging and adapting approaches from adjacent software ecosystems to address IoT and Edge Computing specifications. The presented proposals have a common goal of reducing the complexity of operations and minimizing the challenges of IoT systems. To begin with, we address the complexity of defining and managing the IoT infrastructure by leveraging the contextual concepts relevant to the business use case. Through model-driven development, we bridge the technical gap between the system infrastructure and human operators. In the case study of a healthcare IoT system, we present a domain-specific language (DSL) that abstracts infrastructure-specific components behind models specific to the identified use case. The proposed model schemas focus on enabling a flexible and intuitive approach to designing and scaling the infrastructure according to business needs. By leveraging Cloud-Native technologies, such as containers, Kubernetes, and event-driven communications, we demonstrate the efficiency of the proposed approaches for some major scenarios to increase the flexibility and resilience of IoT systems. Furthermore, we discuss the challenges and potential limitations of the implementations presented and the technologies utilized. The first topic of interest identified revolves around the management of edge workloads and the integration of physical devices into the cloud system infrastructure. The proposed approach is based on the integration of Kubernetes as an orchestration platform for both cloud and edge workloads. Kubernetes is one of the most popular solutions for managing modern cloud systems at scale. It provides several benefits in terms of flexibility, resilience, and security. To enable the implementation of Kubernetes in the context of the edge environments, we propose KubeEdge as an extension to the cloud layer. KubeEdge enables the seamless integration of edge nodes into the basic Kubernetes cluster. This allows the scheduling of edge services similar to conventional containerized cloud applications, including the native Kubernetes resilience and orchestration mechanisms. In addition to extending the cluster to edge nodes, KubeEdge implements a solution to manage the connections, states, and commands of physical devices throughout the system. The proposed solution leverages asynchronous communications through the MQTT protocol. The event-driven approach improves the flexibility of the edge environments, mitigating its limitations, and improving the system's scalability by simplifying the addition or removal of physical components. The second part of the thesis covers the subject of data analysis through edge computing workloads. One of the main characteristics of the IoT is the large volume of data generated. These data are frequently used in the core analytic workloads of most IoT applications. This aspect of the use case introduces specific challenges divided through the stages of the data life cycle. The two main aspects considered for this topic are the handling of large volumes of data in terms of storage efficiency and costs, and the execution of processing and analysis workloads in terms of optimization and accuracy. To address these aspects, we provision part of the processing and storage workloads to the edge layers. The implementation is based on InfluxDB and Telegraf instances at the edge, which listen to specific data topics of the MQTT broker. The local data are stored and processed to apply common normalization and downsampling transformations. It is then periodically migrated to a centralized storage unit in the cloud layer. Through processing at the edge layer, we optimize storage costs in the cloud and simplify global analytic workloads. Furthermore, the temporary retention of data at the edge improves the resilience of the system in the event of a loss of edge-cloud connection.
|
3 |
Developing sustainable simulation software for biophotonicsBégin, Ludovick 13 December 2023 (has links)
L'objectif de ce mémoire est de développer des logiciels de simulation durables pour les chercheurs en biophotonique. En raison de l'absence de solutions logicielles adaptées aux applications biophotoniques, les chercheurs doivent consacrer beaucoup de temps soit à l'apprentissage de logiciels commerciaux complexes, souvent coûteux et difficiles à modifier, soit au développement de leur propre logiciel. Dans ce dernier cas, le produit est souvent difficile à entretenir ou à utiliser par d'autres chercheurs en raison de l'absence de bonnes pratiques de développement logiciel, comme les tests unitaires et la séparation des responsabilités, ce qui n'est pas prévu dans le programme d'études en biophotonique. En mettant l'accent sur la conception et l'architecture logicielle, ce travail présente comment des solutions de simulation extensibles et maintenables ont été développées en Python pour permettre de simuler facilement la propagation de la lumière dans les tissus et améliorer la qualité d'image d'un système d'imagerie. Un module PyTissueOptics est d'abord développé avec une librarie graphique 3D indépendante pour prendre en charge la propagation de la lumière selon la méthode de Monte Carlo dans des tissus et des environnements 3D complexes. Un module Polarization est ensuite développé pour simuler la propagation de la lumière polarisée dans les composants optiques et les tissus biréfringents. Ce module est ensuite utilisé pour générer des données synthétiques de tomographie à cohérence optique sensible à la polarisation (PS-OCT). Enfin, ces données synthétiques sont utilisées pour entraîner un nouveau modèle d'apprentissage profond, CLNet, afin de nettoyer les tomogrammes PS-OCT et d'obtenir une meilleure qualité d'image. / The goal of this memoir is to develop sustainable simulation software for biophotonics researchers. The lack of good and tailored software solutions for biophotonics applications results in researchers having to take a lot of time to either learn complex commercial software, which is also often expensive and hard to modify, or develop their own software. The latter often yields a product that is hard to maintain or use by other researchers because of a lack of good software development practices, like unit testing and separation of concerns, which is not included in the biophotonics curriculum. With a focus on software design and architecture, this work presents how extensible and maintainable simulation solutions were developed in Python to allow easy simulation of light propagation in tissues and improve the image quality of an imaging system. A PyTissueOptics module is first developed along with an independent 3D graphics framework to support Monte Carlo light propagation in complex 3D tissues and environments. A Polarization module is then developed to simulate polarized light propagation in optical components and birefringent tissues. This module is then used to generate synthetic data of polarization-sensitive optical coherence tomography (PS-OCT). Finally, this synthetic data is used to train a novel deep learning model, CLNet, to clean PS-OCT tomograms and yield an improved image quality.
|
4 |
Problèmes de santé des écosystèmes logiciels ouverts : une étude exploratoire auprès d'experts de la pratiqueMopenza, Georgia Leïda 16 April 2024 (has links)
Aujourd’hui, les logiciels libres ou open source sont de plus en plus utilisés et peuvent servir dans certains cas de base de développement de logiciels « non libres » ou propriétaires. Le noyau Linux est utilisé par exemple pour aider dans le développement de plusieurs plateformes et logiciels comme Windows et iOS. Le succès des logiciels open source émane du fait que, contrairement aux logiciels propriétaires, les logiciels open source sont développés dans des projets qui s’appuient sur des communautés. Les projets et leurs communautés sont compris dans des environnements plus larges appelés écosystème logiciel ouvert (ECLOO). Toutefois, ces ECLOOs font face à de nombreuses difficultés pouvant nuire à leur santé ou leur bonne marche. Le projet SECOHealth a été initié dans le but de comprendre la santé des écosystèmes logiciels afin de proposer des catalogues de lignes directrices et des outils de recommandation pour pouvoir mesurer et contrôler cette santé. La recherche décrite dans ce document est une partie du projet SECOHealth. Cette recherche a pour objectif de mieux appréhender la santé des ECLOOs pour pouvoir mesurer et contrôler cette santé. Pour ce faire, nous répondrons aux trois questions de recherche suivantes : 1. Quels sont les principaux problèmes auxquels font face les ECLOOs? 2. Quelles sont les principales causes de ces problèmes? 3. Quels sont les principaux impacts de ces problèmes? Pour répondre à ces questions, nous avons mené des entrevues individuelles auprès de dix experts évoluant dans les ECLOOs. L’analyse des données recueillies nous a permis de construire les diagrammes d’analyse causale sur la base de chaque entrevue, ainsi que les chaînes causales des principaux problèmes observés. Les résultats montrent que les principaux problèmes de santé observés, leurs causes et impacts relèvent aussi bien du domaine technique que de domaines non-techniques tel la gestion. / Nowadays, open source software are increasingly used and can become in some cases the basis to develop commercial or proprietary software. For example, the Linux kernel is used in developing several platforms and software like Windows and iOS. The success of open source software stems from the fact that, unlike proprietary software, open source software are developed in projects that rely on communities. Projects and their communities are included in broader environments called open source software ecosystems (OSSECOs). However, these OSSECOs face many difficulties that can affect their health or their proper functioning. The SECOHealth project was initiated with the aim of understanding the health of software ecosystems in order to propose catalogs of guidelines and recommendation tools for measuring and controlling this health. The research described in this document is part of the SECOHealth project. This research aims to better understand the health of open software ecosystems in order to be able to measure and control it. To do this, we will answer the following three research questions: 1. What are the main problems facing OSSECOs? 2. What are the main causes of these problems? 3. What are the main impacts of these problems? To answer these questions, we conducted one-on-one interviews with ten experts in OSSECOs. Analysis of the data collected allowed us to construct the causal analysis diagrams and the causal chains of the main problems observed. The results show that the main health problems, their causes and their impacts fall within the technical domain as well as non-technical domains such as the management.
|
5 |
Développement d'un outil de simulation par Monte Carlo du rayonnement diffusé en tomodensitométrieSaucier, Marie Annie 04 January 2025 (has links)
L’objectif de ce projet est de créer un programme logiciel permettant de corriger le rayonnement diffusé dans une acquisition tomodensitométrique à géométrie conique. Pour ce faire, une simulation Monte Carlo est utilisée pour estimer le rayonnement diffusé, ce qui consiste à reproduire numériquement un examen en tomodensitométrie. Ce projet a été divisé en deux sections : la validation de la physique pour ce programme spécifique et le développement logiciel du programme. La validation consistait à reproduire les résultats obtenus avec Geant4 avec GPUMCD. Geant4, la plateforme de référence, et GPUMCD, la plateforme à l’étude, sont deux librairies logicielles pour la simulation numérique du transport de particules à travers la matière utilisant les calculs Monte Carlo. Les éléments étudiés sont les sections efficaces, les matériaux, l’algorithme de diffusion Rayleigh et l’algorithme de diffusion Compton. Bien que quelques erreurs persistent dans la physique de GPUMCD, une nette amélioration des résultats entre GPUMCD et Geant4 a été obtenue. La différence entre les deux simulations qui était supérieure à 100% pour une géométrie complexe est passée sous la barre du 10%. De plus, il a été possible d’identifier quelques autres causes telles qu’une différence dans la définition des modèles physiques, et ce, plus précisément dans l’algorithme de diffusion Compton. En ce qui concerne la seconde partie du projet, bien que la correction n’a pu être effectuée pour une reconstruction, tous les éléments ont été implémentés pour estimer le rayonnement diffusé pour une géométrie de patient provenant de données cliniques d’une reconstruction tomodensitométrique. Les paramètres et les stratégies étudiés dans le but d’optimiser le temps de calculs tout en conservant la justesse des résultats sont : le traçage de rayons, le lissage gaussien du rayonnement diffusé, la réduction du nombre de pixels sur le détecteur, l’interpolation des projections, la symétrie et la réduction de nombre de voxels dans le patient. De plus, en considérant une correction de haute qualité, soit 2% d’erreur et moins par stratégie implémentée, on obtient un temps de simulation de moins de 2 minutes sur une GPU Nvidia Titan X. Pour une simulation dite de basse qualité, soit 5% d’erreur et moins par stratégie implémentée, on obtient un temps d’exécution de moins de 15 s par simulation. Cela correspond à des temps cliniquement acceptables si le patient doit attendre sur la table. / The goal of this project is to develop an application to correct the scattered radiation in a cone beam computed tomography scan (CBCT). A Monte Carlo simulation is used to estimate the scattered radiation which is a numerical replication of a CBCT acquisition. This project has been divided into two sections : the validation of the physics for this specific application and the development of the application. The validation consisted in reproducing the results obtained with Geant4 in GPUMCD. Geant4 is the reference platform and GPUMCD is the platform studied. Both are Monte Carlo simulators of the passage of particles through matter.The elements studied are the cross sections, the materials, the Rayleigh scattering algorithm and the Compton scattering algorithm. Although some errors are still present, a great improvement of the results between GPUMCD and Geant4 was obtained. The difference between the two simulations was greater than 100 % for complex geometries and dropped below 10% after corrections of the physics. In addition, it was possible to identify some other problems such as a theoretical difference in the Compton scattering algorithms. Regarding the second part of the project, although the correction could not be implemented in a reconstruction, all elements are present to estimate the scattered radiation for an actual CBCT reconstruction. The parameters and strategies studied in order to optimize the computation time while maintaining the accuracy of the results are : ray tracing, Gaussian smoothing of scattered radiation, reduction of the number of pixels on the detector, interpolation of between the simulated projections, symmetry and reduction of number of voxels in the patient. In addition, considering a correction of high quality is 2 % error and less per implemented strategy, a simulation time of less than 2 minutes is obtained. For a low quality simulation (5% error and less per parameter), a simulation time of less than 15 seconds per simulation was obtained. Those are clinically acceptable simulation times.
|
6 |
Environnement de développement bioinformatique pour la génomique et la protéomiquePaladini, David 12 April 2018 (has links)
L’objectif de ce mémoire est de décrire un environnement de développement capable de supporter les besoins du bioinformaticien dans les différents contextes de développement de logiciels de bioinformatique. Ce mémoire présente un environnement de développement et en démontre l’utilisation soit par une conception logicielle, soit par une réalisation logicielle. Trois contextes de développement d’infrastructure logicielle et de logiciels bioinformatique ont été identifiés : • Développement dans le cadre de projets de recherche. Mise en place d’une base de données pour le projet d’étude du parasite Leishmania par biopuces d’ADN complémentaire (ADNc) et développement d’une application WEB permettant de mettre en évidence de façon graphique la transcription polycistronique chez ce parasite. Transcription de plusieurs gènes (cistrons) contigus en un seul ARN messager (ARNm). • Développement dans le cadre de plates-formes de recherche. Évaluation des aspects communs des plates-formes de recherche existantes dans le centre de recherche et conception d’un modèle générique d’application de gestion d’information de laboratoire (LIMS). Évaluation des aspects spécifiques des plates-formes de recherche et développement de logiciels de supports pour la configuration et la lecture de résultats spécifique à la plate-forme de qRT-PCR. • Développement dans le cadre de la plate-forme de bioinformatique. Le premier exemple est un logiciel pour une chaîne de traitement à haut débit de données issues de la plate-forme de biopuces. Le deuxième exemple est un logiciel effectuant des alignements locaux de séquences d’acides nucléiques. Ce logiciel, basé sur BLAST, présente des informations supplémentaires dans un format plus facilement utilisable par d’autres logiciels. / The aim of this essay is to describe a development environement which is able to support bioinformaticians in several contexts for bioinformatics software development. This essay presents a development environement and substantiate its use in each context identified either by a software design or by a complete software realisation. Three development context of software infrastructure and bioinformatic software are identified : • Research project development. Setting up database for Leishmania parasite research project with cDNA microarray and development of a WEB application shed on light the polycistronic transcription of this parasite in graphical way. • Research plateform development. Evaluation of common facets of research platforms and design of a generic model for a laboratory information management system (LIMS). Evaluation of spécific facets of research platforms and development of support software for the qRT-PCR plateform. • Bioinformatic platform development. The first sample is a utility software for a high troughput data flow coming from the microarray platform. The second sample is a software making local alignments of nucleic acid sequences. This software which is based on BLAST, presents additional information in a more usable format for other software.
|
Page generated in 0.0945 seconds