多语言展示
当前在线:1238今日阅读:167今日分享:16

mathmatica怎么提高电脑的cpu利用率

本文介绍Parallelize的用法,并行运行,可以在一定程度上增加CPU的利用率,进而提高运算速度。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

采用求出正整数的素因子的个数作为例子:f[n_] := Length[FactorInteger[n]]这个自定义函数,用来计算n的素因子个数。

2

计算10^n-1的素因子个数,其中n从50到70,如果一个一个的算,需要耗时7.9秒左右。AbsoluteTiming[f[10^# - 1] & /@ Range[50, 70]]

3

或者查看每一个数字所占用的时间:a = Map[AbsoluteTiming[f[10^# - 1]] &, Range[50, 70]]可以发现,耗时最多的一个数字是10^69-1。

4

如果采用并行运算,那么上面的过程,针对每一个数字的运算,可以同时进行:b = Parallelize[Map[AbsoluteTiming[f[10^# - 1]] &, Range[50, 70]]]这个时候,运算时间就是所有进程耗时的最大值。

5

再换一组数字:a = Map[AbsoluteTiming[f[#]] &, Range[6^20, 6^20 + 100]];b = Parallelize[Map[AbsoluteTiming[f[#]] &, Range[6^20, 6^20 + 100]]];如果你的CPU可以让这101个进程同时运行,那么a的耗时将是b的6倍左右。

6

如果1001个数字的运算进程可以同时运行,那么a的耗时是b的17倍。

注意事项

如果进程过多,Mathematica会自动分批次的并行运算。

推荐信息