5

Linux ボックスで実行されているマルチプロセス モジュールを使用するマルチプロセス (マルチスレッドではない!) アプリケーションがあります。このアプリケーションはnumpy.linalg.solve関数を使用しており、多くのプロセスを作成しようとすると、次のエラーが発生します。

assertion !pthread_create( &(ROOT->pid), ATTR, ROOT->fun, ROOT ) failed, line 84 of file /build/buildd-atlas_3.8.4-9-amd64-jk6dgk/atlas-3.8.4/build/atlas-base/../..//src/pthreads/misc/ATL_thread_tree.c

の関数を使い始める前はnumpy.linalg、何の問題もなかったことに注意してください。

何が問題なのかわかりますか?

編集:使用しようとしましscipy.linalg.solveたが、問題は同じです!

編集: atlas を blas に置き換えると、問題はなくなります。問題はアトラス内にあるようです

4

1 に答える 1

3

最近、ATLAS 開発者がその質問に答えたのはたまたまです: http://sourceforge.net/p/math-atlas/support-requests/873/

注: ATLAS 3.10 がインストールされていることを前提としています。

これもしばらくの間私を悩ませてきました。そして、あなたが私と同じ問題を抱えている場合、次の可能性が非常に高くなります。

  1. ATLAS は、これを実行しているマシンとは別のマシンで構築されました
  2. このビルド マシンには、お使いのマシンよりも多くのコアがあります
  3. ATLAS 3.10 は、ビルド時のコア数よりも少ない数のコアを処理して例外を生成する方法を認識していません。

解決策は、現在のマシン以下のコア数を持つマシンで ATLAS を構築することです。

お役に立てれば、

于 2013-01-30T06:05:42.680 に答える