【问题标题】:Python parallel processing sudden shutdownPython并行处理突然关机
【发布时间】:2022-01-15 14:46:27
【问题描述】:

在 python 中运行一些并行化代码时,我的双启动(Windows 11 / Ubuntu 20.04.3 LTS)笔记本电脑突然多次关闭。之后,在 Windows 中运行时,我的笔记本电脑也随机关闭,一旦启动 Ubuntu,屏幕开始出现很多故障。我一直在 Ubuntu 上运行代码。我的笔记本电脑有 12 个内核。

以下设置是我运行并行处理的方式 - 就像我在网上学到的那样:

with concurrent.futures.ProcessPoolExecutor() as executor:
    result = list(tqdm(executor.map(CONN.connection, input)))

其中CONN.connection 是另一个文件中的函数,input 是输入参数列表(一对夫妇 1000 个条目长)。

我尝试将并行处理分解为仅运行 1000 个条目,然后使用 pickle 转储所有数据,然后在我的输入列表中运行接下来的 1000 个条目,但在执行了几个 1000 个函数调用/进程后它仍然关闭.

我的问题是: 看到我的笔记本电脑多次突然关机,我的系统和硬件在所有 12 个内核上运行程序是否安全,或者我应该将其限制在此以下?

如果您需要任何其他信息,我很乐意提供。

【问题讨论】:

  • “CONN.connection”到底在做什么?
  • 它正在整合两个初始值问题并返回它们两端的值(寻找连接)。更具体地说,来自地球 L2 点(詹姆斯韦伯太空望远镜目前正在前往的地方)和小行星 L1 点的航天器轨迹。使用该函数进行一次计算大约需要一秒钟。
  • 它只使用 GPU 还是 CPU?它使用特殊库吗?它是否运行外部命令?
  • 我正在回复您的问题,然后我的电脑突然又关机了。这次我没有做任何计算——尽管我在 5 分钟前打开了 VSCode。那么也许它与并行编程强度无关?回答您的问题:该函数在 CPU 上运行,(还没有想到在 GPU 上执行它,我是并行处理的新手)。它仅使用 scipy 进行集成,astropy 用于在 JD 之间转换时间,使用 json 读取带有小行星数据的 json 数据文件(文件非常大)——尽管它不存储整个文件,只存储相应的几个条目。
  • 我正在阅读的 json 文件是 17MB,仅供参考。我读过多线程更适合基于 i/o 的操作,但由于大多数功能是基于数字运算的,我认为多处理最适合这个问题。

标签: python windows ubuntu parallel-processing


【解决方案1】:

我设法弄清楚是什么导致了随机关机。在我的双启动系统的 Windows 端,HP Sure Run 正在运行(它说这是“硬件强制执行”)。我认为这意味着当我运行 Ubuntu 并做一些 HP Sure Run 不喜欢的事情时,它会设法干扰并关闭系统。所以我把它关掉了,现在它没有发生过。很高兴这不是由于处理器过载或其他原因(尽管我现在运行的是 9 个内核而不是 12 个,只是为了确定)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多