3 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
仔細(xì)考慮-內(nèi)聯(lián)有什么用?它為您創(chuàng)建一個(gè)C / C ++函數(shù),然后編譯并將其鏈接到可動(dòng)態(tài)加載的共享庫(kù)中。那人坐在哪里?在R的temp目錄中。
因此,通過將調(diào)用該共享庫(kù)的R前端運(yùn)送到另一個(gè)進(jìn)程(具有另一個(gè)temp目錄!!),您嘗試了正確的做法,但是沒有在其中獲取dll / so文件。
因此,建議是創(chuàng)建一個(gè)本地軟件包,安裝它,并讓snow過程加載并調(diào)用它。
(而且一如既往:rcpp-devel列表上可能會(huì)有更好的質(zhì)量答案,與SO相比,更多的Rcpp貢獻(xiàn)者可以閱讀該列表。)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
我通過在每個(gè)群集群集節(jié)點(diǎn)上采購(gòu)帶有所需C內(nèi)聯(lián)函數(shù)的R文件來解決該問題:
clusterEvalQ(cl,
{
library(inline)
invisible(source("your_C_func.R"))
})
并且您的文件your_C_func.R應(yīng)該包含C函數(shù)定義:
c_func <- cfunction(...)
- 3 回答
- 0 關(guān)注
- 813 瀏覽
添加回答
舉報(bào)