> As I haven't yet been able to find anything about this, I'm wondering if
> someone here can help me to answer this question-
> 
> Does HPX perform load balancing between different localities for
> actions?  Given that I'm working in a heterogeneous environment, it would
> be much easier for me if I can setup the actions by assigning each to a
> different locality and then let the run-time system ensure that my
> hardware is being used optimally.
> 
> If HPX does perform load balancing between nodes, are there any
> considerations / things to keep in mind when calling those functions (or,
> I suppose - more accurately - when setting up an asynchronous function
> call for those actions).

HPX does not perform any load balancing between nodes (localities). This is 
something you will have to implement yourself. HPX does however provide you 
with the functionalities needed to implement load balancing. The API function 
hpx::components::migrate[1] can be used to move an instance of a component to a 
different locality. Once the component has been migrated (moved) any work 
executed on this component instance will automatically follow to the new 
locality.

The difficulty is to decide 'when' to move 'which' of the components 'where' 
(to what locality). This is very application specific and I believe can't be 
done in a generic way.

In order to guide this decision you could use any appropriate HPX performance 
counter (either an existing one or you can easily write your own, application 
specific counters) which for instance gives you the information about the 
current load of localities, etc.

Regards Hartmut
---------------
http://boost-spirit.com
http://stellar.cct.lsu.edu

[1] 
https://stellar-group.github.io/hpx/docs/html/header/hpx/runtime/components/migrate_component_hpp.html

_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users

Reply via email to