The eighteenth month of work focused on work in the following areas:
- Keras backend support
- Primitive implementations
- 3D tensor support
- Documentation support
Organizational Activities and Results
- Weekly group-meeting, minutes:
- February 7th: https://drive.google.com/open?id=1qDcL_5qLrNPfcgcgY63fuuSGeSt7-C-D
- February 14th: https://drive.google.com/open?id=1HKZKAeNv0xq5BqI9dBMMVMXSOWorqXxA
- February 21st: https://drive.google.com/open?id=1gPicd-0ipbf-OuuZ-oi4LPgBjCYJjd8_
- February 28th: https://drive.google.com/open?id=1wkrgoyB1OFKx94lEiE1WCsWnxP8lUXht
Development Activities and Results
- Algorithms Highlighted: Logistic Regression, ALS
- APEX
- Added command line capture for APEX performance report output
- Added APEX utility to generate default configuration file
- Investigated, reported and resolved build / test failures from buildbot and nightly regression tests, including investigation of ALS algorithmic performance degradation using APEX and TAU integration with HPX
- Resolved the issue, changed the HPX configuration to eliminate performance issue in HPX thread scheduler for ALS
- Released APEX 2.1.2, updated HPX to pull current APEX version
- Tested, updated documentation for future APEX releases
- Continued testing of the parcel coalescing and tested implementation of the direct/indirect primitive scheduling policies for Phylanx autotuning
- Results suggest that a runtime policy may not be necessary, but rather a static autotuning that determines the threshold values would be sufficient
- Completed final deliverable integration report for the project period
- Traveler
- Created integration backend to centralize tree, trace, and source code data
- Created a preliminary web-based interface to that backend
- Added categorical colors to most frequent functions in Traveler Gantt
- Switched the Traveler Gantt overview to show utilization instead of
function count - Improved the UI and visualization for comparing multiple runs in
Traveler Tree - In progress:
- Evaluation design for Traveler Tree
- Created integration backend to centralize tree, trace, and source code data
- Tiling
- Theory
- Completed a technical report which describes a mathematical formulation of a tiling problem
- Introduced a new problem with respect to memory usage optimization.
- Goal is to reduce the maximum number of distributed data objects that must be kept in memory at any given time.
- We have shown both of the above problems to be NP-hard and we are in the process of fleshing out a paper based on our results.
- Implementation:
- Studied the implementations of distributed objects implemented in other systems
- Theory
- Primitives & Algorithms
- We have added the following primitives added to Phylanx this month:
- We have added 3D support to the following Primitives:
- Added automatic support for populating Phylanx documentation for primitives (PR #789)
- Python
- Added front-end support for 3D tensors
- Working on lazy-evaluation
- Needed for Keras backend
- Added data type extraction from Python
Repository Activity February 1st – February 28th:
Code statistics ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C++ 373 14736 4612 71680 C/C++ Header 254 5466 3243 27389 Python 97 1733 1230 4662 CMake 100 884 747 3640 YAML 2 21 70 534 Dockerfile 2 5 28 55 Markdown 2 17 0 50 CSS 1 14 10 38 HTML 2 5 6 22 INI 1 0 0 8 ------------------------------------------------------------------------------- SUM: 834 22881 9946 108078 -------------------------------------------------------------------------------
Impact on Other Projects
- Vcpkg:
- Updating HPX to V1.2.1 (PR #5407)
- Blaze Tickets:
- HighFive ticket:
- Pull Request: fixing #106: fails to open existing file with Create flag (#107)
- HPX Pull Requests:
- Blaze Tensor
- Addint in-place transposition of 3D tensors (PR #11)
- Adding blaze::ravel for 3D tensors (PR #10)
- Adding blaze::ravel for dense matricies (PR #9)
- ColumnSlice tryAssign arguments modification (PR #8)
- Fixing assignment operators for slices to accept matricies with any storage order (PR #7)
- Tensor Transpose (PR #6)