Phylanx Report: September 2019

The twenty-fifth month of work focused on work in the following areas:

  • Cross platform support for Traveler-Integrated
  • 4D primitive support
  • Improved support for Docker containers

Organizational Activities and Results

Development Activities and Results

  • Traveler
    • Refactored Traveler-Integrated to work on MacOS and Ubuntu
      • Already worked on Windows
    • Updated Atria instances to support linked highlighting and Ctrl-F search for text within the visualization
      • Stand-alone & Traveler-Integrated
    • Improvements to Traveler-Integrated Gantt view in terms of highlighting primitives of the same type.
    • Traveler-Integrated backend changes to support dependency-analysis between tasks in trace files (e.g., Gantt views)
  • Tiling
    • Theory:
      • Derived an on online sub modular function maximization with respect to a greedy algorithm
      • Some observations were made on the online min cut on random graph
    • Implementation
      • Work on the distributed matrix matrix dot operation
      • Developing windows build scripts
      • Implementing an annotation comparison operator
  • Primitives & Algorithms
    • 4D support was added to the following:
      • squeeze operation (PR #1043)
      • conv2d operation (PR #1042)
      • logical operation (PR #1039)
      • transpose operation (PR #1030)
    • Bias_add operation was added (PR #1031)
    • Updated resize_images(PR #1034) and pool2d(PR #1033) to accept 4d arrays as input
  • Python
    • Wrote utility scripts to build, run and manage docker images based on both ‘docker-compose.yml’ and ‘Dockerfile’ files
      • This will allow users to:
        • build desired environment (development, performance analysis, or release) by passing a few parameters to the script
        • Dynamically build and deploy Phylanx environments.
    • Studying performance of the blaze library and approaches to improve it.
      • Focused on BBLAS (Batched BLAS) library as an alternative back-end to Blaze
        • This will help us:
          • Achieving better performance for applications dealing with many operations on small matrices (convolution, FEM, …)
          • Gain full control over blocking for any granularity

Repository Activity September 1st – September 30st:

Code statistics

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                            475          18638           6140          94277
C/C++ Header                   311           6925           4324          33793
Python                         137           2577           1795           6796
CMake                          109            954            791           4018
YAML                             2             24             77            670
Markdown                         2             17              0             46
Dockerfile                       2              6             28             44
CSS                              1             14             10             38
HTML                             2              5              6             22
DOS Batch                        2              0              0             12
INI                              1              0              0              8
-------------------------------------------------------------------------------
SUM:                          1044          29160          13171         139724
-------------------------------------------------------------------------------

Impact on Other Projects

  • Vcpkg:
    • [hpx] Redirect –head to `stable` (PR #8259)
  • HPX Pull Requests:
    • Moving more facilities to the collectives module (PR #4069)
    • Adding option allowing to force using Boost.FileSystem (PR #4081)
    • Making sure C++ standard is properly detected and propagated (PR #4108)
    • Fixing performance regression introduced earlier (PR #4111)
  • Blaze Tensor
    • Adding missing QuatSliceTrait to ArrayTransExpr (PR #45)
    • Fixing reduction of arrays (PR #46)
    • More fixes for 4D reductions (PR #47)
    • More work on turning QuatTrans into a view (PR #49)
    • Picking up C++ standard from HPX if HPX backend is used (PR #50)
    • Some more work on turning QuatTrans into a view (PR #51)
  • Blaze Iterative
    • Add test files for all algorithm except unmerged Preconditioned BiCGSTAB(l) (PR #9)
    • Add circle-ci config (PR #10)
    • Add tests (PR #11)
    • Add circl-ci banner (PR #12)
    • Test files (PR #13)
    • Remove un-tested PreconditionedBiCGSTABL and BiCGSTABL algorithms (PR #14)
    • Remove non-symmetric preconditioners (PR #15)