![](/img/trans.png)
[英]How to save computational time by using built-in functions and avoid looping over for loops for large numpy arrays in python?
[英]How to use python modules in parfor matlab loops and optimize computational time?
我目前正在與一個項目一起工作,在這里我使用包裝在matlab代碼內的模塊中的python函數。 代碼的matlab部分是MCMC(蒙特卡洛多鏈)計算,因此為了加快代碼的運行速度,我在群集上使用了parfor循環。
更具體地說,該算法可以認為如下:
我的問題是,讓matlab使用python定義的函數的唯一方法是每個parfor迭代重新加載python模塊,但是隨着代碼的工作,這也意味着每個鏈步(parfor嵌套在內部)和我在那里度過了一段時間。
我的問題是:在matlab中使用python庫是否有更快捷的方法? (相當於MEX-?-),否則,是否有一種方法可以在開始時在每個工作程序中“存儲” python模塊信息,而無需每次我在外循環中前進時都重新加載模塊?
任何提示將非常感謝! 非常感謝
朱利亞
我相信您正在尋找pctRunOnAll 。 從Matlab文檔中:
如果需要在所有工作人員和客戶端上執行設置更改,這將很有用。
您應該能夠使用
您可能可以在此處利用parallel.pool.Constant
。 這使您可以設置一些“常量”數據,以供parfor
循環的多次迭代,甚至多個parfor
循環使用。 鏈接的參考頁顯示了如何使用函數句柄構建parallel.pool.Constant
您可能希望將其作為加載模塊的函數句柄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.