libgrape-lite icon indicating copy to clipboard operation
libgrape-lite copied to clipboard

Share vertex map with the workers on the same host using shared memory

Open wenyuanyu opened this issue 5 years ago • 3 comments

Is your feature request related to a problem? Please describe. When multiple worker processes are started on the same host (e.g., for auto workers), global vertex maps of fragments will be created multiple times

Describe the solution you'd like Global vertex maps can be placed in shared memory, and getting share across workers on the same host to save the unnecessary memory overhead

Describe alternatives you've considered To support multiple concurrent workers for each process?

wenyuanyu avatar Jul 22 '20 08:07 wenyuanyu

maybe we can using concurrent queue, each worker should be binding with its "workingID" and work in the producer-consumer way to separate with each others thread.

tomzhang avatar Jul 24 '20 09:07 tomzhang

and this project much more like an "demo" rather than a real project which already working in production environment.

tomzhang avatar Jul 24 '20 09:07 tomzhang

@tomzhang Thanks very much for the comments!

maybe we can using concurrent queue, each worker should be binding with its "workingID" and work in the producer-consumer way to separate with each others thread.

This issue is specifically about "auto" version of apps, where we hide the multithread programming from programmers. For other types of apps, there will be a ParallelEngine provided for parallelization that could maximize the utilization of local cores, therefore there is no need for starting multiple MPI workers on the same host.

and this project much more like an "demo" rather than a real project which already working in production environment.

Actually, there are many applications in production at Alibaba built upon this library :) You are welcome to try this library yourself. Any feedback or suggestions are GREATLY appreciated!

Thanks!

wenyuanyu avatar Jul 27 '20 13:07 wenyuanyu