Sign inSign up

steffenseckler/tum-dissertation-latex

By steffenseckler

Updated about 5 years ago

ubuntu 20.04 version of https://github.com/TUM-LIS/tum-dissertation-latex

Image
0

1.5K

steffenseckler/tum-dissertation-latex repository overview

Dissertation

Newest pdf can be downloaded here

Gliederung

Algorithm and Performance Engineering for HPC Particle Simulations

Abstract
  • most optimizations on ls1-mardyn, but applicable elsewhere.
Introduction
  1. Motivation, warum ist das, was ich mache wichtig.
  2. Particle Simulations -- short range
    • MD
    • (SPH)
    • Zeitschrittverfahren
    • sehr kurz: Thermostate, Ensembles (mit Einschränkungen, also welche gibt es, was brauchen sie, ...)
  3. short range algorithms
    • LC, VL + force calculation
    • shortly mention long-range: direct/Barnes-Hut/FMM
    • Domain partitioning, only sdd., mention halo+boundary particles!, more details in MN-BB-LB
  4. HPC-Architectures
    • single node: shared-memory, but often NUMA
    • multi-node: distributed memory
      • also with heterogeneous architectures
    • used clusters: MAC Cluster / Linux Cluster / SuperMUC 1/2 / SuperMIC / Hazel Hen -- eventually later, before results?
  5. Overview of this thesis / Outline
    • previous implications of HPC in ls1-mardyn in next section
    • New opt. of multi node in section -> MNO + AT in MN
    • New opt. of node-level opt in -> Node-Level AT

Notes:

  • einfach nur grundlegende Algorithmik + Domain decomp
ls1-mardyn
  • what it is, what it does
  • container: LC
  • traversal: c08, sliced, c04
  • vectorization: intrinsics up to AVX512
  • with context of HPC Architectures
(Scenarios)

Scenario Descriptions

  1. artificial scenarios
    • homogeneous particle distribution
    • mksfera
    • mktcts
    • other
  2. realistic scenarios
    • Expl. liquid
    • droplet coalescence
    • spinodal decomposition
    • toffifee?

Note:

  • die nicht hier einführen, sondern wenn sie gebaucht werden, also später.
Multi-Node Optimizations
Building Blocks
  1. MPI Overview
    • P2P
    • Collective
    • Non-Blocking
  2. Load Balancing Overview
    • different algorithms (kdd, diffusive, space-filling curves, ...)
    • load estimation
      • Überleitung: this works good for, e.g., stencil based algorithms, but for MD load estimation/calculation is also needed
      • OPEN: how to handle related work here? in this section, or the next?
  3. Zonal Methods
    • NT, MP, ...
  1. More detailed view at Multi-Node optimizations of other software
    • lammps
    • Gromacs
    • maybe other software?
    • FDPS?
      • multi-section method, <-- maybe better to introduce later, i.e., at multi-node AT...
  2. Sachen von vorherigen Dissertationen am Lehrstuhl
  3. Sachen von Steffen Hirschmann
Implementation and Results
  1. load estimation and k-d decomposition in ls1 mardyn
    • Methods:
      • heterogeneous domain
      • heterogeneous arch -- Motivation: MAC cluster and other trends (new Jülich cluster?)
      • vectorization tuner
      • backward calculation (speed from measurements, matrix inverse, ...)
      • hetero + vec tuner
    • results:
      • broad comparison of the different algorithms, clusters and scenarios.
  2. Neutral Territory/Zonal Methods
    • Implementation:
      • ZonalMethod classes: Specifying different import/export regions
        • MP: needs to be cell-based!
      • Neighbor Acquirer: Getting Neighbors from arbitrary Zonal Methods
      • Matching Traversals:
        • FS, ES, HS: Mainly c08
        • MP: own traversal
        • NT: own traversal
    • Results:
      • Scaling results, mostly important for large scale homogeneous experiments.
  3. MPI optimizations
    • overlapping p2p
    • overlapping globals (evtl. physik angucken)
    • and new WR -> how much was overlapping useful here?
Improving Node-Level Performance using Auto-Tuning
  • with context of ls1 mardyn!
Motivation
  • during WR: sometimes sliced, sometimes c08 better
  • idea:
    • can we extend this using auto-tuning
    • move force calculation of ls1 mardyn outside and make it tunable
Building Blocks
  • Short overview auto-tuning
  • auto-vectorization?
  • algorithm-selection geht
    • nachbarn
    • parallelisierung
    • datenstrukturen
  • weiteres?

Notes:

  • technisch und algorithmisch
  • maybe merge this with related work, for VerletClusterLists, ...
  1. What do other codes use for better node-level performance:
    • lammps:
      • verlet-lists
      • vectorization (by intel), cuda, kokkos, evtl. andere
    • Gromacs:
      • Verlet-Cluster lists
      • cuda
    • FDPS:
      • somewhat similar, but different!
      • node-level: internally represents an octree
  2. Which software uses which containers
  3. Lammps: Kokkos?
  4. GPU in Gromacs
Implementation and Results
  1. General
    • Grundidee / Motivation, warum nützlich?
  2. AutoPas library
    • short outside overview
    • inner workings
      • software design
  3. verschiedene Optionen
    • Container
      • DS
      • LC, wenige Traversals
      • VL
      • VCL, cuda
    • Traversals
    • und andere ---
  4. Auto-Tuning, short overview.
    • Full-Search
    • Full-SearchMPI
  5. Node-Level results
Enabling Auto-Tuning on the Multi-Node Level

mainly paper from 2020 <-- CITE THIS!

  1. AutoPas + ls1 + LB
    • why different LB scheme?
Summary and Outlook
Summary
Outlook
  • AutoPas
    • potentially update to kokkos for performance portability
    • better auto-tuning strategies in development by Fabio
    • more tuning options
    • multi-centered molecules support
    • c++20 concepts for better error handling, ...
    • lammps integration for AutoPas is in the work
  • ls1-mardyn
    • more load balancing libraries with autopas
    • adapt everything to AutoPas
Appendix

Potentially:

  • CI via Jenkins
  • Funny Bug Collection: intel + rundungsfehler
Notes
  • welche building blocks brauche ich --> intro
  • wofür gibts schon related work
  • was gibt es für vorraussetzungen?
  • szenarios eher später, also erst vor den ergebnissen
  • kapitelnamen anpassen, eventuell ohne Softwarenamen?
  • software und algorithmen eng verzahnen, oder, alternativ, erst algo, dann software?
  • wo sehe ich meine Hauptbeiträge?
    • im wesentlichen bei ls1? -> eng verzahnen
    • neuer algorithmus -> nicht eng verzahnen
    • => mal aufschreiben, wie ich das sehe

Tag summary

Content type

Image

Digest

Size

367.1 MB

Last updated

about 5 years ago

docker pull steffenseckler/tum-dissertation-latex