正好近期打算自己装一个高配机来跑大数据,认真搜索很久之后似乎找到了问题的终极答案:以下都用MP版本来讲(只考虑运算速度的问题):
1. 运算速度的角度而言,stata12/13/14的MP版本只是最大支持核心数发生了变化。
2. 运算速度取决于四个因素: (1)内存的大小及频率,这决定了可以运算的最大数据量及读入内存的速度,例如use 2017.dta
(2)CPU单核频率,这是硬指标,频率越高越快
(3)CPU核心数,注意:并非核心越多计算越快,理由见下一条
(4)
命令是否支持并行(电脑小白就简单理解为多核就行了)
运算(准确而言,是并行化的程度,每一个命令也都是多个基础命令组成的,adoedit就可以看到,比如:A命令由十个基础命令组成,十个基础命令里面有6个支持并行计算,那么A命令的并行率就是60%
),这才是决定运算速度的关键。stata官方命令有一半不支持并行运算或并行率很低,比如expand命令。16核的计算速度和单核没有任何差异。stata官方列出了所有官方命令是否支持并行运算以及在多核情况下速度提升的幅度,
参考附件第17页。
statamp.pdf
(5.42 MB)
3. stata版本越高调用核心越多,多核心调用的同时电脑的单核资源分配下降,导致当命令不支持并行运算时,stata版本越高,反而计算越慢(这一点是我推断的,题主的问题可能就出在这里)。
4. 综上所述,stata版本自然是越高越好,提升速度的关键在于:将不支持并行运算的命令用其他支持并行运算的命令替代,如果要经常计算大数据,建议直接换个CPU单核频率高、核心多,内存大、频率高的电脑。
上述是我对附件文件的一个简单概述,只是粗略过了一下,想进一步了解的同学仔细看看。