Parallel Monte-Carlo Tree Search for HPC Systems and its Application to Computer Go - Schäfers, Lars
Monte-Carlo Tree Search (MCTS) is a class of simulation-based search algorithms. It brought about great success in the past few years regarding the evaluation of deterministic two-player games such as the Asian board game Go. In this thesis, we present a parallelization of the most popular MCTS variant for large HPC compute clusters that efficiently shares a single game tree representation in a distributed memory environment and scales up to 128 compute nodes and 2048 cores. It is hereby one of the most powerful MCTS parallelizations to date. In order to measure the impact of our parallelization on the search quality and remain comparable to the most advanced MCTS implementations to date, we implemented it in a state-of-the-art Go engine Gomorra, making it competitive with the strongest Go programs in the world. We further present an empirical comparison of different Bayesian ranking systems when being used for predicting expert moves for the game of Go and introduce a novel technique for automated detection and analysis of evaluation uncertainties that show up during MCTS searches.

Optimizing the Generator Start-up Sequence After a Power System Blackout - Shen, Cong; Kaufmann, Paul; Braun, Martin (IEEE Power and Energy Society General Meeting (IEEE GM))

A New Distribution Network Reconfiguration and Restoration Path Selection Algorithm - Shen, Cong; Kaufmann, Paul; Braun, Martin (Power Systems Computation Conference (PSCC))

Multithreaded Parallelization of Mechatronic Controllers on a Zynq Platform FPGA - Surmund, Sebastian

Applications of Evolutionary Computation - 17th European Conference, EvoApplications - I. Esparcia-Alcázar, Anna; Eiben, A.E.; Agapitos, Alexandros; Simões, Anabela; G.B. Tettamanzi, Andrea; Della Cioppa, Antonio; M. Mora, Antonio; Cotta, Carlos; Tarantino, Ernesto; Haasdijk, Evert; Divina, Federico; Fernández de Vega, Francisco; et al.

Analytic reliability evaluation for fault-tolerant circuit structures on FPGAs - Anwer, Jahanzeb; Platzner, Marco (IEEE International Symposium on Defect and Fault Tolerance in VLSI and Nanotechnology Systems (DFT))

Fast process variation analysis in nano-scaled technologies using column-wise sparse parameter selection - Ghasemzadeh Mohammadi, Hassan; Gaillardon, Pierre-Emmanuel; Yazdani, Majid; De Micheli, Giovanni (2014 IEEE/ACM International Symposium on Nanoscale Architectures (NANOARCH))

Common Fate Graph Patterns in Monte Carlo Tree Search for Computer Go - Graf, Tobias; Platzner, Marco (2014 IEEE Conference on Computational Intelligence and Games)

Verschiebungen an der Grenze zwischen Hardware und Software - Platzner, Marco; Plessl, Christian (Logiken strukturbildender Prozesse: Automatismen)
Im Bereich der Computersysteme ist die Festlegung der Grenze zwischen Hardware und Software eine zentrale Problemstellung. Diese Grenze hat in den letzten Jahrzehnten nicht nur die Entwicklung von Computersystemen bestimmt, sondern auch die Strukturierung der Ausbildung in den Computerwissenschaften beeinﬂusst und sogar zur Entstehung von neuen Forschungsrichtungen geführt. In diesem Beitrag beschäftigen wir uns mit Verschiebungen an der Grenze zwischen Hardware und Software und diskutieren insgesamt drei qualitativ unterschiedliche Formen solcher Verschiebungen. Wir beginnen mit der Entwicklung von Computersystemen im letzten Jahrhundert und der Entstehung dieser Grenze, die Hardware und Software erst als eigenständige Produkte diﬀerenziert. Dann widmen wir uns der Frage, welche Funktionen in einem Computersystem besser in Hardware und welche besser in Software realisiert werden sollten, eine Fragestellung die zu Beginn der 90er-Jahre zur Bildung einer eigenen Forschungsrichtung, dem sogenannten Hardware/Software Co-design, geführt hat. Im Hardware/Software Co-design ﬁndet eine Verschiebung von Funktionen an der Grenze zwischen Hardware und Software während der Entwicklung eines Produktes statt, um Produkteigenschaften zu optimieren. Im fertig entwickelten und eingesetzten Produkt hingegen können wir dann eine feste Grenze zwischen Hardware und Software beobachten. Im dritten Teil dieses Beitrags stellen wir mit selbst-adaptiven Systemen eine hochaktuelle Forschungsrichtung vor. In unserem Kontext bedeutet Selbstadaption, dass ein System Verschiebungen von Funktionen an der Grenze zwischen Hardware und Software autonom während der Betriebszeit vornimmt. Solche Systeme beruhen auf rekonﬁgurierbarer Hardware, einer relativ neuen Technologie mit der die Hardware eines Computers während der Laufzeit verändert werden kann. Diese Technologie führt zu einer durchlässigen Grenze zwischen Hardware und Software bzw. löst sie die herkömmliche Vorstellung einer festen Hardware und einer ﬂexiblen Software damit auf.

Partitioning and Vectorizing Binary Applications for a Reconfigurable Vector Computer - Kenter, Tobias; Vaz, Gavin Francis; Plessl, Christian (Proceedings of the International Symposium on Reconfigurable Computing: Architectures, Tools, and Applications (ARC))
In order to leverage the use of reconfigurable architectures in general-purpose computing, quick and automated methods to find suitable accelerator designs are required. We tackle this challenge in both regards. In order to avoid long synthesis times, we target a vector copro- cessor, implemented on the FPGAs of a Convey HC-1. Previous studies showed that existing tools were not able to accelerate a real-world application with low effort. We present a toolflow to automatically identify suitable loops for vectorization, generate a corresponding hardware/software bipartition, and generate coprocessor code. Where applicable, we leverage outer-loop vectorization. We evaluate our tools with a set of characteristic loops, systematically analyzing different dependency and data layout properties.