Programming architecture

expression fast calculations: Programming Architecture

programming architecture

  • All data is managed in arrays and data operations are vectorized.
  • Large arrays are segmented (or tiled in case of 2d raster data) in order to parallel process data segments in separate threads, aka MT1
  • Different independent operations are executed in parallel, aka MT2, Multi Threading,
  • interest counting and a configurable CalcCache for storing intermediate results for as long as needed, but not longer.
  • Use of C++ templates, STL, BOOST, GDAL.
  • Management of run time properties of datasets to select the fastest algorithms, such as counting-sort and comparable methods for modus, join etc.
  • Retain intermediate resources for reuse in repeatedly called functions, such as in: poly2grid.
  • Usage of Intel’s Math Kernel Library for fast convolution, boost::uBlas for matrix operations.
  • calculations can be segmented functionally and their results merged afterwards to run on multiple machines.

Under Study: