Alias 算法抽样
简述
对于一个只有两种情况的情景抽样,很简单,例如A的概率是0.4,B的概率是0.6,那么只需要随机数小于0.4就是A,否则是B。
如果扩展多个情况,例如A,B,C的概率分别是0.2,0.3,0.5,一般情况O(1)的方法是生成一个数组[A,A,B,B,B,C,C,C,C,C,C],对数组进行随机抽取,这样比较耗费内存。
Alias也可以在O(1)的方法下取样,并且内存需要更小。
networkx的时候发现在3.0版本支持实验性的插件支持 https://github.com/networkx/networkx/pull/6000 ,
支持替换networkx的计算后端,目前比较成熟的后端插件是graphblas https://github.com/python-graphblas/graphblas-algorithms/ ,
通过这个插件,可以同时结合networkx
API的易用性以及graphblas的高性能。networkx插件的原理是利用了python的装饰器。
安装docker环境。
安装minikube。https://minikube.sigs.k8s.io/docs/start/
python版本升级到 3.7 - 3.9。
安装GraphScope 客户端
1 | # Requires the latest pip |
fifsky/ssh-action@master是GitHub Action的一个插件,用于在GitHub Action中远程登录主机执行命令。
最近写了一个脚本,结果发现github action一直处于运行状态,实际已经执行完了,最后发现是执行nohup后,ssh-action无法判定命令是否结束。
https://github.com/appleboy/ssh-action/issues/40
通过重定向所有输出解决
1 | nohup python script.py > nohup.out 2> nohup.err < /dev/null & |
大年初一,来了亲戚做客,我带着两个小朋友玩NS。
用自己写的pregel算法框架实现了一个算法,在单机情况下正常执行,在分布式下计算结束需要的迭代次数大幅增加,甚至无法结束。
从逻辑上来讲,单机与分布式计算的迭代次数应该是一致的,不应该出现这种情况。