2012-09-27 105 views
0

我有一個R腳本可以創建多個腳本並同時將它們提交到計算機集羣,並且在所有多個腳本完成並且輸出已寫入各自的文件夾,我想自動啓動另一個R腳本在這些輸出上工作。在R中的所有並行作業完成後提交一個新腳本

我還沒有弄清楚是否有一種方法可以在R中執行此操作:函數'wait'不是我想要的,因爲腳本作爲不同的作業提交,並且每個作業完成並寫入它輸出文件在不同的時間,但我真的想在所有輸出出現後運行後續腳本。

我想到的一種方法是對已創建的文件進行計數,如果輸出文件的數量正確,則提交下一個腳本。但是爲了做到這一點,我想我必須打開一個腳本來檢查文件是否存在,我不確定這是否是一個好主意,因爲它可能需要一天或更長時間才能完成第一個腳本。

你能幫我找到解決方案嗎?

非常感謝您的幫助 -fra

+0

你在什麼操作系統上?在Unix中,我知道還有其他調度任務可能更適合這種事情......? – Chase

+0

嗨追,是的OS是Linux,什麼樣的調度任務? – user1642995

+0

我會讓德克接管......他比我更善於處理這些事情,並且提到了我想到的大多數事情(和其他人)......祝你好運! – Chase

回答

1

我認爲你正在尋找這個錯誤的方式:

  • 不是的R問題都沒有,R恰好是客戶端您的批處理作業。

  • 這是隊列/批處理器可以在您的羣集上解決的問題。

  • 你可能只是等待

    最壞情況/在Shell(或R腳本)睡眠直到一個「最終條件達到」文件已被觸碰

  • 相互依存關係可以用做太多

表示
+0

嗨德克,謝謝。在集羣中似乎沒有這樣做的功能,也許正如你所說做wait/sleep腳本會很好,但是如何設置'達到最終條件'文件?是通過檢查所有輸出文件是否存在? – user1642995

+0

第一行腳本:'[test -f done.txt && rm done.txt'。最後一行:'touch done.txt'。然後另一個腳本''while [! -f done.txt];睡5次;完成「或某事。但是這個超級黑客。請與當地專家交談:如果有集羣,通常有解決方案可以更好地實現這一目標:slurm,torque,pbs,condor,... –

+0

哦,歡迎來到StackOverflow。它正在接受「upvote」(點擊三角形指向)和/或「接受」(點擊tickmark;只有你提問的人看到了這一點)纔會回答你認爲有幫助的問題。 –

相關問題