使用test.dta数据,需要循环回归36058次,使用以下命令来计算下运行时间:
- use test.dta, clear
- timer on 1
- statsby _b _se, by(stkcd month) clear: reg R MKT SMB HML
- timer off 1
- timer list 1
接下来使用parallel命令,使用以下命令来计算下运行时间:
- use test.dta, clear
- * 如果没有安装parallel的话使用以下命令安装
- ssc install parallel, replace
- * 设置线程数量
- parallel setclusters 8
- egen id=group(stkcd month)
- sort id
- timer on 2
- parallel, by(id): statsby _b, by(stkcd month) clear: reg R MKT SMB HML
- timer off 2
- timer list 2
最终用时:180.48秒!!!
测试所用的数据:
- test.dta
两者计算出来的结果是完全一致的。
当然parallel还有更多用法,可以help parallel了解下
也可以登Github上去看下:https://github.com/gvegayon/parallel