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

GSoC 2020 Participants Announced!

It is time to announce the participants for in the STE||AR Group’s 2020 Google Summer of Code! We are very proud to announce the names of those 5 students this year who will be funded by Google to work on projects for our group.

These recipients represent only a handful of the many excellent proposals that we had to choose from. For those unfamiliar with the program, the Google Summer of Code brings together ambitious students from around the world with open source developers by giving each mentoring organization funds to hire a set number of participants. Students then write proposals, which they submit to a mentoring organization, in hopes of having their work funded.

Below are the students who will be working with the STE||AR Group this summer listed with their mentors and their proposal abstracts.


Participant:

Sayef Azad Sakin, University of Arizona

Mentor:

Kate Isaacs, University of Arizona

Project: Time Series Updates for Traveler

Traveler-Integrated is a platform for performance visualization of parallel runtimes such as HPX. The interface allows accessing multiple datasets, from different executions. However, there are several improvements that can be made to the interface in terms of managing large numbers of files (e.g., from historical regression runs) and organizing windows to handle comparison of runs. In this project you will work on the Javascript front end to implement this interface, refining the design through user feedback.


Participant:

Giannis Gonidelis, TS Aristotle University of Thessaloniki

Mentor:

Hartmut Kaiser, Louisiana State University

Thomas Heller, Exasol

Project:  Adapt HPX range-based parallel algorithms in order to expose a range based interface according to latest Ranges

Our parallel algorithms currently expect for the begin iterators to have the same type as the corresponding end iterators. The latest changes to the C++ Standard allow for those to be different. This enables the use of the algorithms with more general range abstractions (i.e. begin-iterator/sentinel pairs such as C-style strings). We have created a list of algorithms that need to be changed to support different types for the begin/end iterator pairs (see here). There you can also see what algorithms have already been adapted, which may help in understanding the task.


Participant:

Pranav Gadikar, Indian Institute of Technology Madras

Mentor:

Patrick Diehl, Louisiana State Univesrity

Prashant J Kumar, UT Austin

Project:  Domain decomposition, load balancing, and massively parallel solvers for the class of nonlocal models

Peridynamics is used to model cracks and fractures in materials. In recent years there have been several numerical approximations proposed for peridynamics. Peridynamics is a nonlocal model, i.e. to compute force/strain/energy at a point, one has to look at the neighbors of a point within a finite radius. A code utilizing the parallel algorithms and futurization within HPX for a single shared memory node is available. This code should be extended with a domain decomposition for computations on several nodes. Here, the challenge would be to perform an efficient load balancing of the domain partitions. In case of damage, the computational costs in the domain where the damage occurs in the material decreases. In this project, an efficient algorithm which detects where the computational costs are decreasing and how to redistribute the domains such that load is balanced should be developed.


Participant:

Weile Wei, Louisiana State University

Mentor:

John Biddiscombe, Swiss National Supercomputing Center

Mikael Simberg, Swiss National Supercomputing Center

Project:  Concurrent Data structure Support

STL containers such as vectors/maps/sets/etc are not thread safe. One cannot safely add or remove elements from one of these containers in one thread, whilst iterating or adding/removing in another thread without potentially catastrophic consequences (usually segmentation faults leading to eventual program failure). Some work has begun on implementing concurrent structures in HPX, a concurrent unordered map with reader/writer lock and a partial implementation of concurrent vector exist, but they have not all been completed, do not have unit tests and need to be unified into an hpx::concurrent namespace. A number of libraries implementing thread safe (sometimes lockfree) containers already exist that can be used for ideas and where code uses a boost compatible license can be integrated into HPX. The aim of the project is to collect as much information and as many implementations of threads safe containers and create or integrate them into the HPX library.


Participant:

Mahesh Kale, Indian Institute of Technology Roorke

Mentor:

Nikunj Gupta, Indian Institute of Technology Roorke

Parsa Amini, Louisiana State University

Project:  Pip Package for Phylanx

Phylanx relies on many external libraries which makes the building process tedious and error prone, especially to the target audience of the software- domain scientist. The goal of this project is to automate the build process of Phylanx by creating a distribution package. The distribution package should build and install Phylanx and its requirements through Python’s pip package manager.

GSoC 2018 Participants Announced!

We can now announce the participants in the STE||AR Group’s 2018 Google Summer of Code! We are very proud to announce the names of those 7 students who this year will be funded by Google to work on projects for our group.

These recipients represent only a handful of the many excellent proposals that we had to choose from. For those unfamiliar with the program, the Google Summer of Code brings together ambitious students

GsoC’18: Interview @ Heise online

This year we got interviewed about our activities at Google Summer of Code by heise online.  First, they interviewed one of this years organizers Patrick Diehl about his responsibilities as a mentor and organizer. Please find the interview in German here. Second, they interviewed Marcin Copik, a former student and a current mentor about his experiences. Please find the interview in German here.

Google Summer of Code Statistics

After the Google Mentor Summit, we started to gather some statistics about our participation in Google Summer of Code. In Summer 2014, we were first time accepted as an organization.  Figure 1 shows that since our first year we have increased the number of students mentored from two to six. Unfortunately, with an more students, the odd of a student failing the program increased. In 2017 we started to analyze the pull requests of our students. Here, we counted the open pull request at the last day of GSoC and the closed one one day later. In 2018 we started to analyze the ammount of applications we received .We also analyzed the amount of students per country of residence and continent of residence.

GSoC 2017 Results: Success!

It has been another STE||AR Summer of Code! This year our team had the privilege to work with some very talented students. Moreover, we are pleased to say that their work clearly showcases their potential. It has been an exciting and rewarding to watch these students submit increasingly influential contributions to our community.  Below you can read an outline of their projects which