今天的CPU通常包含幾個物理內核。它們甚至可能是多線程的,這樣Linux內核就會看到相當多的內核,並相應地啓動幾次Linux調度器(每個內核一個)。在Linux系統上運行多個任務時,調度程序通常可以將總工作負載分配到所有Linux內核(可能是相同的物理內核)。如何通過每個Linux內核啓動一個任務(平行)與Linux shell並行化?
現在,比方說,我有大量文件要使用相同的可執行文件進行處理。我通常做這個用「find」命令:
find <path> <option> <exec>
然而,這在任何時候開始只有一個任務,並等待,直到開始下一個任務之前,它的完成。因此,任何時候只有一個核心正在使用。這會使大多數內核空閒(如果此查找命令是在系統上運行的唯一任務)。同時啓動N個任務會更好。其中N是Linux內核看到的內核數量。
有沒有可以做到的命令?
查看GNU並行工具。我不知道它如何適合你的特定問題,但有一個閱讀:http://www.gnu.org/software/parallel/ –
是的,你是對的。 GNU並行的確用於這種用法。它可以用作「xargs」的替代品。 – ritter
@Daniel:好像你應該把它作爲答案。 –