int main() { using vector_type = hpx::partitioned_vector<double>; const std::size_t size_x = 32; const std::size_t size_y = 4; const std::size_t size_z = hpx::get_num_localities(hpx::launch::sync); const std::size_t elt_size = 4; const std::size_t num_partitions = size_x*size_y*size_z; std::size_t raw_size = num_partitions*elt_size; vector_type my_vector(raw_size, hpx::container_layout( num_partitions, hpx::find_all_localities() )); std::string vec_name("my_vector"); my_vector.register_as(hpx::launch::sync, vec_name); hpx::future<void> join = hpx::lcos::define_spmd_block("block", 4, bulk_test_action(), size_x, size_y, size_z, elt_size, vec_name); join.get(); return 0; }
int main() { using vector_type = hpx::partitioned_vector<double>; const std::size_t height = 16; const std::size_t width = 16; std::size_t local_height = 16; std::size_t local_width = 16; std::size_t local_leading_dimension = local_height; std::size_t raw_size = (height * width) * (local_height * local_width); auto layout = hpx::container_layout(height * width, hpx::find_all_localities()); // Vector instantiations for test 1 vector_type in1(raw_size, layout); vector_type out1(raw_size, layout); std::string in1_name("in1"); std::string out1_name("out1"); in1.register_as(hpx::launch::sync, in1_name); out1.register_as(hpx::launch::sync, out1_name); // Vector instantiations for test 2 vector_type in2(raw_size, layout); vector_type out2(raw_size, layout); std::string in2_name("in2"); std::string out2_name("out2"); in2.register_as(hpx::launch::sync, in2_name); out2.register_as(hpx::launch::sync, out2_name); // Launch tests hpx::future<void> join1 = hpx::lcos::define_spmd_block("block1", 4, bulk_test_action(), height, width, local_height, local_width, local_leading_dimension, in1_name, out1_name); hpx::future<void> join2 = hpx::lcos::define_spmd_block("block2", 4, async_bulk_test_action(), height, width, local_height, local_width, local_leading_dimension, in2_name, out2_name); hpx::wait_all(join1, join2); return 0; }