gpt4 book ai didi

linux - 如何在 Linux 中使用多 CPU 来加快计算速度

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:53 24 4
gpt4 key购买 nike

我想知道如何在 Linux 中加快我的计算速度?例如,我有以下脚本:example.sh

#!/bin/bash
n1=1; n2=1000
while [ $n1 -le $n2 ]
do
cat << EOF > test.f
open (1,file='$n1.txt',form='formatted', status='unknown')
write (1, *) "Hello World!"
stop;end
EOF
gfortran test.f
./a.out
(( n1++ ))
done

如果我执行上面的example.sh,那么它会执行1000次。我原来的 fortran 程序有点大,执行一次需要大约 3 分钟。所以完成我的脚本需要大约 2 天的时间。那么如何使用多 CPU 来加快速度呢?我的系统显示 CPU:8。

最佳答案

GNU Parallel做得很好。

GNU Parallel 可用于使用一台或多台计算机并行执行作业。这消除了管理进程的需要,并为我们提供了一种并行执行二进制文件的方法。

因此,您的脚本(让我们称之为 test.sh)变为

#!/bin/bash
n1=$1
cat << EOF > test.f
open (1,file='$n1.txt',form='formatted', status='unknown')
write (1, *) "Hello World!"
stop;end
EOF
gfortran test.f
./a.out

您现在可以使用“parallel”调用脚本 test.sh,如下所示。

seq 1000 | parallel -j 8 --workdir $PWD ./test.sh {}

-j 8 指定要运行的作业数。这将启动 ./test.sh 1, ./test.sh 2, ./test.sh 3 ... ./test.sh 1000 并确保其中 8 个并行运行。

关于linux - 如何在 Linux 中使用多 CPU 来加快计算速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31691047/

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