thomas, i'm in the midst of building a customized type to load histogram information from files into a partitioned_vector. ideally, an hpx parallel loop (for_each) should run over the partitioned_vector's elements in order to schedule execution of an hpx-action which tells the partitioned_vector's elements to load their respective data files (the parallel loop is a vector of file paths).
which parts of the hpx source tree (unit tests, examples) would you encourage me to review? i get the impression this should be a fairly straightforward bit of code. thanks in advance, ct On Mon, Apr 24, 2017 at 4:52 PM, Thomas Heller <[email protected]> wrote: > Hi Chris, > > Am 24.04.2017 7:30 nachm. schrieb "ct clmsn" <[email protected]>: > > two questions for the stellar community - if i'm writing a distributed > program that does not use the hpx spmd model, does hpx require the > partitioned_vector storing components to be registered into the agas? if > so, does hpx also require a call the connect function? several of the > non-spmd partitioned_vector unit tests do not require register/connect - > were those unit tests intended only to support single-node testing or is > distributed execution also supported? > > > I'm going to answer that later... Requires more writing... > > > on a separate issue, i'd like to access the contents of a distributed > vector that stores a component called 'dataset_t' (the component inherits > from hpx::components::simple_component_base<dataset_t> ; the client > interface for the component inherits from > hpx::components::client_base<dataset_t, > server::dataset_t>). > > > Just for future reference, this might not be what you want. For > hpx::partitioned_vector<T>, T does not need to be a component. In fact, the > vector stores any T and distributes it over the partitions. > > > currently, the following code compiles and produces a runtime exception. > > std::vector<std::size_t> pos = { static_cast<std::size_t>(idx) }; > std::vector<dataset_t> svec = dataset_arr.get_values_sync(pos); > > hpx::future<void> fc = svec[0].create(args); > fc.wait(); > hpx::future<void> fv = dataset_arr.set_values(pos, svec); > fv.wait(); > > the program runs on 1 node/host without any runtime arguments applied. the > runtime exception reads: > > "{what}: this client_base has no valid shared state: HPX(no_state)" > > > Makes sense, the client is default constructed, which doesn't create a > component. It might not need to after all (see comment above). > > > how should i comprehend this runtime exception? > > > The client did not allocate a component which it "points" to. > > All in all it's difficult to say what the proper fix would be without > looking at the code. > > > also, when the following, much simpler implementation, of sample code runs: > > hpx::future<dataset_t> fd = dataset_arr.get_value(static_c > ast<std::size_t>(idx)); > fd.wait(); > > i had the following compile error: > > "hpx/traits/get_remote_result.hpp:25:41: error: no matching function for > call to 'hpx::naming::id_type::id_type(std::remove_reference<dataset > _t&>::type" > > > any help, questions, or assistance would be appreciated! > > chris > > _______________________________________________ > hpx-users mailing list > [email protected] > https://mail.cct.lsu.edu/mailman/listinfo/hpx-users > > > > _______________________________________________ > hpx-users mailing list > [email protected] > https://mail.cct.lsu.edu/mailman/listinfo/hpx-users > >
_______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
