• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 4
  • Tagged with
  • 4
  • 4
  • 4
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Recouvrement des Collectives MPI Non-bloquantes sur Processeur Manycore / MPI Non-Blocking Collective Overlap on Manycore Processor

Taboada, Hugo 11 December 2018 (has links)
Les supercalculateurs utilisés dans le HPC sont constitués de plusieurs machines inter-connectées. Généralement, elles sont programmées à l'aide de MPI qui spécifie une interface de programmation échanger des messages entre les machines. Les opérations MPI non-bloquantes ont été proposées pour recouvrir les communications par du calcul afin d'en amortir le coût. Initialement, ces opérations étaient uniquement disponibles pour les opérations entre 2 processus MPI : les communications point-à-point. L'extension des communications non-bloquantes aux opérations impliquant plus de 2 processus MPI, les opérations collectives, est apparue dans la version 3.0 de la norme MPI en 2012. Cela a ouvert la possibilité de recouvrir les communications collectives non-bloquantes par du calcul. Cependant, ces opérations consomment plus de temps CPU que les opérations point-à-point. Nous proposons d'aborder ce problème sous plusieurs angles. D'une part, nous nous concentrons sur le placement des threads de progression générés par les collectives MPI non-bloquantes. Pour cela, nous proposons deux algorithmes de placement des threads de progression pour toutes les collectives MPI non-bloquantes. Le premier est de regrouper les threads de progression sur des cœurs libres. Le second est de placer les threads de progression sur les hyper-threads. Pour être plus efficace, nous nous concentrons ensuite sur l'optimisation de deux types d'algorithme utilisés pour les opérations collectives : les algorithmes en arbre et les algorithmes en chaîne. D'autre part, nous avons aussi étudié l'ordonnancement des threads de progression afin d'éviter l'exécution de threads inutiles à la progression de l'algorithme. Pour cela, nous proposons d'abord d'utiliser un mécanisme permettant de suspendre l'ordonnancement de ces threads, puis de forcer l'ordonnancement optimal des threads de progression de façon statique à l'aide de sémaphores. Enfin, une politique d'ordonnancement avec des priorités a été mise en place comme preuve de concept. / Supercomputers used in HPC are composed of severals inter-connected machines. Usually, they are programmed using MPI which specify an API for messages exchanges between machines. To amortize the cost of MPI collective operations, non-blocking collectives have been proposed so as to allow communications to be overlapped with computation. Initially, these operations were only available for communication between 2 MPI processes : point-to-point communications. Non-blocking communications were expanded to collective communications in 2012 with MPI 3.0. This opens up the possibility to overlap non-blocking collective communications with computation. However, these operations are more CPU-hungry than point-to-point communications. We propose to approach this problem from several angles. On the one hand, we focus on the placement of progress threads generated by the MPI non-blocking collectives. We propose two progress threads placements algorithms for all non-blocking collectives. We either bind them on free cores, or we bind them on the hyper-threads. Then, we focus on optimizing two types of algorithms used by collective operations: tree-based algorithms and chain-based algorithms. On the other hand, we also study the scheduling of progress threads to avoid their execution when it is unecessary to the advancement of the collective algorithm. For that, we propose first to use a mechanism to suspend the scheduling of these threads, and then we force their optimal scheduling statically by using semaphores. Finally, we introduce a proof of concept scheduling policy with priorities.
2

Parallelisation d'applications pour des reseaux de processeurs homogenes ou heterogenes

Colombet, Laurent 07 October 1994 (has links) (PDF)
Le but de cette these est d'etudier et developper des methodes pour la parallelisation efficace des applications scientifiques sur machines paralleles a memoire distribuee. Dans une premiere partie nous presentons deux bibliotheques de fonctions de communication PVM ((\it Parallel Virtual Machine)) et MPI ((\it Message Passing Interface)). Ces dernieres fournissent une portabilite des programmes sur la grande majorite des machines paralleles, mais aussi sur des reseaux d'ordinateurs heterogenes. Cette partie illustre le probleme de la mesure des performances pour des reseaux de processeurs heterogenes. Ceci nous a amene a adapter le calcul du facteur d'acceleration et de l'efficacite afin de pouvoir evaluer les performances d'un algorithme sur un reseau de processeurs heterogenes. La deuxieme partie est consacree a l'etude de bibliotheques numeriques paralleles, comme ScaLAPACK, et au developpement d'une methode etudiee de maniere theorique, mais peu utilisee en pratique pour augmenter les performances des fonctions de ces bibliotheques : le recouvrement calcul/communication. L'idee generale consiste a anticiper les communications, notamment en pipelinant l'envoi des messages. Des resultats experimentaux sur machines Cray T3D et IBM SP1, permettent de valider les etudes theoriques effectuees sur des algorithmes de base de ces bibliotheques.
3

Schemas de communications globales dans les reseaux de processeurs : application a la grille torique

Michallon, Philippe 25 February 1994 (has links) (PDF)
Le but de cette these est d'etudier les schemas de communications les plus utilises, et plus particulierement la diffusion, pour en proposer des implementations efficaces sur des machines paralleles. Dans une premiere partie nous presentons les principales machines paralleles et les differents modes de communication mis en oeuvre dans ces machines. Cette partie illustre le probleme du choix du reseau d'interconnexion pour assembler les processeurs des ordinateurs massivement paralleles. La deuxieme partie est consacree a l'etude des schemas de communications globales dans les grilles toriques en mode store and forward. Dans un premier temps, on presente une nouvelle famille d'arbres de recouvrement disjoints de profondeur minimale, permettant de realiser la diffusion pipeline en temps optimal. Dans un deuxieme temps, on presente l'utilisation d'autres outils tels que les chemins hamiltoniens pour realiser l'echange total. Sur ce dernier type de communication, une etude en mode wormhole est presentee. L'algorithme est inspire du decoupage recursif de la grille torique. Il permet d'obtenir un nombre d'etapes plus faible qu'avec les algorithmes traditionnels en store and forward. Des resultats experimentaux sur machine MegaNode a 128 Transputers, permettent de valider notre etude theorique en mode store and forward. La troisieme partie est consacree a l'etude du recouvrement des communications par des calculs. L'idee consiste a anticiper les communications, en pipelinant l'envoi de petits messages. Mais la taille des messages a envoyer n'est pas facile a calculer. Nous illustrons ce probleme sur l'exemple du produit matrice-vecteur.
4

Algorithmes à grain fin et schémas numériques pour des simulations exascales de plasmas turbulents / Fine grain algorithm and numerical schemes for exascale simulation of turbulent plasmas

Bouzat, Nicolas 17 December 2018 (has links)
Les architectures de calcul haute performance les plus récentes intègrent de plus en plus de nœuds de calcul qui contiennent eux-mêmes plus de cœurs. Les bus mémoires et les réseaux de communication sont soumis à un niveau d'utilisation critique. La programmation parallèle sur ces nouvelles machines nécessite de porter une attention particulière à ces problématiques pour l'écriture de nouveaux algorithmes. Nous analysons dans cette thèse un code de simulation de turbulences de plasma et proposons une refonte de la parallélisation de l'opérateur de gyromoyenne plus adapté en termes de distribution de données et bénéficiant d'un schéma de recouvrement calcul -- communication efficace. Les optimisations permettent un gain vis-à-vis des coûts de communication et de l’empreinte mémoire. Nous étudions également les possibilités d'évolution de ce code à travers la conception d'un prototype utilisant un modèle programmation par tâche et un schéma de communication asynchrone adapté. Cela permet d'atteindre un meilleur équilibrage de charge afin de maximiser le temps de calcul et de minimiser les communications entre processus. Un maillage réduit adaptatif en espace est proposé, diminuant le nombre de points sans pour autant perdre en précision, mais ajoutant de fait une couche supplémentaire de complexité. Ce prototype explore également une distribution de données différente ainsi qu'un maillage en géométrie complexe adapté aux nouvelles configurations des tokamaks. Les performances de différentes optimisations sont étudiées et comparées avec le code préexistant et un cas dimensionnant sur un grand nombre de cœurs est présenté. / Recent high performance computing architectures come with more and more cores on a greater number of computational nodes. Memory buses and communication networks are facing critical levels of use. Programming parallel codes for those architectures requires to put the emphasize on those matters while writing tailored algorithms. In this thesis, a plasma turbulence simulation code is analyzed and its parallelization is overhauled. The gyroaverage operator benefits from a new algorithm that is better suited with regard to its data distribution and that uses a computation -- communication overlapping scheme. Those optimizations lead to an improvement by reducing both execution times and memory footprint. We also study new designs for the code by developing a prototype based on task programming model and an asynchronous communication scheme. It allows us to reach a better load balancing and thus to achieve better execution times by minimizing communication overheads. A new reduced mesh is introduced, shrinking the overall mesh size while keeping the same numerical accuracy but at the expense of more complex operators. This prototype also uses a new data distribution and twists the mesh to adapt to the complex geometries of modern tokamak reactors. Performance of the different optimizations is studied and compared to that of the current code. A case scaling on a large number of cores is given.

Page generated in 0.0698 seconds