GSoC 2020 – Second Eval Status Update

We recently completed the second evaluation of our Google Summer of Code program. We’ve collected brief summaries of work from each of our 5 students, as well as the pull requests that our students have produced. Check them out below:

  • Giannis Gonidelis – Adapt HPX range-based parallel algorithms in order to expose a range based interface according to latest Ranges
    • During my second period at GSoC with Ste||ar Group I started working on the actual adaptations of the parallel algorithms. I adapted the for_each algorithm along with the transform algorithm. Along the adaptations there are certain traits that are being implemented along with other supporting utilities like the algorithms’ result types. What’s more important though, is that we decided with my mentors that we should broaden our target. We re-established our goal and decided that what HPX needs more is a general adaptation on the C++20 standard (and not just iterator-range based ones). Thus, the renewed goal is to provide for each algorithm 3 (2+1) versions: One conforming to the std namespace and one according to the std::ranges namespace (the 3rd version is the obsolete one and is marked as deprecated). 
  • Mahesh Kale: Pip Package for Phylanx
    • In the second phase of the GSoC project, a wheel package is generated that can be installed on any Linux Operating System that supports the cp37-cp37m tag. The wheel on testing with python tests in Phylanx passes 99/102 tests. 2 of the test cases fail due to misspelled import statements. The wheel is tested on fresh Ubuntu and fedora container. A CI is created that can produce cp37-cp37m and cp38-cp38 wheels.
    • Blog post
    • https://github.com/git-kale/phylanx_wheel
  • Pranav Gadikar: Domain decomposition, load balancing, and massively parallel solvers for the class of nonlocal models
    • Completed distributed implementation of the 2d nonlocal heat equation with a decomposition of the domain into smaller squares. Each square’s values for the numerical solution would be computed on a single node. However, each node can have multiple squares.
    • Completed the integration of GMSH and METIS libraries to obtain an efficient domain decomposition of the mesh. The main idea is to partition the coarse mesh i.e. the mesh created using bigger squares using the METIS library.
    • Working on load balancing of the distributed implementation 2d nonlocal heat equation. Currently, there is no load balancing algorithm readily available for the asynchronous many task systems. So the work involves devising a new load balancing algorithm and demonstrating it’s correctness on the use cases relevant to the 2d nonlocal equation.

GSoC 2020 – First Eval Status Update

In the first week of July, we completed the first evaluation of our Google Summer of Code program. We’ve collected brief summaries of work from each of our 5 students, as well as the pull requests that our students have produced. Check them out below:

  • Giannis Gonidelis – Adapt HPX range-based parallel algorithms in order to expose a range based interface according to latest Ranges
    • Pull requests
    • Working on adatpting the iterator-based algorithms in order to accept for a different type of begin() and end() iterator. This is an intermediate step in order to achieve the final goal to create as many range algorithms as possible. So the iterator-based ones shall work as a hidden layer which will expose the range functionality. Until past week, Giannis was working on these traits that needed to be implemented or adapted in order for them to be used on his first algorithm adaptation which is the for_each.hpp.
  • Weile Wei:  Concurrent Data structure Support
    • In the first month of our GSoC project on Concurrent Data Structure, we have initial HPX-threading support for hazard pointers in LibCDS library. On the HPX library side, we have created several hpx user-level thread-private data to support libcds, and on the LibCDS side, we have enabled threading backend from hpx threads. The following links demonstrate our work.
  • Mahesh Kale: Pip Package for Phylanx
    • In the first phase of our GSoC project, We have created a wheel package for Phylanx. The binary dependencies of the wheel, such as Boost, Blaze, HPX, etc., are glued inside the package following the bumpy directory structure. The wheel is self-contained and has no dependency on system libraries. It can be installed and imported on the Linux operating system and been tested thoroughly on Ubuntu.
    • https://github.com/git-kale/phylanx_wheel