mpsym: Improving Design-Space Exploration of Clustered Manycores with Arbitrary Topologies

Andres Goens, Timo Nicolai, Jeronimo Castrillon

Research output: Contribution to journalArticlepeer-review

Abstract

With growing numbers of cores, the memory subsystem of manycore architectures increases in complexity. Many modern multicores are designed in a hierarchical fashion, with multiple clusters of processing elements. However, most algorithms for design-space exploration of resource allocation in multicores do not consider these complex topologies, which results in poor scaling, or worse, non-functioning algorithms. In this paper we present mpsym, a C++ library designed to alleviate this problem in an algorithm-agnostic fashion. Using methods from computational group theory, we present domain-specific algorithms to improve design-space exploration in hierarchical architecture topologies. We evaluate mpsym on multiple designspace exploration algorithms from literature. Without modifying the algorithm, our methods improve the execution time by a factor up to 8:6× on the E3S benchmark suite for complex, clustered architecture topologies. Similarly, by pruning the design space, our methods consistently improve the result of the exploration. In particular, the results from a simulated annealing heuristic on the Kalray MPPA3 Coolidge topology are over 30× better on average, while requiring less time to explore.
Original languageEnglish
Pages (from-to)1592-1605
Number of pages14
JournalIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Volume41
Issue number6
Early online date4 Aug 2021
DOIs
Publication statusPublished - 1 Jun 2022

Keywords / Materials (for Non-textual outputs)

  • Computer aided software engineering
  • design automation
  • design-space exploration (DSE)
  • symmetries
  • system on chip

Fingerprint

Dive into the research topics of 'mpsym: Improving Design-Space Exploration of Clustered Manycores with Arbitrary Topologies'. Together they form a unique fingerprint.

Cite this