2014-10-03 185 views
-1

我目前使用一個名爲Cuba的包,我想在Matlab mex環境中使用它。問題是,我如何設置環境變量CUBACORES禁用自動並行化?使用Mex環境時設置環境變量

這不會MEX工作:

export CUBACORES=0 

所以,問題是,是否有可能在編譯時指定的環境變量或墨西哥運行時間?

回答

2

在MATLAB中,使用setenv函數設置環境變量。

setenv('CUBACORES', '0'); 

當然,您需要在庫讀取它之前執行此操作。

如果您正在編譯使用古巴庫的mex文件,那麼您可以從您的mex文件代碼設置環境變量。具體怎麼做取決於你的目標平臺。再次,環境變量必須在庫讀取之前設置。

+0

所以在運行時無法做到這一點,例如預處理器? – lorniper 2014-10-03 13:18:29

+0

預處理器是mex文件編譯的一部分。有問題的env變量是在運行時讀取的,在另一個進程中。如果您正在編譯古巴庫,那麼您可以修補它們的代碼以禁用線程。 – 2014-10-03 13:21:49