1. ホーム
  2. python-3.x

[解決済み] OpenBLAS blas_thread_init: pthread_create: リソースが一時的に利用できない

2022-02-09 20:44:14

質問

現在、クラスタ内のどのプログラムも実行できないという問題に直面しています。エラーが出ます。

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

同じ問題に直面している人、または解決する方法を知っている人はいますか?ありがとうございます。

EDIT OK、管理者が実装しようとしていたいくつかの設定の制限のためにこれが起こったようだ。今は再び動作しています。

解決方法は?

今後、このエラーに遭遇する他の人のために説明します。 クラスタの設定により、インタラクティブなノードでユーザーが実行できるプロセス数が制限されている可能性が高いです。 手がかりはエラーの2行目にあります。

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

ここでは、64に制限されています。 通常のCLIでの使用には十分ですが、(OPのように)対話的にKerasのジョブを実行したり、私の場合は対話的にDaskクラスタを実行しようとすると、おそらく十分ではないでしょう。

シェルから、例えば次のような方法で制限を増やすことができるかもしれません。 ulimit -u 10000 しかし、それがうまくいくとは限りません。 OPのように管理者に通知するのがベストです。