Support

Getting Help with HPX

For HPX support, there are several options available. You can direct your questions to the HPX-users mailing list or the STE||AR IRC channel.

Mailing List

You can write to the HPX-users mailing list. Your first mail will be moderated, but we will subscribe you if you wish.

IRC

You can get support via the #ste||ar IRC channels at freenode, where you will often find knowledgeable people willing to help with your problems and questions related to HPX.

How to Ask for Help

Those answering support questions are volunteers. Many are developers or contributors to HPX‘s code or documentation. In order to make providing you with technical support as easy as possible for those who might answer your questions, please provide a minimal test case that exhibits your problem.

Your test case should be in the form of a single source file complete with a main() that triggers the HPX functionality that illustrates the problem. Any required input should be contained in the same source file. Ideally, you should include logic to report whether the result is what’s expected. For example, if your program should produce certain values, then test for those values and report whether they were found.

The following code exemplifies what is meant by minimal code:

#include <hpx/hpx_init.hpp>
#include <hpx/include/lcos.hpp>
#include <hpx/include/actions.hpp>
#include <hpx/include/components.hpp>

#include <vector>

///////////////////////////////////////////////////////////////////
void test()
{
    // is something wrong here?
}

// Define the boilerplate code necessary for the function 'test'
// to be invoked as an HPX action
HPX_PLAIN_ACTION(test_action);

///////////////////////////////////////////////////////////////////
int hpx_main()
{
    {
        // expose your problem here
        std::vector<hpx::naming::id_type> prefixes =
            hpx::find_all_localities();

        test_action act;
        std::vector<hpx::future<void> > futures;
        BOOST_FOREACH(hpx::id_type const& node, prefixes)
        {
            futures.push_back(hpx::async(act, node));
        }

        hpx::wait_all(futures);    // Wait for all IO to finish
    }

    return hpx::finalize();
}

int main(int argc, char* argv[])
{
    return hpx::init(argc, argv);
}

That code is stripped down to the most essential functionality, while still providing enough information to point out the problem.

GD Star Rating
loading...

    Leave a Reply

    Your email address will not be published. Required fields are marked *