簡體   English   中英

運行具有多個輸入文件和進程數的MPI程序

[英]Running MPI program with multiple inputs files and number of processes

我想用3個命令行輸入來運行我的mpi程序。

mpirun -np 4 ./exe file_1 file_2 Size

對於每個文件file_1都有關聯的文件file_2並且每對文件的Size都相同。 我想用不同數量的進程(例如-np 2、4、6、8和10)執行我的程序。我有一百多個文件。 我想從命令行執行一次我的代碼,該命令以指定的進程數一一讀取這些文件。

對於串行代碼,我嘗試了以下命令,該命令通過將所有.txt文件一一讀取而起作用。

find . -name "*.txt" | awk -F"/" '{system ("./a.out " $2)}'

我不確定如何用不同數量的進程同時使用三個程序行輸入(file1,file2,size)執行。

據我了解您的問題,您可能使用例如:

find . -name "*.txt" -print0 | xargs -0 -n2 -J% -- mpirun -np4 ./exe % $SIZE

如果您的工作目錄包含例如文件a.txtb.txtc.txtd.txt ,這將啟動命令:

mpirun -np4 ./exe a.txt b.txt $SIZE
mpirun -np4 ./exe c.txt d.txt $SIZE

在這里, find首先在當前目錄中找到所有*.txt文件,將它們的名稱輸出為以空分隔的字符串,然后將此列表通過管道傳遞給xargs xargs-0選項指定應使用以空分隔符輸入, -n2表示應一次獲取兩個文件,並且-J%規定替換字符% ,即將在提供的命令中使用的字符替換為從輸入中獲取的文件名。 最后, --僅表示選項的結尾,后跟要執行的命令(包含替換字符)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM