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_
cast<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

Reply via email to