[問題] 如何使用平行運算或加快計算時間?
看板Mathematica作者harry901 (forcing to A cup)時間13年前 (2011/12/01 00:32)推噓1(1推 0噓 0→)留言1則, 1人參與討論串1/2 (看更多)
小弟又要來求救了@___@~ 爬了文跟網路
原本以為只要調整mathematica裡面的系統設定
就可以輕輕鬆鬆的使用多核心或連到其他電腦上進行平行運算
但是...嗚嗚 似乎沒那麼容易>.<~
爬了很多文 大多數使用平行運算是用ParallelMap來運算...
我天真以為 調調系統 mathematica就會聰明的自己將資料分配給多核電腦計算...
弄了老半天就是只有用到單核 不管在for迴圈前面加上parallelize 還是其他方法
都沒辦法成功平行運算>.<~ 一趟下來要四五分鐘左右....
由於程式的複雜度關係 沒有使用Map指令
小弟的程式到目前為止已經快六百行了 還有2/3要寫 寫完大約一千多行
程式的架構大約如下
主程式(Cell 1): 有函數f1,f2,f3, 變數z,t 參數a,b,c, ...
要計算數值重積分,還要找根 算出來的東西會用到副程式
副程式(Cell 2_: 約有十二個小程式 每個小程式裡面都有一個迴圈(大小不一)
這邊最花時間.......
請問 有辦法利用平行運算減少運算時間嗎?
實在摸不著平行運算最基本的使用概念...唉....
到最後 好像parallelize不能使用在for迴圈裡面的樣子
舉個簡單的例子好了 這樣 板上的大大比較容易知道我的問題>_<
===============================================================
PB[z_, t_] = 3*t^2 - Exp[t*z];(*令一個函數PB*)
ans = Array[anss, {10, 2}];(*令答案矩陣ans*)
For[i = 0, i <= 10, i++;(*使用迴圈計算*)
ans[[i, 1]] = i;
ans[[i, 2]] = NIntegrate[NIntegrate[
PB[z, t] - Exp[z*t] , {z, -3, 3*i}], {t, 0, 10}
]
]
TimeUsed[]
ans
================================
上面的答案跑出來要花5.631秒 於是我在for前面加上parallelize看看
PB[z_, t_] = 3*t^2 - Exp[t*z];
ans = Array[anss, {10, 2}];
Parallelize[
For[i = 0, i <= 10, i++;
ans[[i, 1]] = i;
ans[[i, 2]] = NIntegrate[NIntegrate[
PB[z, t] - Exp[z*t], {z, -3, 3*i}], {t, 0, 10}
]
]
]
TimeUsed[]
ans
=====================================還是5.631秒>.<
不管怎麼加 都不行....加在NIntegrate前面....加在for裡面 都不行=___=
有ParallelEvaluate,ParallelDo, ParallelTable....但是怎麼沒有ParallelFor啦>.<~
雖然 可以用ParallelTable得到想要得結果
可是...... 嗚嗚 如果有迴圈的話怎麼辦....
因為有些資料需要使用雙迴圈
--
PTT台語能力認證考試:以下詞彙請用台語發音,答對10個以上才及格,基本上不可能全對
a.蝴蝶 b.雞肉 c.肌肉 d.聖誕節 e.情人節 f.星星 g.猩猩 h.海嘯 i.龍捲風
j.彩虹 k.兩兆元 l.浴室 m.洗面乳 n.廣告 o.廣島 p.河馬 q.企鵝 r.微積分
s.捐獻 t.播放 u.巨蛋 v.網路 w.日曆 x.窗簾 y.牛仔褲 z.襯衫 0.手套
1.打針 2.訂購 3.指甲剪 4.肉圓 5.湯圓 6.髮型設計 7.鉛筆 8.樣本 9.涼鞋
============================================================================
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.252.177
※ 編輯: harry901 來自: 220.134.252.177 (12/01 00:41)
推
12/01 00:50, , 1F
12/01 00:50, 1F
不會用到.... 都是獨立的....但是不知道怎麼跑都不能使用>.<
※ 編輯: harry901 來自: 220.134.252.177 (12/01 01:01)
※ 編輯: harry901 來自: 220.134.252.177 (12/01 01:03)
※ 編輯: harry901 來自: 220.134.252.177 (12/01 01:26)
※ 編輯: harry901 來自: 220.134.252.177 (12/01 03:13)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章