1樓:匿名使用者
matlab並行運算
目前,新購置的電腦大部分都是多核的了,使用matlab進行大量計算時如何有效利用多核呢?matlab目前版本已經比較好的支援多核並行運算了。是用的matlab版本是r2007b。
電腦是雙核的。
先簡單試試:
>> matlabpool local 2
submitted parallel job to the scheduler, waiting for it to start.
connected to a matlabpool session with 2 labs.
顯示正在進行多核配置,然後,提示連線到2個“實驗室”(labs)。我這也理解的:本地虛擬出2臺可以執行matlab的工作站,這樣用分散式計算工具箱可以進行平行計算(matlabpool這個命令好像是在平行計算工具箱裡的)。
>> testparallel
elapsed time is 7.750534 seconds.
這裡執行testparallel函式,已經開闢了2個labs,為了進行多核並行運算,testparallel中,要用parfor代替原來的for迴圈。
在執行這個時,觀察windows工作管理員,可以發現一共有3個matlab.exe程序。其中一個佔記憶體較多的,應該是主控的,他基本不幹活,只負責分配,進行計算時他的cpu佔用率只有1~2%,剩下兩個程序專門用來計算的,跑起來各佔cpu 49%左右。
看上去還是每個matlab程序單核運算,但是一下開2個程序,所以能把cpu用滿。當執行完testparallel後,三個程序的cpu都立刻降為1%左右了。
>> matlabpool close
sending a stop signal to all the labs...
waiting for parallel job to finish...
performing parallel job cleanup...
done.
當要關閉開闢的2個labs時,使用matlabpool close關閉即可。
**及使用時間對比如下表:
function testparallel
%非並行
% matlabpool local 2
tictotal=10^5;
for (i=1:total)
ss(i)=insum;
endplot(ss);
toc% matlabpool close
function [s]=insum
x=abs(round(normrnd(50,40,1,1000)));
s=sum(x);
function testparallel
%並行matlabpool local 2
tictotal=10^5;
parfor (i=1:total)
ss(i)=insum;
endplot(ss);
tocmatlabpool close
function [s]=insum
x=abs(round(normrnd(50,40,1,1000)));
s=sum(x);
elapsed time is 70.471469 seconds.elapsed time is 7.750534 seconds.
70.471469/7.750534 = 9.0925,並行與否的時間比竟然是9倍,足以表明,在matlab中使用多核並行運算給我們帶來很多好處。
如何利用flash中的as實現畫筆功能
as2.0這我們提供了一些繪圖方法,利用這些方法,我們可以繪製一些圖形。下面來認識一下這些方法。首先是畫直線,要畫線應先確定線的型別等,as提供的是 linestyle 方法 該方法確定線條的型別。常用格式 mc.linestyle 粗細,顏色,透明度 該方法還有其它一些引數,本文就不介紹了。比如 ...
如何利用課堂績效表實現課堂激勵
利用課堂績效表實現課堂激勵首先,老師應該充分的備好課,在備好課的基礎上鼓勵學生積極動腦給予獎勵,這樣課堂的氣氛就提高起來了,學生的效率就提公升了。課堂績效表任務是激發學生的學習動力,充分調動學生的積 極性,但是它還不僅僅是在學生的積極性上而是實現乙個更 深層次的教育目標。最有效的激勵方式就是和金錢掛...
如何利用ERP軟體實現訂單成本核算
正航erp軟體 訂單成本核算,上圖。清晰明了了。成本算清楚,利潤也可以根據訂單一筆筆算清楚。往下繼續分解,找出成本差異點,為成本優化提供資料依據。利用erp怎麼計算成本核算 你好,我們用的是臺台階erp 1.因為各個行業成本計算的方法和側重點都不同,可以說是千差萬別。所以本文以機械製造業為例 成本計...