GSoC/GCI Archive
Google Summer of Code 2015

The STE||AR Group

License: Boost Software License (BSL1.0)

Web Page: https://github.com/STEllAR-GROUP/hpx/wiki/GSoC-2015-Project-Ideas

Mailing List: hpx-users@stellar.cct.lsu.edu

The STE||AR group (which stands for Systems Technologies, Emergent Parallelism, and Algorithms Research) is a group of students, researchers, and faculty members focusing on developing tools supporting future execution models for tomorrow's computer architectures. Many of those ideas are applicable to solving some of today's problems we face when writing parallel applications for modern multi-core machines. For this reason we center our effort around HPX (High Performance ParalleX), a general purpose C++ runtime system for parallel and distributed applications of any scale, which implements many of those ideas.

The goal for HPX is to create a high quality, freely available, open source implementation of the ParalleX model for conventional systems, such as classic Linux based Beowulf clusters or multi-socket highly parallel SMP nodes. At the same time, we want to have a very modular and well designed runtime system architecture which would allow us to port our implementation onto new computer system architectures. We use real world applications to drive the development of the runtime system, coining out required functionalities and converging onto an stable API which will provide a smooth migration path for developers. The API exposed by HPX is modeled after the interfaces defined by the C++ ISO standard and adheres to the programming guidelines used by the Boost collection of C++ libraries.

HPX has an active development team that has increased non-stop since 2007 (ref:http://www.openhub.net/p/stellar-hpx) thanks to a modular design that enables features to be added easily.

Projects

  • A Flexible IO Infrastructure for LibGeoDecomp + HPX An IO infrastructure for the LibGeoDecomp based on HPX, where multiple remote steerers and writers can register in order to implement In-Situ-Visualization and Live-Steering in a generic way.
  • Add a mechanism to integrate C++AMP with HPXCL Extend the HPX with the ability to run tasks based on C++ AMP kernel. The project is based on CLAMP, an open-source compiler providing the transformation method from AMP to OpenCL kernel.
  • Application/Counter CSV files Performance analysis for high performance runtime is of great importance. This project aims at providing an integrated solution in HPX for creating databases and plots for performance counters related to:- AGAS, Parcel Layer, Thread Manager, LCOs, Characteristics of Localities, General Statistics using user defined input and output parameters and providing simple real time plots with a dashboard GUI and statistical inferences using statistical analysis.
  • Implement a Plugin Mechanism for thread schedulers Revise the existing thread subsystem of HPX with an executor-resource manager module so that we have more fine grain control with respect to locality and other resource management choices.
  • SIMD Wrapper for ARM NEON, Intel AVX512 & KNC Vectorization is imperative for writing highly efficient numerical kernels. The goal this project is to extend the already existing SIMD wrappers in LibFlatArray ( https://github.com/STEllAR-GROUP/libflatarray/blob/master/src/short_vec.hpp ) to further architectures (e.g. ARM NEON, Intel AVX512, Intel IMCI, CUDA etc.) and/or to extend the capabilities of these wrappers.