Internal:GPU Usage

From crtc.cs.odu.edu
Jump to navigation Jump to search

PODM Refactoring

  1. Find a Predicates library to replace CGAL library. A possible solution is Predicate Construction Kit and its code.
  2. Remove Boost library and replace with std::thread, ask Christos for Barrier.
  3. Remove VTK library
  4. Update ITK
  5. Choose a specific C++ coding style✔
  6. Use C++17 standard✔
  7. Create Mesh Unstructured Grid class (as VTk's) to facilitate IOs and Linear Interpolation for N Dimensions
  8. Combine 3D and 4D PODM versions into one abstract program, in which the user will choose what he wants to use.
    1. Create namespaces for each PODM which will help creating a templated PODM wrapper✔
    2. Decouple Args from PODM✔
    3. Create setArguments function✔
    4. Remove setImage* functions and create setInputImage(ImageType::Pointer, string)✔
    5. Remove GetShortFileName✔
    6. Template the common code of each PODM for 3-4 dimensions (or even more or less)
    7. Keep only useful Defines
  9. Use GPUs:
    1. For “itkSignedMaurerParallelDistanceMapImageFilter” code:
      1. Understand the code by reading the Parallel N-Dimensional Exact Signed Euclidean Distance Transform paper
      2. Study if it’s beneficial to convert it in order to use GPUs. See the papers:
        1. A Multigrain Delaunay Mesh Generation Method for Multicore SMT-based Architectures,
        2. Algorithm, Software, and Hardware Optimizations for Delaunay Mesh Generation on Simultaneous Multithreaded Architectures
    2. For Predicates:
      1. Based on ACCELERATING THE EXACT EVALUATION OF GEOMETRIC PREDICATES WITH GPUS
      2. Based on GPredicates - GPU Implementation of Robust and Adaptive Floating-Point Predicates for Computational Geometry
  10. Decouple Contentions managers and Load Balancing from the Meshing Procedure.
  11. Add PDR
  12. Add Smoothing