相关疑难解决方法(0)

如何检查字符串是否包含Bash中的子字符串

我在Bash中有一个字符串:

string="My string"
Run Code Online (Sandbox Code Playgroud)

如何测试它是否包含另一个字符串?

if [ $string ?? 'foo' ]; then
  echo "It's there!"
fi
Run Code Online (Sandbox Code Playgroud)

??我的未知运营商在哪里?我是否使用echo grep

if echo "$string" | grep 'foo'; then
  echo "It's there!"
fi
Run Code Online (Sandbox Code Playgroud)

这看起来有点笨拙.

string bash substring

2332
推荐指数
23
解决办法
189万
查看次数

如何在bash中等待多个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?

如何在bash脚本中等待从该脚本生成的几个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?

简单的脚本:

#!/bin/bash
for i in `seq 0 9`; do
  doCalculations $i &
done
wait
Run Code Online (Sandbox Code Playgroud)

上面的脚本将等待所有10个生成的子进程,但它总是会给出退出状态0(请参阅参考资料help wait).如何修改此脚本,以便它发现生成的子进程的退出状态,并在任何子进程以代码!= 0结束时返回退出代码1?

有没有更好的解决方案,而不是收集子流程的PID,按顺序等待它们并总结退出状态?

bash process wait

518
推荐指数
18
解决办法
48万
查看次数

如何在Mac OS X上发现*logical*核心的数量?

从命令行中,您如何判断运行Mac OS X时机器上有多少个核心?在Linux上,我使用:

x=$(awk '/^processor/ {++n} END {print n+1}' /proc/cpuinfo)
Run Code Online (Sandbox Code Playgroud)

它并不完美,但它很接近.这是为了获取make,这就是为什么它给出比实际数字高1的结果.我知道上面的代码可以用Perl编写,也可以用grep,wc和cut编写,但我认为上面的内容在简洁性和可读性之间是一个很好的权衡.

非常晚编辑:只是为了澄清:我问有多少逻辑核可用,因为这与我想要make产生多少个同时工作相对应.jkp的答案,由Chris Lloyd进一步完善,正是我所需要的.因人而异.

macos makefile

368
推荐指数
11
解决办法
19万
查看次数

命令行中的处理器/核心数

我正在运行以下命令来获取Linux中的处理器/核心数量:

cat /proc/cpuinfo | grep processor | wc -l
Run Code Online (Sandbox Code Playgroud)

它有效,但看起来并不优雅.你会怎么建议改进它?

linux bash command-line

106
推荐指数
7
解决办法
10万
查看次数

每个亚马逊实例类型的适当数量的Gunicorn工作人员是多少?

我目前正在尝试确定每个Amazon实例类型的适当工作人数.我曾经经营过一名Gunicorn工人,但事实证明这很慢.

许多开发人员目前正在使用此公式来衡量适合的工人数量:

NUM_WORKERS=3  #recommended formula here is 1 + 2 * NUM_CORES
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,亚马逊对每个实例运行的核心数量并不十分清楚.例如,M1小实例有1个EC2计算单元(1个虚拟核心和1个EC2计算单元)

这基本上意味着什么?它有一个核心?或者它有两个核心?

worker-process worker amazon-ec2 amazon-web-services gunicorn

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

如何:make -jx //其中x是自动确定的

阅读完这个问题的答案后: 将"make"默认为"make -j 8"

我想知道是否有办法让-j选项自动使用正确数量的编译线程?

所以我说make.和make命令本身使用6个或4个或8个线程取决于硬件上?

bash alias makefile

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

如何找到使用 python 多处理运行的理想并行进程数?

尝试找出使用python multiprocessing运行的正确并行进程数。

下面的脚本在 8 核、32 GB (Ubuntu 18.04) 计算机上运行。(在测试以下内容时,仅运行系统进程和基本用户进程。)

经过测试multiprocessing.Poolapply_async具有以下内容:

from multiprocessing import current_process, Pool, cpu_count
from datetime import datetime
import time

num_processes = 1 # vary this

print(f"Starting at {datetime.now()}")
start = time.perf_counter()

print(f"# CPUs = {cpu_count()}") # 8
num_procs = 5 * cpu_count() # 40


def cpu_heavy_fn():
    s = time.perf_counter()
    print(f"{datetime.now()}: {current_process().name}")
    x = 1
    for i in range(1, int(1e7)):
        x = x * i
        x = x / i
    t_taken = …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multiprocessing python-3.x python-3.6

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

检测/确保在多核中使用多个内核

我使用并行和收集多核R包中的函数来并行化简单的矩阵乘法代码.答案是正确的,但并行版本似乎与串行版本相同.

我怀疑它只在一个核心上运行(而不是我机器上的8个核心!).有没有办法检测到这一点,并确保使用超过1个核心?

这是我的代码:

library("multicore")

A = read.table("matrixA.txt")
B = read.table("matrixB.txt")
A = as.matrix(A)
B = as.matrix(B)
rows = dim(A)[1]
columns = dim(B)[2] 

C <- mcparallel(A%*%B)
C <- collect(list(C))
C <- as.matrix(C[[1]])

write.table(C,"matrixC_mc.txt",row.names=FALSE, col.names=FALSE)
Run Code Online (Sandbox Code Playgroud)

multicore r

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

在C/C++中确定编译时的内核数

有没有办法确定目标机器在GCC下的C/C++编译时有多少物理内核?

我知道其他方法,比如td::thread::hardware_concurrency()在C++ 11中,sysconf(_SC_NPROCESSORS_ONLN)但我很想知道在编译时是否真的有办法获取这些信息.

c c++ gcc compile-time

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