相关疑难解决方法(0)

Python 多处理中线程增加导致性能下降

我有一台 24 个核心的机器,每个核心有 2 个线程。我正在尝试优化以下代码以实现并行执行。但是,我注意到代码的性能在达到一定数量的线程后开始下降。

import argparse
import glob
import h5py
import numpy as np
import pandas as pd
import xarray as xr
from tqdm import tqdm
import time
import datetime
from multiprocessing import Pool, cpu_count, Lock
import multiprocessing
import cProfile, pstats, io


def process_parcel_file(f, bands, mask):
    start_time = time.time()
    test = xr.open_dataset(f)
    print(f"Elapsed in process_parcel_file for reading dataset: {time.time() - start_time}")

    start_time = time.time()
    subset = test[bands + ['SCL']].copy()
    subset = subset.where(subset != 0, np.nan)
    if mask:
        subset = …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multithreading multiprocessing python-multiprocessing

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

同时读取多个文件是个好主意吗?

我们公司的一台服务器有32个CPU,我们有1000+个非常大的文件需要处理。我不确定同时读取 32 个文件是否是一个好主意,这样所有内核也可以同时执行独立计算。谁能简单解释一下硬盘的工作原理?如果同时读取32个文件,读取速度会不会变慢?谢谢!

hardware hard-drive hardware-acceleration

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

创建线程总是对性能有好处吗?

我最近开始尝试将线程与 一起使用std::thread,我想知道使用线程是否有任何缺点(特别是在 C++ 中)。是否存在添加更多线程会降低性能的情况?例如,如果我要创建多个新线程,每个线程都运行一个侦听传入数据的服务器对象,那么为这些服务器实例中的每一个创建一个新线程是否不好(性能方面)?为什么/为什么不?

c++ performance multithreading

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