tree 93dbc9c774634b1c120923862e02b34c49b816e8
parent ba6c8366975025f29455a481a78fcc307eb6ad2c
author Ekta Khanna <ekhanna@vmware.com> 1599766288 -0700
committer Domino Valdano <dvaldano@vmware.com> 1601402838 -0700

DL: Implement caching for fit_multiple_model

Currently passing around independent and dependent vars to the
transition function is what takes up most of the time.
As part of this commit, add a new fit_multipl_transition function that
reads all the rows (for each seg) into the cache(SD) for the very first
hop and for each subsequent hop/iteration, the data is read from the
cache instead of table and cleared out at the final training call. This
helps reduces the time to pass along the data to the transition function.
Since, the data is cached into memory, the memory usage per segment
increases significantly. To avoid this, a new optional param
`use_caching` is added to madlib_keras_fit_multiple_model(), that can be
set to TRUE if the memory on each segment meets the following
calculation:

   IND_SZ (indep var size of each row) = ((image_dimension)*4)*(#of images per buffer)
   DEP_SZ (indep var size of each row) = (#DEP_VAR * 4)*(#of images per buffer)
   memory_data = (#seg_per_host) * (#rows_per_seg * IND_SZ) + (#seg_per_host) * (#rows_per_seg * DEP_SZ)
   memory_model = model_size * #models_per_seg * #seg_per_host
   total_memory = memory_data + memory_model

Also:
- use_caching param descr and examples added to user docs
- Run each fit multiple dev-check test once for non-cached and once for cached case
