Phylanx Report: April 2019

The twentieth month of work focused on work in the following areas:

  • Performance improvements
  • Keras Backend
  • hpxMP improvements

Organizational Activities and Results

Development Activities and Results

  • General
    • Work on Keras backend
      • Implemented 83 Keras functions
    • Performance
      • Implemented flags to control thread stealing and idle back-off
      • Optimizations for local-only primitive calls
    • hpxMP
      • Replaced hpx::spin_lock with hpx::latch
      • Began implementing OpenMP 5.0 features
  • Traveler
    • Refactoring the Atria tree visualization
      • Modular architecture to support our deployment goals
      • Completed a proof of concept of the architecture
      • Working to add prior features
    • Gantt chart
      • Switching to Golden Layout
        • Matches the aggregator that Alex has been working on
  • Tiling
    • Implementation:
      • Implemented a generic distributed object in HPX
        • Two versions:
          • Initialization using all-to-all communication
          • Initialization using a meta-object
        • Supports construction on a subset of nodes/ localities.
    • Future Work:
      • Implement a distributed matrix using the  generic distributed object
      • Enable distributed object’s fetch to return a sub-block
      • Determine how to link a Python / PhySL object to a distributed object in HPX
  • Primitives & Algorithms
    • We have merged the following primitives into master:
      • softsign (PR #923)
      • resize_images (PR #908)
      • switch_operation (PR #935)
      • ctc_decode (PR #938)
      • binary crossentropy (PR #945)
      • sort (PR #948)
      • conv1d (PR #955)
      • 3D support was added to Boolean primitives (PR #954)
    • Support for arrays to fold left / fold right was added (PR #932)
  • Python
    • Enable implementation of plugins in Python:
      • implement ‘in_top_k’ plugin
    • Extend OpenSCoP back-end to support multi-dimensional arrays.
    • Study the feasibility of JIT compilation using LLVM compiler- primarily to enable polyhedral optimizations.
    • Implement more functions to support Keras’ Phylanx back-end.
    • Support code generation for the ‘zip’ operation

Repository Activity March 30th – April 30th:

GitHub Statistics

Code statistics

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                            435          17324           5500          87673
C/C++ Header                   284           6096           3527          30264
Python                         135           2517           1754           6447
CMake                          105            914            770           3811
YAML                             2             24             77            641
Dockerfile                       2              6             27             53
Markdown                         2             17              0             46
CSS                              1             14             10             38
HTML                             2              5              6             22
INI                              1              0              0              8
-------------------------------------------------------------------------------
SUM:                           969          26917          11671         129003
-------------------------------------------------------------------------------

Impact on Other Projects

  • HPX Pull Requests:
    • Adding shortcut for hpx::get_ptr<>(sync, id) for a local, non-migratable objects (PR #3827)
    • Allow setting default scheduler mode via the configuration database (PR #3814)
    • Adding a distributed object abstraction (PR #3807)
    • Update hpxcxx to look at lib64 and use python3 (PR #3803)
    • Adding flags to scheduler allowing to control thread stealing and idle back-off (PR #3768)
  • Blaze Tensor Pull Requests:
    • Adding norms for tensors (PR #21)
    • Adding version and GIT hash to build system (PR #20)
    • Fixing vectorized implementation of blaze::sum(Tensor) (PR #19)
Bookmark the permalink.

Leave a Reply

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