Phylanx Report: September 2018

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

  • Submitted a paper to the ESPM2 Workshop at Supercomputing
  • Performance analysis
    • Added nightly performance tests
    • Improvements to future allocator
    • Direct actions performance sweeps
    • Blaze tuning experiments
  • HPXMP Improvements
  • Traveler UI improvements

Organizational Activities and Results

Development Activities and Results

  • Algorithms Highlighted: Logistic Regression, ALS, Neural Network
  • APEX
    • Fixed long-standing bug preventing successful build on POWER8 with Clang 5.0 compilers
    • Collected nearly one month of performance regression data, report available at public web address:
    • Added performance tree viewer interface to the HTML regression report
    • Added nightly check for performance degradation
    • Fixed bug in APEX periodic policies preventing regular shutdown of HPX, utilized in parcel coalescing tests.
  • Traveler
    • Updated visual design for Traveler tree to support DAG links
    • Improved Traveler tree interface for integration with nightly regression runs
    • Added infrastructure for multi-part thread dependencies in Traveler Gantt
    • Improved tooltip support across both Traveler tree and Traveler Gantt views
    • UI improvements for both Traveler tree and Traveler Gantt views
  • Tiling
    • Theory:
      • Looking at two (mostly) independent formulation of the tiling problem:
        • First version: set of tiling choices are fixed. We model this as a constraint satisfaction problem. Currently we are working on determining its approximation complexity.
        • Second version: tiling is computed in an more explicit manner. We will look into this later.
    • Implementation:
      • Looking at how to extract certain memory access information from a Python program
  • Primitives & Algorithms
    • Asynchronous / Synchronous execution of Phylanx primitives are now runtime configurable
    • Set primitive has now been removed from Phylanx
    • Map primitive has now been renamed to fmap
  • Python
    • Polyhedral Optimizations in Phylanx
      • Work to transform PhySL code into the polyhedral representation and vice-versa

Repository Activity September 1st – October 1st:

Code statistics

Language                     files          blank        comment           code
C++                            286          11230           3865          56258
C/C++ Header                   200           3827           2396          16716
CMake                           91            796            665           3217
Python                          69           1169           1024           2978
YAML                             2             20             64            342
Markdown                         2             15              0             48
Dockerfile                       2              4             27             47
INI                              1              0              0              8
SUM:                           653          17061           8041          79614

Impact on Other Projects

  • Blaze:
    • Making sure HPX backend is used when BLAZE_USE_HPX_THREADS is defined and -fopnmp is used (Pull Request #27)
    • Change the prioritization of SMP implementations (Commit bb25f86)
    • Update the prioritization order of SMP implementations in the tutorial (Commit d518c7c)
  • HPX Pull Requests:
    • Enable jemalloc on windows (Pull Request #3471)
    • Enable (existing) code for extracting stack pointer on Power platform (Pull Request #3469)
    • Avoid hang if there is an exception thrown during startup (Pull Request #3468)
    • This patch adds various optimizations extracted from the thread_local_allocator work (Pull Request #3465)
Bookmark the permalink.

Leave a Reply

Your email address will not be published.