吧务
level 15
xzcyr
楼主
嗯……这个问题的复杂度我心里还是有个数的,所以这帖不指望得出答案之类,重在交流讨论。
先说一下我大致的了解吧。因为最近有机会接触到了多核的计算机,所以我也稍微关心了一下。总的感觉是并行似乎真不那么容易,在Stackexchange的未解答率(无人回答或有人答却未被采纳或没有Upvote的问题数比上总问题数)只有35/175.==0.2,这算是相当高了,要知道全站总体未解答率是1325/14474.==0.0915435,一些流行的Tag,比如plot,未解答率只有63./2069==0.0304495。compile在我印象里应该是比较麻烦的,可是一查却发现未解答率才16/149.==0.107383,正好是平均水准。
这175个问题里面得分比较高的问题我也算读了一下,要总结的话,那就是,只有一件事是可以并行的那它才是可以并行的,也就是说,只有当你要做的事是可以互无瓜葛地进行的的时候,Mathematica的并行指令才可以被使用……
说到这里,有件事大家或许会觉得奇怪,那就是,照这个说法,很多的列表操作似乎都应该是可以并行的,为什么实际上并非如此?对于这一点,我也不是很清楚(那你拿出来说干嘛!),但我怀疑这可能和PackedArray(某个和Mathematica的快速计算有着重要关系的数据结构,Mathematica在版本5.2之后快起来很大程度上就是因为它)本身结构的特殊性有关……具体的……我也不是很清楚。但是看看SE上某些高手对SparseArray内部结构的解析帖,我就强烈地感觉,PackedArray一定没那么容易并行。
此外,就我所做的简单的测试而言,并行提速的效果很有限,并且,很多时候都不能和Compile并用,而单用Compile获得的提速往往大幅高于单用并行所获得的。
在这过程中我甚至考虑了要不要转战别的软件。Julia不知道有没有人知道?一个还在零点几版的以高性能计算为目标的语言,研究了半天之后提了这个问题:
http://stackoverflow.com/q/23290917/1551513
结果至今未见回应……我想我的问题问的应该不那么糟,那么,没人给出具体解答的原因,应该还是因为它不那么容易吧……
于是我就试着在更一般的层面上探索了一下这个问题,于是看到了这么一篇文章:
http://www.ltesting.net/ceshi/ceshijishu/rjcsgcsrm/2013/1024/206739.html
七零八落地写了这么多(答了一天题着实有点疲劳),以上就是我所查到的和并行有关的一些信息,欢迎大家交流探讨。
2014年05月03日 09点05分
1
先说一下我大致的了解吧。因为最近有机会接触到了多核的计算机,所以我也稍微关心了一下。总的感觉是并行似乎真不那么容易,在Stackexchange的未解答率(无人回答或有人答却未被采纳或没有Upvote的问题数比上总问题数)只有35/175.==0.2,这算是相当高了,要知道全站总体未解答率是1325/14474.==0.0915435,一些流行的Tag,比如plot,未解答率只有63./2069==0.0304495。compile在我印象里应该是比较麻烦的,可是一查却发现未解答率才16/149.==0.107383,正好是平均水准。
这175个问题里面得分比较高的问题我也算读了一下,要总结的话,那就是,只有一件事是可以并行的那它才是可以并行的,也就是说,只有当你要做的事是可以互无瓜葛地进行的的时候,Mathematica的并行指令才可以被使用……
说到这里,有件事大家或许会觉得奇怪,那就是,照这个说法,很多的列表操作似乎都应该是可以并行的,为什么实际上并非如此?对于这一点,我也不是很清楚(那你拿出来说干嘛!),但我怀疑这可能和PackedArray(某个和Mathematica的快速计算有着重要关系的数据结构,Mathematica在版本5.2之后快起来很大程度上就是因为它)本身结构的特殊性有关……具体的……我也不是很清楚。但是看看SE上某些高手对SparseArray内部结构的解析帖,我就强烈地感觉,PackedArray一定没那么容易并行。
此外,就我所做的简单的测试而言,并行提速的效果很有限,并且,很多时候都不能和Compile并用,而单用Compile获得的提速往往大幅高于单用并行所获得的。
在这过程中我甚至考虑了要不要转战别的软件。Julia不知道有没有人知道?一个还在零点几版的以高性能计算为目标的语言,研究了半天之后提了这个问题:
http://stackoverflow.com/q/23290917/1551513
结果至今未见回应……我想我的问题问的应该不那么糟,那么,没人给出具体解答的原因,应该还是因为它不那么容易吧……
于是我就试着在更一般的层面上探索了一下这个问题,于是看到了这么一篇文章:
http://www.ltesting.net/ceshi/ceshijishu/rjcsgcsrm/2013/1024/206739.html
七零八落地写了这么多(答了一天题着实有点疲劳),以上就是我所查到的和并行有关的一些信息,欢迎大家交流探讨。