-
Notifications
You must be signed in to change notification settings - Fork 557
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
图存储的内存占用,以及split算子体现在何处? #287
Comments
1:全部都是以邻接表形式存储在内存中
2: idsplit op和 merge op 在分布式模式下才会被插入Euler的计算图中,这部分逻辑在euler/parser/目录下,由compiler调用optimizer的过程中生成。
3: 使用dag调度的一个好处是,可以使用一些计算图优化算法:比如对于一个节点,需要获取其neighbor和特征时,原来模式需要调用两次rpc,现在可以被融合进一次rpc调用;同时这种情况下split方法原来会调用两次,现在会被dag优化器中的公共子表达式消除给优化掉。
目前Euler内部实际上已经支持了图分割模式的查询,假如用户把一个图分割为多个社团,并假设一个节点的所有信息查询都可以在这个社团中获取到,那么dag优化器会把尽可能多的算子打包成一个整体,一次rpc就可以吧信息获取得到。但这只是个试验性功能,目前还没有实际上生产
|
当然,Euler自己的dag执行引擎也更加轻量,所以相对于Euler1,计算图完全依赖tensorflow构建,性能也会相应提升。
|
感谢这么详细的回复! 那就是说各个点/边的features也是直接存到了点/边的类中,而不是分开存储的吗,我看json2partdat.py的代码似乎也就是把每个点和边的所有属性直接打平了依次serialize到文件中。 代码路径厉害了,非常感谢! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
想请教关于euler 2.0的几个问题
看了文档和一点点代码之后有些疑问,不知道是否愿意帮忙答疑一下,谢谢!
The text was updated successfully, but these errors were encountered: