The nineteenth month of work focused on work in the following areas:
- Traveler Team Visit (March 7th and 8th)
- Support for the Keras Back-end
Organizational Activities and Results
- Weekly group-meeting, minutes:
- March 7th: https://drive.google.com/open?id=1SOL-eIk3WOep3rVfFhVVIDHzgKC5d0ER
- March 14th: https://drive.google.com/open?id=1ppwKttDjjGjoIAPlXSwp_KhpEybFYzXh
- March 21st: https://drive.google.com/open?id=1HVuDeo0wBM8Rh5O8_mpatxwMKHdUbRiN
- March 28th: https://drive.google.com/open?id=1abRtIbzIYdqBkPBtaG4EVkEEgE6XA_0V
- Phylanx Seminars:
Development Activities and Results
- General
- Much of this month’s work focused on creating primitives which supports the Keras backend
- Includes adding 3D support for some primitives
- Much of this month’s work focused on creating primitives which supports the Keras backend
- APEX
- Work on policy to determine whether to launch primitives synchronously or asynchronously
- Traveler
- Traveler Tree now called “Atria”
- Added list view to Atria. It shows an ordered list of high execution time primitives
- Formal evaluation sessions of Atria
- Atria UI fixes for code linking, tree collapsing
- Tiling
- Theory:
- Looked at the Latent Dirichlet allocation problem and found a suitable matrix-based learning algorithm
- Set of operations performed by this algorithm consists of only simple matrix operations like multiplication, inverse etc. and they are suitable for distributed execution
- As far as we are aware there are no distributed implementations of this particular algorithm, hence it is possible that a distributed implementation using Phylanx may lead to a small (student) paper
- There are few variants of this algorithm, which claim better overall performance. It seems to us as a starting point this algorithm is a better choice due to its simplicity.
- Partitioning interval hypergraphs
- Motivated by sparse matrix tiling (partitioning) problem in the context of matrix vector multiplications
- Problem is NP complete, if the intervals are contiguous and disjoint
- Extending the intervals to two or more dimensions does not make this version of the problem any more interesting
- Looked at the Latent Dirichlet allocation problem and found a suitable matrix-based learning algorithm
- Implementation:
- Implemented two separate prototype distributed objects in HPX.
- Theory:
- Primitives & Algorithms
- Added the following primitives:
- ReLU #870
- Sigmoid #872
- Hard_Sigmoid #872
- One_hot_operation #871
- Softplus #869
- Size #867
- L2_normalize operation #881
- elu_operation #882
- batch_dot #877
- 3D support added to the following primitives:
- Reshape #823
- Softmax #850
- Slicing was adapted to support 32 bit indices #814
- Added Truncated Normal Random Number Distribution #865
- Added the following primitives:
- Python
- Added support for lazy evaluations of Phylanx functions
- Support code generation for:
- default values and named arguments
- if expressions
- list comprehension
- for loops with variable iteration spaces
- Bug fixes:
- Plain returns
- enforcing Python version in the build system
Repository Activity March 1st – March 31th:
Code statistics
------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C++ 417 16445 5149 80452 C/C++ Header 272 5925 3462 29609 Python 118 2272 1631 5838 CMake 102 895 758 3725 YAML 2 24 77 641 Dockerfile 2 6 27 53 Markdown 2 17 0 50 CSS 1 14 10 38 HTML 2 5 6 22 INI 1 0 0 8 ------------------------------------------------------------------------------- SUM: 919 25603 11120 120436 -------------------------------------------------------------------------------
Impact on Other Projects
- Blaze Tickets:
- Add support for `mean` calculations (Issue #243)
- HPX Pull Requests:
- Disable more code if networking is not available/not enabled (PR #3754)
- Introduced cache_aligned_data and cache_line_data helper structure (PR #3745)
- Add latch member function count_up and reset, requested by hpxMP (PR #3729)
- Adding support for passing command line options through the HPX_COMMANDLINE_OPTIONS environment variable (PR #3726)
- Blaze Tensor
- hpxMP