Spelling suggestions: "subject:"ppc"" "subject:"dppc""
211 |
High-Level Parallel Programming of Computation-Intensive Algorithms on Fine-Grained ArchitectureCheema, Fahad Islam January 2009 (has links)
<p>Computation-intensive algorithms require a high level of parallelism and programmability, which </p><p>make them good candidate for hardware acceleration using fine-grained processor arrays. Using </p><p>Hardware Description Language (HDL), it is very difficult to design and manage fine-grained </p><p>processing units and therefore High-Level Language (HLL) is a preferred alternative. </p><p> </p><p>This thesis analyzes HLL programming of fine-grained architecture in terms of achieved </p><p>performance and resource consumption. In a case study, highly computation-intensive algorithms </p><p>(interpolation kernels) are implemented on fine-grained architecture (FPGA) using a high-level </p><p>language (Mitrion-C). Mitrion Virtual Processor (MVP) is extracted as an application-specific </p><p>fine-grain processor array, and the Mitrion development environment translates high-level design </p><p>to hardware description (HDL). </p><p> </p><p>Performance requirements, parallelism possibilities/limitations and resource requirement for </p><p>parallelism vary from algorithm to algorithm as well as by hardware platform. By considering </p><p>parallelism at different levels, we can adjust the parallelism according to available hardware </p><p>resources and can achieve better adjustment of different tradeoffs like gates-performance and </p><p>memory-performance tradeoffs. This thesis proposes different design approaches to adjust </p><p>parallelism at different design levels. For interpolation kernels, different parallelism levels and </p><p>design variants are proposed, which can be mixed to get a well-tuned application and resource </p><p>specific design.</p>
|
212 |
High-Level Parallel Programming of Computation-Intensive Algorithms on Fine-Grained ArchitectureCheema, Fahad Islam January 2009 (has links)
Computation-intensive algorithms require a high level of parallelism and programmability, which make them good candidate for hardware acceleration using fine-grained processor arrays. Using Hardware Description Language (HDL), it is very difficult to design and manage fine-grained processing units and therefore High-Level Language (HLL) is a preferred alternative. This thesis analyzes HLL programming of fine-grained architecture in terms of achieved performance and resource consumption. In a case study, highly computation-intensive algorithms (interpolation kernels) are implemented on fine-grained architecture (FPGA) using a high-level language (Mitrion-C). Mitrion Virtual Processor (MVP) is extracted as an application-specific fine-grain processor array, and the Mitrion development environment translates high-level design to hardware description (HDL). Performance requirements, parallelism possibilities/limitations and resource requirement for parallelism vary from algorithm to algorithm as well as by hardware platform. By considering parallelism at different levels, we can adjust the parallelism according to available hardware resources and can achieve better adjustment of different tradeoffs like gates-performance and memory-performance tradeoffs. This thesis proposes different design approaches to adjust parallelism at different design levels. For interpolation kernels, different parallelism levels and design variants are proposed, which can be mixed to get a well-tuned application and resource specific design.
|
213 |
Data services: bringing I/O processing to petascaleAbbasi, Mohammad Hasan 08 July 2011 (has links)
The increasing size of high performance computing systems and the associated
increase in the volume of generated data, has resulted in an I/O bottleneck for these applications.
This bottleneck is further exacerbated by the imbalance in the growth of processing
capability compared to storage capability, due mainly to the power and cost requirements
of scaling the storage. This thesis introduces data services, a new abstraction which provides
significant benefits for data intensive applications. Data services combine low overhead
data movement with flexible placement of data manipulation operations, to address
the I/O challenges of leadership class scientific applications. The impact of asynchronous
data movement on application runtime is minimized by utilizing novel server side data
movement schedulers to avoid contention related jitter in application communication. Additionally,
the JITStager component is presented. Utilizing dynamic code generation and
flexible code placement, the JITStager allows data services to be executed as a pipeline
extending from the application to storage. It is shown in this thesis that data services can
add new functionality to the application without having an significant negative impact on
performance.
|
214 |
Entwicklung paralleler Algorithmen zur numerischen Simulation von Gas-Partikel-Stroemungen unter Beruecksichtigung von Partikel-Partikel-KollisionenWassen, Erik 17 December 1998 (has links) (PDF)
Gas-Partikel-Stroemungen finden sich in weiten Bereichen
der Energie- und Verfahrenstechnik. Beispiele fuer haeu-
fig anzutreffende Problemstellungen sind der Transport,
die Separation oder die Injektion eines Gemisches aus
festen Partikeln und einem Traegergas.
Fuer die numerische Simulation solcher disperser Mehr-
phasenstroemungen hat sich das Lagrange-Verfahren als
besonders geeignet erwiesen. Andererseits stellt die An-
wendung dieses Berechnungsverfahrens hoechste Anforderun-
gen an die Ressourcen der verwendeten Rechner. Dies gilt
im besonderen Masse fuer die Simulation von Stroemungen
mit einer moderaten bis hohen Partikelbeladung, in denen
die Partikel-Partikel-Kollisionen einen grossen Einfluss
auf das Stroemungsverhalten haben.
Um das grosse Leistungspotential, das heutige massiv par-
allele Hochleistungsrechner bieten, effizient zu nutzen,
wurden im Rahmen dieser Arbeit parallele Simulationsalgo-
rithmen fuer die numerische Berechnung kollisionsbehafte-
ter Gas-Partikel-Stroemungen entwickelt. Die Effizienz
dieser Algorithmen wurde anhand verschiedener Testfaelle
untersucht. Auf der Grundlage der dabei erzielten Ergeb-
nisse wurden Vorschlaege fuer weitere Entwicklungsmoeg-
lichkeiten erarbeitet. / Gas-particle-flows can be found widely in the field of
energy production and process engineering. Examples for
applications of such kind of flows are transport, se-
paration or injection of a mixture of solid particles
and a gaseous phase.
The Lagrangian approach has proved to be a suitable means
for the numerical simulation of disperse multiphase flows.
On the other hand its application requires a large amount
of computational power, especially when flows with a mo-
derate or high particle loading are computed and particle-
particle collisions have a significant influence on the
flow.
In order to use efficiently the large computational power
that parallel computers provide nowadays, parallel algo-
rithms for the numerical simulation of gas-particle flows
including particle-particle collisions were developed in
the cource of this work. The algorithms' efficiency was
investigated considering different test cases. On the
basis of the results suggestions for further developments
were made.
|
215 |
Simulations hydrauliques d'haute performance dans la Grille avec Java et ProActivePeretti-Pezzi, Guilherme 15 December 2011 (has links) (PDF)
L'optimisation de la distribution de l'eau est un enjeu crucial qui a déjà été ciblé par de nombreux outils de modélisation. Des modèles utiles, implémentés il y a des décennies, ont besoin d'évoluer vers des formalismes et des environnements informatiques plus récents. Cette thèse présente la refonte d'un ancien logiciel de simulation hydraulique (IRMA) écrit en FORTRAN, qui a été utilisé depuis plus de 30 ans par la Société du Canal de Provence, afin de concevoir et maintenir les réseaux de distribution d'eau. IRMA a été développé visant principalement pour le traitement des réseaux d'irrigation - en utilisant le modèle probabiliste d'estimation de la demande de Clément - et il permet aujourd'hui de gérer plus de 6.000 km de réseaux d'eau sous pression. L'augmentation de la complexité et de la taille des réseaux met en évidence le besoin de moderniser IRMA et de le réécrire dans un langage plus actuel (Java). Cette thèse présente le modèle de simulation implémenté dans IRMA, y compris les équations de perte de charge, les méthodes de linéarisation, les algorithmes d'analyse de la topologie, la modélisation des équipements et la construction du système linéaire. Quelques nouveaux types de simulation sont présentés: la demande en pointe avec une estimation probabiliste de la consommation (débit de Clément), le dimensionnement de pompe (caractéristiques indicées), l'optimisation des diamètres des tuyaux, et la variation de consommation en fonction de la pression. La nouvelle solution adoptée pour résoudre le système linéaire est décrite et une comparaison avec les solveurs existants en Java est présentée. La validation des résultats est réalisée d'abord avec une comparaison entre les résultats obtenus avec l'ancienne version FORTRAN et la nouvelle solution, pour tous les réseaux maintenus par la Société du Canal de Provence. Une deuxième validation est effectuée en comparant des résultats obtenus à partir d'un outil de simulation standard et bien connu (EPANET). Concernant les performances de la nouvelle solution, des mesures séquentielles de temps sont présentées afin de les comparer avec l'ancienne version FORTRAN. Enfin, deux cas d'utilisation sont présentés afin de démontrer la capacité d'exécuter des simulations distribuées dans une infrastructure de grille, utilisant la solution ProActive. La nouvelle solution a déjà été déployée dans un environnement de production et démontre clairement son efficacité avec une réduction significative du temps de calcul, une amélioration de la qualité des résultats et une intégration facilitée dans le système d'information de la Société du Canal de Provence, notamment la base de données spatiales.
|
216 |
Conception et analyse d'algorithmes parallèles en temps pour l'accélération de simulations numériques d'équations d'évolutionRiahi, Mohamed Kamel 10 July 2012 (has links) (PDF)
Cette thèse présente des algorithmes permettant la parallélisation dans la direction temporelle de la simulation des systèmes régis par des équations aux dérivées partielles issues de trois domaines d'application proposant des modèles complexes: \textbf{1. Contrôle optimal d'équations paraboliques:}\\ Nous développons deux algorithmes parallèles (SITPOC et PITPOC). Ces deux algorithmes sont basés sur une méthode générale de décomposition en temps des problèmes de contrôle optimal. Un résultat de convergence est obtenu pour SITPOC ainsi que des interprétations matricielles des deux algorithmes. \textbf{2. Cinétique de la population de neutrons dans un réacteur nucléaire:}\\ Nous concevons un solveur parallélisé en temps regroupant toutes les variables issues de la modélisation neutronique d'un réacteur. Notre méthode est adaptée aux différents scénarios possibles réduisant la physique. Les résultats numériques sont comparables à ceux obtenus par le code MINOS du CEA. La parallélisation repose sur un schéma de type pararéel pour la résolution en temps. Nous considérons plusieurs modèles physiques de la cinétique des neutrons que nous traitons par notre algorithme dans lequel le solveur grossier utilisé correspond à une simulation par réduction du modèle physique. Cette réduction est bénéfique puisqu'elle permet une accélération importante du traitement en temps machine. \textbf{3. Contrôle par résonance magnétique nucléaire et information quantique:}\\ Ce chapitre présente un travail d'ouverture sur une méthode parallèle en temps pour la résolution d'un problème de contrôle optimal en résonance magnétique nucléaire. Notre méthode produit une accélération importante par rapport à l'algorithme de référence non parallèle. De plus, les champs de contrôle calculés par notre méthode sont lisses, ce qui permet une mise en œuvre expérimentale plus simple dans les instruments. Les tests numériques prouvent l'efficacité de notre approche. Sur des exemples académiques et sans faire usage de techniques de programmation avancées, nous obtenons des accélérations de résolution significatives.
|
217 |
Analyse et rejeu de traces de charge dans les grands systèmes de calcul distribuésEmeras, Joseph 01 October 2013 (has links) (PDF)
High Performance Computing is preparing the era of the transition from Petascale to Exascale. Distributed computing systems are already facing new scalability problems due to the increasing number of computing resources to manage. It is now necessary to study in depth these systems and comprehend their behaviors, strengths and weaknesses to better build the next generation. The complexity of managing users applications on the resources conducted to the analysis of the workload the platform has to support, this to provide them an efficient service. The need for workload comprehension has led to the collection of traces from production systems and to the proposal of a standard workload format. These contributions enabled the study of numerous of these traces. This also led to the construction of several models, based on the statistical analysis of the different workloads from the collection. Until recently, existing workload traces did not enabled researchers to study the consumption of resources by the jobs in a temporal way. This is now changing with the need for characterization of jobs consumption patterns. In the first part of this thesis we propose a study of existing workload traces. Then we contribute with an observation of cluster workloads with the consideration of the jobs resource consumptions over time. This highlights specific and unattended patterns in the usage of resources from users. Finally, we propose an extension of the former standard workload format that enables to add such temporal consumptions without loosing the benefit of the existing works. Experimental approaches based on workload models have also served the goal of distributed systems evaluation. Existing models describe the average behavior of observed systems. However, although the study of average behaviors is essential for the understanding of distributed systems, the study of critical cases and particular scenarios is also necessary. This study would give a more complete view and under- standing of the performance of resource and job management. In the second part of this thesis we propose an experimental method for performance evaluation of distributed systems based on the replay of production workload trace extracts. These extracts, replaced in their original context, enable to experiment the change of configuration of the system in an online workload and observe the different configurations results. Our technical contribution in this experimental approach is twofold. We propose a first tool to construct the environment in which the experi- mentation will take place, then we propose a second set of tools that automatize the experiment setup and that replay the trace extract within its original context. Finally, these contributions conducted together, enable to gain a better knowledge of HPC platforms. As future works, the approach proposed in this thesis will serve as a basis to further study larger infrastructures.
|
218 |
Contributions to parallel stochastic simulation : application of good software engineering practices to the distribution of pseudorandom streams in hybrid Monte Carlo simulations / Contributions à la simulation stochastique parallèle : architectures logicielles pour la distribution de flux pseudo-aléatoires dans les simulations Monte Carlo sur CPU/GPUPasserat-Palmbach, Jonathan 11 October 2013 (has links)
Résumé non disponible / The race to computing power increases every day in the simulation community. A few years ago, scientists have started to harness the computing power of Graphics Processing Units (GPUs) to parallelize their simulations. As with any parallel architecture, not only the simulation model implementation has to be ported to the new parallel platform, but all the tools must be reimplemented as well. In the particular case of stochastic simulations, one of the major element of the implementation is the pseudorandom numbers source. Employing pseudorandom numbers in parallel applications is not a straightforward task, and it has to be done with caution in order not to introduce biases in the results of the simulation. This problematic has been studied since parallel architectures are available and is called pseudorandom stream distribution. While the literature is full of solutions to handle pseudorandom stream distribution on CPU-based parallel platforms, the young GPU programming community cannot display the same experience yet.In this thesis, we study how to correctly distribute pseudorandom streams on GPU. From the existing solutions, we identified a need for good software engineering solutions, coupled to sound theoretical choices in the implementation. We propose a set of guidelines to follow when a PRNG has to be ported to GPU, and put these advice into practice in a software library called ShoveRand. This library is used in a stochastic Polymer Folding model that we have implemented in C++/CUDA. Pseudorandom streams distribution on manycore architectures is also one of our concerns. It resulted in a contribution named TaskLocalRandom, which targets parallel Java applications using pseudorandom numbers and task frameworks.Eventually, we share a reflection on the methods to choose the right parallel platform for a given application. In this way, we propose to automatically build prototypes of the parallel application running on a wide set of architectures. This approach relies on existing software engineering tools from the Java and Scala community, most of them generating OpenCL source code from a high-level abstraction layer.
|
219 |
Exploration of parallel graph-processing algorithms on distributed architectures / Exploration d’algorithmes de traitement parallèle de graphes sur architectures distribuéesCollet, Julien 06 December 2017 (has links)
Avec l'explosion du volume de données produites chaque année, les applications du domaine du traitement de graphes ont de plus en plus besoin d'être parallélisées et déployées sur des architectures distribuées afin d'adresser le besoin en mémoire et en ressource de calcul. Si de telles architectures larges échelles existent, issue notamment du domaine du calcul haute performance (HPC), la complexité de programmation et de déploiement d’algorithmes de traitement de graphes sur de telles cibles est souvent un frein à leur utilisation. De plus, la difficile compréhension, a priori, du comportement en performances de ce type d'applications complexifie également l'évaluation du niveau d'adéquation des architectures matérielles avec de tels algorithmes. Dans ce contexte, ces travaux de thèses portent sur l’exploration d’algorithmes de traitement de graphes sur architectures distribuées en utilisant GraphLab, un Framework de l’état de l’art dédié à la programmation parallèle de tels algorithmes. En particulier, deux cas d'applications réelles ont été étudiées en détails et déployées sur différentes architectures à mémoire distribuée, l’un venant de l’analyse de trace d’exécution et l’autre du domaine du traitement de données génomiques. Ces études ont permis de mettre en évidence l’existence de régimes de fonctionnement permettant d'identifier des points de fonctionnements pertinents dans lesquels on souhaitera placer un système pour maximiser son efficacité. Dans un deuxième temps, une étude a permis de comparer l'efficacité d'architectures généralistes (type commodity cluster) et d'architectures plus spécialisées (type serveur de calcul hautes performances) pour le traitement de graphes distribué. Cette étude a démontré que les architectures composées de grappes de machines de type workstation, moins onéreuses et plus simples, permettaient d'obtenir des performances plus élevées. Cet écart est d'avantage accentué quand les performances sont pondérées par les coûts d'achats et opérationnels. L'étude du comportement en performance de ces architectures a également permis de proposer in fine des règles de dimensionnement et de conception des architectures distribuées, dans ce contexte. En particulier, nous montrons comment l’étude des performances fait apparaitre les axes d’amélioration du matériel et comment il est possible de dimensionner un cluster pour traiter efficacement une instance donnée. Finalement, des propositions matérielles pour la conception de serveurs de calculs plus performants pour le traitement de graphes sont formulées. Premièrement, un mécanisme est proposé afin de tempérer la baisse significative de performance observée quand le cluster opère dans un point de fonctionnement où la mémoire vive est saturée. Enfin, les deux applications développées ont été évaluées sur une architecture à base de processeurs basse-consommation afin d'étudier la pertinence de telles architectures pour le traitement de graphes. Les performances mesurés en utilisant de telles plateformes sont encourageantes et montrent en particulier que la diminution des performances brutes par rapport aux architectures existantes est compensée par une efficacité énergétique bien supérieure. / With the advent of ever-increasing graph datasets in a large number of domains, parallel graph-processing applications deployed on distributed architectures are more and more needed to cope with the growing demand for memory and compute resources. Though large-scale distributed architectures are available, notably in the High-Performance Computing (HPC) domain, the programming and deployment complexity of such graphprocessing algorithms, whose parallelization and complexity are highly data-dependent, hamper usability. Moreover, the difficult evaluation of performance behaviors of these applications complexifies the assessment of the relevance of the used architecture. With this in mind, this thesis work deals with the exploration of graph-processing algorithms on distributed architectures, notably using GraphLab, a state of the art graphprocessing framework. Two use-cases are considered. For each, a parallel implementation is proposed and deployed on several distributed architectures of varying scales. This study highlights operating ranges, which can eventually be leveraged to appropriately select a relevant operating point with respect to the datasets processed and used cluster nodes. Further study enables a performance comparison of commodity cluster architectures and higher-end compute servers using the two use-cases previously developed. This study highlights the particular relevance of using clustered commodity workstations, which are considerably cheaper and simpler with respect to node architecture, over higher-end systems in this applicative context. Then, this thesis work explores how performance studies are helpful in cluster design for graph-processing. In particular, studying throughput performances of a graph-processing system gives fruitful insights for further node architecture improvements. Moreover, this work shows that a more in-depth performance analysis can lead to guidelines for the appropriate sizing of a cluster for a given workload, paving the way toward resource allocation for graph-processing. Finally, hardware improvements for next generations of graph-processing servers areproposed and evaluated. A flash-based victim-swap mechanism is proposed for the mitigation of unwanted overloaded operations. Then, the relevance of ARM-based microservers for graph-processing is investigated with a port of GraphLab on a NVIDIA TX2-based architecture.
|
220 |
Managing a real-time massively-parallel neural architecturePatterson, James Cameron January 2012 (has links)
A human brain has billions of processing elements operating simultaneously; the only practical way to model this computationally is with a massively-parallel computer. A computer on such a significant scale requires hundreds of thousands of interconnected processing elements, a complex environment which requires many levels of monitoring, management and control. Management begins from the moment power is applied and continues whilst the application software loads, executes, and the results are downloaded. This is the story of the research and development of a framework of scalable management tools that support SpiNNaker, a novel computing architecture designed to model spiking neural networks of biologically-significant sizes. This management framework provides solutions from the most fundamental set of power-on self-tests, through to complex, real-time monitoring of the health of the hardware and the software during simulation. The framework devised uses standard tools where appropriate, covering hardware up / down events and capacity information, through to bespoke software developed to provide real-time insight to neural network software operation across multiple levels of abstraction. With this layered management approach, users (or automated agents) have access to results dynamically and are able to make informed decisions on required actions in real-time.
|
Page generated in 0.0478 seconds