eriknw / dask-patternsearch

Scalable pattern search optimization with dask
BSD 3-Clause "New" or "Revised" License
21 stars 2 forks source link

Low memory stencil #8

Open eriknw opened 7 years ago

eriknw commented 7 years ago

Our current stencil is created by reflecting and contracting a right-handed simplex all different ways. In dim dimensions, this simplex has 2 * factorial(dim) permutations. For high dimensions (dim > 10), the memory usage of storing these simplexes is approximately dim**2 bytes per stencil point. This means creating 1000 stencil points for dim = 1000 uses 1 GB. 100000 stencil points for dim = 100 also uses 1 GB.

Creating the low memory stencil should be as straightforward as manually creating the first few iterations from the current stencil. This would serve as a nice consistency check too. We can choose which stencil to use based on the number of dimensions. I bet we can manually add enough points that we can conservatively use the low memory stencil for problems with more than ~30 dimensions.