int hpx_main(variables_map & vm)
{
    {
        num_iterations = vm["delay-iterations"].as<boost::uint64_t>();

        const boost::uint64_t count = vm["dataflows"].as<boost::uint64_t>();
        
        std::vector<id_type> prefixes = find_all_localities();
        
        double function_time;
        {    
            high_resolution_timer walltime;
            for(std::size_t i = 0; i < 10000; ++i)
            {
                global_scratch += null_function();
            }
            function_time = walltime.elapsed()/10000;
        }

        BOOST_FOREACH(id_type const & prefix, prefixes)
        {
            std::vector<dataflow_base<double> > dataflows;
            dataflows.reserve(count);

            high_resolution_timer walltime;

            for(boost::uint64_t i = 0; i < count; ++i)
            {
                dataflows.push_back(null_dataflow(prefix));
            }

            wait(dataflows, [&] (std::size_t, double r) { global_scratch += r;});
            const double duration = walltime.elapsed();
            
            if (vm.count("csv"))
                cout << ( boost::format("%1%,%2%,%3%,%4%\n")
                        % get_locality_id_from_id(prefix)
                        % count
                        % duration
                        % function_time)
                     << flush;
            else
                cout << ( boost::format("Locality %1%: invoked %2% futures in %3% seconds (average workload %4% s)\n")
                        % get_locality_id_from_id(prefix)
                        % count
                        % duration
                        % function_time)
                     << flush;
        }
    }