Parallel Processing and GPU Acceleration

From GeoDMS wiki
Revision as of 12:31, 21 December 2021 by Maarten (talk | contribs) (→‎GPU Hardware acceleration)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Investigate, describe and compare:

MultiThreading libraries

The GeoDms now uses PPL for the implementation of the following two GeoDms options

  • MT1, which enables the parallel (multi-threaded) processing of tiles of the same item.
  • MT2 (experimental), which enables then parellel processing of multiple items.

Both can be enabled or disabled from the Tools->Options dialog under the General Settings tab. These settings are stored in a user/machine specific registry and affect both the GeoDMS GUI as the GeoDMSRun. Using MT1 is fully tested and stable. Using MT2 is still considered experimental if available at all.

MT1 requires data items to be partitioned into multiple tiles. Both options require more memory resources of the system than serial processing and, especially with a Win32 process, this can lead to memory allocation failures which are not always handled smoothly. Work in progres is to support a mechanism that allows for MT1 to allocate all required resources at the start of a tile task (and reuse those resources for the next tasl in queue for that thread) or wait if those resources cannot be made available. For MT2 this doesn't seem feasible but some mechanism must be implemented to stall or at least not start threads when their task tend to exhaust memory resources, especially waiting for a swap-out operation should not cause the threading mechanism to fire new threads, as it occasionally does.

GPU Hardware acceleration

dedicated libraries

MSVC 2012 AMP support