Parallel Processing and GPU Acceleration

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 GUI as the geodmsrun.

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