• DocumentCode
    57675
  • Title

    Design of a Multithreaded Barnes-Hut Algorithm for Multicore Clusters

  • Author

    Junchao Zhang ; Behzad, Babak ; Snir, Marc

  • Author_Institution
    Math. & Comput. Sci. (MCS) Div., Argonne Nat. Lab., Argonne, IL, USA
  • Volume
    26
  • Issue
    7
  • fYear
    2015
  • fDate
    July 1 2015
  • Firstpage
    1861
  • Lastpage
    1873
  • Abstract
    We describe in this paper an implementation of the Barnes-Hut algorithm on multicore clusters. Based on a partitioned global address space (PGAS) library, the design integrates intranode multithreading and internode one-sided communication, exemplifying a PGAS + X programming style. Within a node, the computation is decomposed into tasks (subtasks) and multitasking is used to hide network latency. We study the tradeoffs between locality in private caches and locality in shared caches and bring the insights into the design. As a result, our implementation consumes less memory per core, invokes less internode communication, and enjoys better load-balancing strategies. The final code achieves up to 41 percent performance improvement over a non-multithreaded counterpart. Through detailed comparison, we also show its advantages over other well-known Barnes-Hut implementations, both in programming complexity and in performance.
  • Keywords
    multi-threading; multiprocessing systems; PGAS library; X programming style; internode one-sided communication; intranode multithreading; multicore clusters; multithreaded Barnes-Hut algorithm design; partitioned global address space; private caches; shared caches; Algorithm design and analysis; Force; Instruction sets; Multicore processing; Octrees; Programming; Synchronization; Barnes-Hut; PGAS; cluster; multicore; n-body;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2014.2331243
  • Filename
    6837521