Back to Programs

Science and medicine

Ste||ar group

Shaping a Scalable Future

c++hpc

Participation history

10 GSoC years

2026

4 projects

Official year page

Hierarchical Collectives for HPX

HPX's existing hierarchical communicator (PR #6834) implements four one-to-all collectives (broadcast, reduce, scatter, gather) with a configurable...

Modernizing HPX: Architectural stdexec Migration and Subsystem Integration

This project completes the architectural transition of the HPX parallel runtime to the C++26 Sender/Receiver (S/R) model. Building upon the recent...

Use C++26 Reflection for HPX Remote Operations

HPX currently requires verbose macros like HPX_PLAIN_ACTION and HPX_REGISTER_ACTION to define remote operations across localities. This boilerplate...

Scalable Tracy Integration for HPX: Unified Task Lifecycle and Causal Tracing

HPX already has partial Tracy support and stronger integrations with tools like VTune and APEX, but tracing is still fragmented and largely...

2025

6 projects

Official year page

Integrate HPX algorithms with Nvidia CCCL (Thrust)

This project proposes integrating NVIDIA's Thrust parallel algorithms library with HPX to enable GPU acceleration while maintaining consistency with...

Annotate Public Api with Contracts

HPX being a library for parallel and distributed computing should address errors that are hard to catch during development due to the unpredictable...

Exposing HPX Using C++ 20 Modules

This project aims to modernize the HPX parallel computing library by introducing C++20 Modules, addressing compilation performance and code...

SymPy-HPX: High-Performance Symbolic Computing with HPX Integration

This project develops a pip-installable Python library that bridges SymPy's symbolic mathematics capabilities with HPX's high-performance parallel...

Implement hpx::system_scheduler as described in P2079 (System Execution Context)

This project implements hpx::system_scheduler as a P2079-compliant parallel execution context for HPX, mapping tasks to hpx::threads for scalability...

Fix S/R versions of the parallel algorithms

This project aims to fix critical issues in the S/R versions of HPX’s algorithms. Specifically, the parallel version of the following twelve...

2024

4 projects

Official year page

Adapting the Parallel Algorithms in HPX for Usage with Senders and Receivers

HPX supports the C++ senders and receivers facilities, which were, inter alia, specified in the standard proposal P2300. However, not all of HPX's...

Implement hpx::contains and hpx::contains_subrange (std::contains and std::contains_subrange).

A parallel and sequential implementation of std::contains and std::contains_subrange for hpx. To implement this, I will create a customisation point...

proposal-rustize-hpx

Providing performant HPX functionality written in C++ with Rust APIs to facilitate safety as well as ease of learning HPX. Designing and implementing...

Standardize and Visualize HPX Benchmarks

HPX, as a framework designed for high performance computing, has various benchmarks for measuring the performance of its various components, which...

2023

5 projects

Official year page

hpxMP: HPX threading system for LLVM OpenMP

One of the challenges in adopting HPX is the performance degradation observed in applications that use OpenMP. This occurs because of the contention...

HPXIO - async and distributed I/O library for HPX

As computation becomes faster I/O starts becoming more and more important. The goal of the project is to utilise HPX facilities such as components...

Add Vectorization to par_unseq Implementations of Parallel Algorithms

HPX parallel algorithms currently don't support the par_unseq execution policy. This project is centered around the idea to implement this execution...

Implement hpx::relocate (P1144)

Modern C++ specifications and the HPX library offer a rich set of algorithms to ensure efficient resource utilization. Nevertheless, there is still...

Pycxxwrap

Pycxxwrap is a versatile Python decorator used to wrap C++ code into Python using Pybind11. It serves as a wrapper around Pybind11, a lightweight,...

2022

4 projects

Official year page

Implementing auto-vectorization hints for par_unseq and unseq versions of HPX parallel algorithms

C++ 17 and 20 released the par_unseq and unseq execution models which give guarantees to functions which specialize on them that data access...

HPX Algorithm Performance Analysis & Optimization

The latest C++ specifications and the HPX library introduce a variety of ready-to-use algorithms that may use parallelization and concurrency, in...

Multiple Dataset Performance Visualization

Traveler-Integrated is a web-based visualization system for parallel performance data, such as OTF2 traces and HPX execution trees. HPX traces are...

Coroutine-like interface

HPX being up to date with Std C++ Proposals, Senders/Receivers were implemented as per P2300. But they have been missing coroutine (co_await)...

2021

2 projects

Official year page

Add vectorization to par_unseq implementations of Parallel Algorithms

The current HPX Parallel Algorithms do no support vectorization. This project aims at providing vectorization support to Parallel Algorithms with...

Adapting algorithms to C++ 20 and Ranges TS

Adapt the remaining algorithms like unique, adjacent_difference, lexicographical_compare etc. to C++ 20 and to Ranges TS.

2020

5 projects

Official year page

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

Recently various nonlocal models have been applied for understanding of complex spatially multiscale phenomena like solid mechanics, fluid mechanics,...

Concurrent Data Structure

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...

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...

Adapt parallel algorithms to C++20

The goal is to adapt or add all the algorithms that are exposed by the latest C++ standard (C++20). This includes, creating new algorithm...

Time Series Updates for Traveler

In this Google summer project, my goal is to make the Traveler interface more illustrative, interactive, and responsive by reducing visual lagging,...

2018

4 projects

Official year page

Alternative smart executors

HPX allows users to parallel their for-loops. The user can change values of chunk size and prefetching distance with existing execution policies....

Newtonian Physics Sandbox

Developing a tool for modeling Newtonian physics processes based on the LibGeoDecomp library and using HPX for parallel execution. Tool should be...

HPX Backend for OpenCV

HPX backend for parallelism in OpenCV developed in this project brings the following benefits while developing HPX-based application using OpenCV: ...

A C++ Runtime Replacement

Turn HPX into a replacement for the C++ runtime. Currently HPX needs to manually "lift" regular functions to HPX threads in order to have all the...

2017

4 projects

Official year page

Work on Parallel Algorithms for HPX

HPX is “The C++ Standards Library for Concurrency and Parallelism”. So, implementing C++17 parallelism like N4409 is very important. Most of parallel...

Re-implementing hpx::util::unwrapped and unifying the API of hpx::wait and hpx::when

Currently the following important functions of the HPX API: hpx::util::unwrapped hpx::wait_(all|any|each|some) hpx::when_(all|any|each|some)...

HPXCL – Asynchronous Integration of CUDA and OpenCL to HPX

Massively parallel applications are in the dawn of our future. The scale of problems and the amount of data available have made it infeasible to...

Work on Parallel Algorithms

My proposal is to complete the implementation of the N4409 C++ STL parallelization standard algorithms in HPX. Since #1141 has mostly been resolved...

2016

4 projects

Official year page

HPX Debugger

Debugging distributed HPX applications with regular tools is a tedious task and not always helpful. A distributed debugger that understands...

Plugin Mechanism for thread schedulers in HPX

Thread Scheduling in HPX HPX currently supports seven types of schedulers: Priority Local Scheduling Static Priority Scheduling Local Scheduling...

Working on parallel algorithms for hpx::vector

Extend existing parallel algorithms of hpx::vector to work for the distributed case. See issue #1338. At the end of GSoC at least two simple...

Implement a Map/Reduce Framework

Map/Reduce frameworks are getting more and more popular for big data processing (for example Hadoop). By utilising the unified and standards...