gpt4 book ai didi

c - 如何在 shell 脚本中使用多核(i7 机器)运行 c 程序

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:30 25 4
gpt4 key购买 nike

我有一个 C 程序 fextract,它将 wav 文件作为输入并以某种 fcc 格式提供输出。语法如下所示“fextract file.wav file.fcc”。现在我有 75000 个 wav 文件需要转换成 fcc 格式。为了加快我计划使用 i7 机器的所有内核的过程。首先,我将所有输入和输出路径保存在一个文件中,我称之为 scp 文件例如:/mnt/disk1/file1.wav/mnt/disk2/file1.fcc /mnt/disk1/file2.wav/mnt/disk2/file2.fcc等等

现在使用以下 shell 脚本我将 scp 文件分成 8 个文件并存储在一个临时目录中

mkdir $tmpDir
cd $tmpDir

nCores=`cat /proc/cpuinfo | grep processor | wc -l`
nLines=`cat $scpFile|wc -l`

split -l $((nLines/nCores + 1)) $scpFile

现在我的临时文件有八个子文件。我如何评估它们以使用多核运行程序 fextract

for i in `ls`
do

fextract &i

done

需要这样的东西。请帮我解决这个紧急问题

最佳答案

使用 GNU 并行:

parallel -j $nCores fextract -- `ls`

或者您可以将 xargs 与 -P 键一起使用(与 find 一起使用)。

这些命令将在多个线程中启动您的代码,这将允许它们在多个内核上执行。

关于c - 如何在 shell 脚本中使用多核(i7 机器)运行 c 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12751516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com