[英]R parallel system call on files
我必須轉換大量RAW圖像,並且正在使用程序DCRAW來執行該操作。 由於此程序僅使用一個內核,因此我想在R中並行化它。要調用此函數,請使用:
system("dcraw.exe -4 -T image.NEF")
這導致在與NEF文件相同的文件夾中輸出名為image.tiff的文件,這完全可以。 現在,我嘗試了多個R程序包對此進行並行化處理,但是我只能得到毫無意義的回報(可能是由我造成的)。 我想通過list.files()獲得的r中的此系統調用運行一個大列表(1000多個文件)
我只能找到有關R中變量的並行編程信息,而不能找到系統調用信息。 有人有想法嗎? 謝謝!
使用變量還是system
沒有關系。 假設您不在Windows(不支持並行)上,則可以在任何體面的系統上運行
parallel::mclapply(Sys.glob("*.NEF"),
function(fn) system(paste("dcraw.exe -4 -T", shQuote(fn))),
mc.cores=8, mc.preschedule=F)
它將並行運行8個作業。 但是那樣的話您最好不要使用R,而應使用
ls *.NEF | parallel -u -j8 'dcraw.exe -4 -T {}'
相反(使用GNU並行)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.