【验证笔记】RayFed + 比较运算 #308
imwangyt
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
部署环境
两台CentOS 7.x虚拟机,ip和端口如下:
| ip | ray gcs port | rayfed grpc port | spu brpc port |
192.168.12.13 9913 9923 9933
192.168.12.14 9914 9924 9934
docker采用host模式启动容器,请提前关闭alice和bob主机的防火墙,确保网络通畅。
安装部署
alice
a. head node: ray start --head --node-ip-address="192.168.12.13" --port="9913" --include-dashboard=false --disable-usage-stats
bob
a. head node: ray start --head --node-ip-address="192.168.12.14" --port="9914" --include-dashboard=false --disable-usage-stats
验证
另起ssh连接到主机,通过dpsa等docker cli可以查看容器;
使用docker exec -it [容器ID] bash可以附加到容器,另起bash以便使用ray cli或者系统cli,如ps -ef等观察ray集群。
建立MPC环境
容器内进入Python环境。
Note: 以下代码,alice和bob两边都执行,除非特别说明仅在alice或bob侧执行。
建立RayFed
在alice和bob容器内启动python,执行以下代码,连接到各自集群,并初始化RayFed。
‒ cluster_config内需提供未使用的端口,作为RecverProxyActor grpc的监听端口;
‒ alice和bob差异之处:1)cluster_config中的self_party,2)sf.init的address目标。
alice
bob
验证
执行完成后,可以看到日志显示
RecverProxyActor
启动成功;此时另外docker bash可以看到raylet进程拉起了RecverProxyActor和SendProxyActor进程:关闭
sf.shutdown()会关闭前面sf.init()拉起的内容,如果出现问题,直接shutdown,然后重新init。
建立SPU
需提供未使用的端口作为SPU brpc的监听端口。各方执行相同的代码。
注意:各方执行代码,尤其是sf.SPU的时间间隔不要太大,因为各方要建立SPU Runtime Actor之间的brpc连接。
验证
此时,使用网络工具可以检查到ray gcs、rayfed recver、spu的监听端口
关闭
以两方为例,执行s2pc.shutdown()可以关闭spu。如果出现问题,可以shutdown,然后重新spu。
定义&运行应用
这里的应用指隐私计算应用,即各类隐私AI&BI算法的执行代码,通常具有以下结构:
注意1:两边要跑相同的代码,实际只会执行本方的device,详见原理及编程注意事项;
注意2:由于代码是要公开给各方一起执行,所以,数据要从本地读取;测试时,可以事先准备数据文件或者数据生成工具;
提示:可将算法代码打包分发给各方,然后多人模拟多方测试,效果更好。
比较运算
Beta Was this translation helpful? Give feedback.
All reactions