Comments (17)
@zhuoyw 这里改为partition数需要大于或等于shard的个数应该合适一点。engine数默认是等于shard数,所以有了上面那句文档。
from euler.
tf_euler.initialize_shared_graph
可以认为是同时启动了一个server和一个client。目前euler在训练时将数据全量的加载到内存中。所以当单台机器的内存有限时,需要将数据切分到多个shard中。数据分片是直接被放到不同的文件上的,此时每个shard只加载一部分的数据分片,即一部分的文件。而文件系统更多的只是作为一个共享的持久存储。
from euler.
非常感谢!所以在什么阶段会把内存中的数据回写到hdfs中呢?
from euler.
还有就是worker和shard是绑定的吗?还是只有Graph Engine和shard是绑定的?
from euler.
另外在训练中,如果两个graph engine对应同一个shard,在更新embedding的时候,如何保持两个engine的同步?
from euler.
euler/tf_euler/python/run_loop.py
Lines 317 to 324 in 46ca9c5
在目前的训练代码的设置中是一个worker对应一个engine对应一个shard的,并且都是固定的。但是用户也可以自己进行更灵活的异构部署,让多个engine加入同一个shard,此时同一个shard的多个engine之间host相同的数据。
目前这个版本的图是静态的,所以没有数据回写到HDFS中的逻辑。而Embedding的更新也是在训练引擎里面的。
from euler.
多谢,所以其实是多个engine都是同一个shard的reference,真正数据还是在shard里的是吗?还有您提到的训练引擎指的是Graph Engine还是Shard还是Worker?
from euler.
训练引擎指worker(TensorFlow)。数据其实就是直接存储在图引擎里面了,同一个shard下面的图引擎其实是互为备份,负载均衡的。
from euler.
所以shard里的数据是静态固定的?计算出的Embedding并不会回写到shard中对吗?
from euler.
目前是这样的,动态图/可写图正在开发中。
from euler.
那请问在ScalableGCN中,历史Node Embedding是存在parameter server中的吗?这里node embedding如果单机存不下是否会做sharding呢?
from euler.
是的,这个地方用TensorFlow的partitioned variable就可以解决了。
from euler.
非常感谢!
from euler.
euler/tf_euler/python/run_loop.py
Lines 317 to 324 in 46ca9c5
if not euler_ops.initialize_shared_graph(
directory=flags_obj.data_dir,
zk_addr=flags_obj.euler_zk_addr,
zk_path=flags_obj.euler_zk_path,
shard_idx=flags_obj.task_index,
shard_num=len(flags_obj.worker_hosts),
global_sampler_type='node'):
raise RuntimeError('Failed to initialize graph.')
在目前的训练代码的设置中是一个worker对应一个engine对应一个shard的,并且都是固定的。但是用户也可以自己进行更灵活的异构部署,让多个engine加入同一个shard,此时同一个shard的多个engine之间host相同的数据。目前这个版本的图是静态的,所以没有数据回写到HDFS中的逻辑。而Embedding的更新也是在训练引擎里面的。
"让多个engine加入同一个shard"是否和https://github.com/alibaba/euler/wiki/%E6%95%B0%E6%8D%AE%E5%87%86%E5%A4%87#%E6%95%B0%E6%8D%AE%E5%88%86%E7%89%87 中“分片数需要大于或等于图引擎实例的个数”矛盾?
from euler.
@zhuoyw 在euler中,partition(分片)是数据的一个配置,shard是一个部署的配置,两个配置是独立的。如果partition的数量小于shard的数量,那么就会有一些shard中没有数据了。 『让多个engine加入同一个shard』也是一个部署的配置。
from euler.
@zhuoyw 在euler中,partition(分片)是数据的一个配置,shard是一个部署的配置,两个配置是独立的。如果partition的数量小于shard的数量,那么就会有一些shard中没有数据了。 『让多个engine加入同一个shard』也是一个部署的配置。
那么partition数大于shard数,engine数大于shard数。“分片数需要大于或等于图引擎实例的个数”(partition数大于engine数)这个还是不太对吧?
from euler.
懂了。非常感谢!
from euler.
Related Issues (20)
- ThreadLocalRandom() 随机数分布问题 - sample_neighbor_layerwise OP
- 找不到ppi_data.py
- samle_node样遇到 euler service cpu 100% 一直没有结果卡死问题
- pip install euler_gl python版本冲突导致失败 HOT 1
- pip install成功,site-packages下没有源码
- 关于节点权重
- install Grpc error
- 记 euler2 分布式例子run_ppi.sh 失败的原因
- 请问多ps 多euler的情况下有infer的例子可以借鉴吗
- euler目前支持导入预训练的embedding向量吗? HOT 1
- from euler.tools import json2dat相关
- euler2的graphsage怎么设置use_id=true
- 如何使用Euler做分布式的Embedding训练
- euler1 使用ppi数据集 无监督graphsage训练 loss突然特别特别大
- 子图采样的时候为什么将每一层的源节点拼接? HOT 1
- Euler1 邻居采样去重
- ValueError: inputs must be a list of at least oneTensor/IndexedSlices with the same dtype and shape
- sample_edge的输出shape是[count,3]吗?
- relation_cov code not understand
- 采样策略是入度还是出度
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from euler.