GSoC 18: Final Documentation for a C++ run time replacement

By Nikunj Gupta

A C++ Runtime Replacement

Abstract

A user can make use of the HPX functionality only after initializing the HPX Runtime System. To initialize the user has to call thehpx::init function with valid parameters and an entry point for the HPX runtime system (defaulting tohpx_main if none provided).

My GSoC project was to integrate the HPX runtime system with C++ runtime system i.e. to make all HPX features directly available from int main. To give a clear picture, this was already pre-implemented using a C++ macro #define main hpx_startup::user_main. This method, however, is not robust and can result in unexpected errors. The project, therefore, involved researching various ways to integrate the two seamlessly and make sure it is robust at the same time. I was able to integrate the runtime systems for machines running Linux or Mac OSX.