Support

Getting Help with HPX

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

Mailing List

You can write to the GoPX 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
typedef hpx::actions::plain_action0<test> test_action;

HPX_REGISTER_PLAIN_ACTION(test_action);

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

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

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

    hpx::finalize();
    return 0;
}

int main(int argc, char* argv[])
{
    using boost::program_options::options_description;
    options_description desc_commandline(
        "Usage: " HPX_APPLICATION_STRING " [options]");

    return hpx::init(desc_commandline, 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 *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>