Phylanx Report: March 2019

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

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
  • 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
    • Implementation:
      • Implemented two separate prototype distributed objects in HPX.
  • 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
  • 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:

Visualization of March repository statistics

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
    • Fixing reduce operations to not operate on first rowslice twice (PR #18)
    • Changing the implementation of of the for loop in HPX backend (PR #12)
  • hpxMP
    • Initial Support for OpenMP 5.0 (PR #50)
    • boost intrusive pointer for omp_task_data , all barriers replaced with latch (PR #49)
    • Using Latch replace Barrier (PR #48)
Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *