Skip to content

Project Ideas

FG-TUM edited this page Feb 7, 2022 · 51 revisions

Project Ideas

This page lists Project Ideas that may or may not be pursued. If you want to work on something, have a plan on how to expand a listed idea, or want to suggest a completely new idea contact the project owners.

How to read this document:

  • If something is marked as [POSSIBLE THESIS] the topic is more or less open for grabs.
  • If the topic is [RESERVED] it is currently reserved for someone.
  • Anything else needs further input.

Performance modeling

Algorithms

Container

  • [Possible ?] Sorted Neighbor Algorithms:

    • ToDo: Check what is already implemented in AutoPas
    • Reference Containers: Sort particles by cells or similar. When sorting happens in-place memory allocation should be ok-ish-er
    • Pseudo Verlet Lists paper -> Cell-based, sort for cell interaction, for every particle store start/stop index
    • Look at different sorting algorithms
    • in-place sorting
    • Issues can be found here
  • [MORE INPUT NEEDED] Other Tree based container

    • There already exists a working Octree Container
    • Optimize existing Octree implementation
    • Ball Tree -> How to find "dimension of greatest spread" efficiently?
    • M-Tree
  • [MORE INPUT NEEDED] Reference Container style for all containers

    • Could lead to more efficient conversion between containers
    • Depends on further investigation of LCR
  • [RESERVED] Performance analysis and optimization

    • for_each instead of iterators -> #434
    • Look for arbitrary inefficiencies and resolve them
    • Issues: #434 #321
  • [POSSIBLE THESIS] Investigation into Verlet-Cluster-Lists (VCL)

    • Performance analysis
    • Build clusters via (Oct)ree?
    • Issues: #396 #574 #437

Parallelization

Vectorization

  • [POSSIBLE THESIS] Intrinsics Wrappers

    • Rewrite LJFunctorAVX with an intrinsic wrapper library
    • Check if there is one that also covers ARM
  • [RESERVED] Functor as lambda

    • replace iterators with AutoPas::for_each Done
    • SoA generation from AoS on the fly by shuffling. Relevant article
    • Permutations
    • Multi-centered Molecules

AutoTuning

  • [MORE INPUT NEEDED] Reinforcement learning

  • [MORE INPUT NEEDED] Precision Comparisons-> Tuning?

  • [POSSIBLE THESIS] Hierarchical tuning

    • Create a tuning strategy that represents configurations as a hierarchical structure
    • Tuning via decision Trees
    • Fuzzy logic (?)
    • If applicable map the hierarchical format on existing strategies.
    • Issues: #557 #426
  • [MORE INPUT NEEDED] More sophisticated extrapolation algorithms

    • Currently predictive-tuning uses regression or some form of Newton or Lagrange polynomial.
    • Look at things like e.g. Richardson Extrapolation
    • Analyse behavior in different changing scenarios: linear (e.g. Spinodal Decomposition), chaotic (exploding liquid), oscillating (???)

Software Design

MD-Flexible

  • [Possible Thesis] New N-Body Simulation Types
    • Extend MD-Flexible to SPH -> other functors and particles
    • Extend MD-Flexible to DEM -> new functors and particles
    • Other time integration methods
    • Generate an executable for each simulation type from one code-base
Clone this wiki locally