Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[SYSTEMDS-3234] Multi-threaded covariance/central-moment operations
Inspired by performance issues in SYSTEMDS-3233, this patch introduces multi-threaded cov/cm operations which were still single-threaded. These operations are mostly executed in parfor contexts, but if large memory requirements force a lower degree of parallelism in parfor, we should distributed the remaining parallelism to intra-operation parallelism like many other ops. Furthermore, this patch also cleans up the instruction construction parsing, and core cov/cm operations in order to share a common code path in LibMatrixAgg. On the scenario of SYSTEMDS-3233 this patch improved end-to-end performance from 261s to 144s eliminating cov/cm as top-2 heavy hitters (now right indexing due to column indexing on sparse matrix). On 100M row (800MB) input vectors and 100 operations, the total runtime improved as follows (server with 32 vcores): * 100x cov(100M, 100M): 105s -> 7.7s (13.6x) * 100x cm(100M): 109s -> 9.1s (12x)
- Loading branch information
Showing
14 changed files
with
289 additions
and
254 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.