Phylanx Report: April 2018

The Eight month of work was focused on work in the following areas:

  • Performance analysis and Improvement
  • Trace Visualization
  • Jupyter Visualization
  • Python Bindings

Organizational activities and results

Development activities and results

  • Algorithms Highlighted: Logistic Regression, ALS, K-Means
  • Refactoring: Enabled primitives to be loaded from separate shared libraries (#345)
    • Reduces link time
    • Moved primitives into plugins directory
    • Split primitives into subdirectories
  • Improvements to the slicing primitive
  • Performance Improvements
    • Removing unnecessary copies (#330, #346)
    • Remove unneeded threads, reduce allocations, enable more vectorization (#352)
  • Working range primities (#355)
  • Performance measurements of Phylanx and “competing” solutions have been completed
  • APEX policy to support parcel coalescing has been resurrected, future improvements are planned
  • Jupyter Integration:
    • Initial implementation of “magics” in Jupyter notebook for visualization support
    • Performed a formative evaluation study with Phylanx developers to assess/improve next iteration of design
  • Trace Visualization
    • All tasks are now traced with GUIDs and are added to the OTF2 file
    • Visualization now reads and displays new HPX parent thread dependencies collected by APEX
    • Verified code works for a Phylanx LRA trace
  • Phylanx Front End
    • Exposed AST as a member function of the @Phylanx decorator
    • Incorporating new slicing primitive into front-end
    • Convert python loops into Phylanx maps
      • Uses new map and range primitives
    • Redirected all std::cout outputs to Python’s stdout
    • Improved handling of return statements in Phylanx Kernels

Repository activity April 1st – April 30th:

Code statistics

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                            246          10456           3286          49597
C/C++ Header                   171           3219           2336          13346
CMake                           80            705            602           2785
Python                          34            714            511           2238
YAML                             2             13             15             79
Dockerfile                       1              2              4             32
Markdown                         1             11              0             29
INI                              1              0              0              8
-------------------------------------------------------------------------------
SUM:                           536          15120           6754          68114
-------------------------------------------------------------------------------

Impact on other projects

  • HighFive
    • Pull Request: fixing #106: fails to open existing file with Create flag (#107)
  • HPX
    • Pull Requests: Apex task wrapper memory bug (#3298)
    • Pull Requests: Support external plugins (#3277)
    • Issue: Crash with APEX when running Phylanx lra_csv with > 1 thread (#3297)
Bookmark the permalink.

Leave a Reply

Your email address will not be published.