小编Oli*_*ier的帖子

使用xargs并行运行程序

我目前有当前的脚本.

#!/bin/bash
# script.sh

for i in {0..99}; do
   script-to-run.sh input/ output/ $i
done
Run Code Online (Sandbox Code Playgroud)

我希望使用xargs并行运行它.我试过了

script.sh | xargs -P8
Run Code Online (Sandbox Code Playgroud)

但这样做只在当时执行一次.也没有运气-n8.添加&在脚本for循环中执行的行的末尾将尝试一次运行脚本99次.如何在当时仅执行8次循环,最多100次.

parallel-processing bash xargs

70
推荐指数
4
解决办法
6万
查看次数

/lib/libc.so.6:找不到版本"GLIBC_2.17"

我正在尝试编译一个程序来放置BeagleBone黑色,但是当我在我的主板上运行程序时我得到了这个错误:

/lib/libc.so.6: version `GLIBC_2.17' not found 
Run Code Online (Sandbox Code Playgroud)

我确保我为ARM编译(arm-linux-gnueabi-gcc).

在我的桌面上,我有EGLIBC 2.17-9.我做错了什么?

c embedded beagleboneblack

11
推荐指数
2
解决办法
3万
查看次数

Makefile通配符依赖项

我想使用通配符将所有.cpp和.cc文件包含在目标的依赖项中.

目前,我必须做以下事情:

all: main.cpp file1.cc file2.cc
    g++ -O3 -o all main.cpp file1.cc file2.cc -I./include -L./lib
Run Code Online (Sandbox Code Playgroud)

以下似乎不起作用:

all: %.cpp %.cc
    g++ -O3 -o $@ $^ -I./include -L./lib
Run Code Online (Sandbox Code Playgroud)

我得到错误make:***没有规则来制作目标'%.cc','all'需要.停止.

c++ makefile

6
推荐指数
1
解决办法
5254
查看次数

在一系列值之间生成随机双精度

我目前无法在-32.768和32.768之间生成随机数.它不断给我相同的值,但十进制字段的变化很小.例如:27.xxx.

继承我的代码,任何帮助将不胜感激.

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    srand( time(NULL) );
    double r = (68.556*rand()/RAND_MAX - 32.768);
    cout << r << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ random algorithm genetic prng

4
推荐指数
1
解决办法
1万
查看次数

如何使用ffmpeg从文件夹中的所有视频中提取帧

我目前可以使用以下行从文件中提取图像

ffmpeg -i inputfile.avi -r 1 image-%d.jpeg
Run Code Online (Sandbox Code Playgroud)

但是,我想将此应用于文件夹中的所有文件,并将其放在输出文件夹中。

假设我有保存所有视频的当前文件夹:

输入视频/

----子文件夹1/

------视频.avi

----子文件夹2/

------视频.avi

我想要输出文件夹中的所有内容:

输出/

----子文件夹1/

- - - 视频/

----------*.jpeg

----子文件夹2/

- - - 视频/

----------*.jpeg

使用 bash 脚本最简单的方法是什么?(或其他更好的东西)

video ffmpeg image extract

2
推荐指数
1
解决办法
4835
查看次数

使用Python子进程处理带括号的文件路径

我要处理的文件的路径中包含括号。

path = "/dir/file (with parentheses).txt"
Run Code Online (Sandbox Code Playgroud)

我正在尝试用 Python 处理它们,如下所示:

subprocess.call("./process %s" % path, shell=True)
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误

/bin/sh: 1: Syntax error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)

如何传递正确的字符串来处理正确的路径?

python linux bash subprocess

2
推荐指数
1
解决办法
2574
查看次数

大图像集上图像处理程序的并行化

我目前有一个非常大的目录,包含超过9000个文件夹,每个文件夹中包含jpeg图像(平均每个文件夹40个).

我的程序获取图像的输入文件夹,并将该文件夹中图像的特征向量输出到文本文件:

./process_image images/ output/
Run Code Online (Sandbox Code Playgroud)

我还有一个脚本,其用法如下:

./script.sh dirlist.txt images/ output/ 1
Run Code Online (Sandbox Code Playgroud)

第一个输入dirlist.txt包含输入目录中的文件夹名称.第二个和第三个输入是输入和输出的基本目录.第四个参数是我想要访问的dirlist中的条目的索引

假设imageset1在dirlist.txt中的索引1处,上面的示例将调用:

./process_image images/imageset1/ output/imageset1/
Run Code Online (Sandbox Code Playgroud)

如果我按顺序执行此操作,则需要几天的时间来处理所有9000个文件夹.在这种情况下,最好的并行化方法是什么?我应该编写一个脚本,将9000个文件夹分成块并分别运行脚本,每个脚本运行一定范围的索引吗?另外,如果一个可执行文件在RAM中的范围从100 MB到1 GB,我该如何确定我可以运行多少个程序?我有32 GB的RAM.

parallel-processing bash image-processing scientific-computing

1
推荐指数
1
解决办法
203
查看次数