OpenBLAS blas_thread_init: pthread_create: 资源暂时不可用

新手上路,请多包涵

我现在面临一个问题,无法在集群中运行任何程序。它给出了错误。

 OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
OpenBLAS blas_thread_init: RLIMIT_NPROC 64 current, 64 max
OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
OpenBLAS blas_thread_init: RLIMIT_NPROC 64 current, 64 max
OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
OpenBLAS blas_thread_init: RLIMIT_NPROC 64 current, 64 max
OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
OpenBLAS blas_thread_init: RLIMIT_NPROC 64 current, 64 max
Traceback (most recent call last):
  File "hello-world.py", line 1, in <module>
    from keras.models import Sequential
  File "/home/amalli2s/anaconda3/lib/python3.6/site-packages/keras/__init__.py", line 3, in <module>
    from . import utils
  File "/home/amalli2s/anaconda3/lib/python3.6/site-packages/keras/utils/__init__.py", line 2, in <module>
    from . import np_utils
  File "/home/amalli2s/anaconda3/lib/python3.6/site-packages/keras/utils/np_utils.py", line 6, in <module>
    import numpy as np
  File "/home/amalli2s/.local/lib/python3.6/site-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/home/amalli2s/.local/lib/python3.6/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/home/amalli2s/.local/lib/python3.6/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/home/amalli2s/.local/lib/python3.6/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/home/amalli2s/.local/lib/python3.6/site-packages/numpy/core/__init__.py", line 16, in <module>
    from . import multiarray
SystemError: initialization of multiarray raised unreported exception

这个问题,我假设和这个一样 Python 的多个实例同时运行限制为 35

所以根据我设置时的解决方案 export OPENBLAS_NUM_THREADS=1

然后我最终得到以下错误:

 terminate called after throwing an instance of 'std::system_error'
  what():  Resource temporarily unavailable
Aborted

有没有其他人面临同样的问题或知道如何解决这个问题?谢谢你。

编辑:好的,这似乎是由于管理员试图实施的一些配置限制而发生的。现在又可以用了。

原文由 Haramoz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.8k
2 个回答

这是为将来遇到此错误的其他人准备的。集群设置很可能会限制用户可以在交互式节点上运行的进程数。线索在错误的第二行:

 OpenBLAS blas_thread_init: pthread_create: Resource temporarily unavailable
OpenBLAS blas_thread_init: RLIMIT_NPROC 64 current, 64 max

这里的限制设置为 64。虽然这对于正常的 CLI 使用来说已经足够了,但对于交互式运行 Keras 作业(如 OP)来说可能还不够;或者就我而言,尝试运行交互式 Dask 集群。

可以使用 ulimit -u 10000 来增加 shell 的限制,但这不能保证有效。最好通知像 OP 这样的管理员。

原文由 suvayu 发布,翻译遵循 CC BY-SA 4.0 许可协议

我在 ubuntu 服务器上运行 numpy 时遇到了这个问题。我遇到了以下所有错误,具体取决于我是尝试在 shell 中导入 numpy 还是运行我的 django 应用程序:

  • PyCapsule_Import 无法从中导入模块“datetime”
  • numpy.core._multiarray_umath 导入(OpenBLAS blas_thread_init:
  • 32 个线程中的第 25 个线程的 pthread_create 失败:资源暂时不可用

我发布了这个答案,因为它让我发疯。对我有帮助的是添加:

 import os
os.environ['OPENBLAS_NUM_THREADS'] = '1'

import numpy as np

我猜服务器对其允许的线程数量有一些限制(?)。希望它能帮助别人!

原文由 Ylor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进