2013-01-09 23 views
5

Tôi có ứng dụng đa tiến trình (không phải đa luồng!) Bằng mô-đun đa xử lý chạy trên hộp Linux. Ứng dụng này sử dụng numpy.linalg.solve chức năng, và nếu tôi cố gắng tạo ra nhiều quy trình, sau đó tôi nhận được lỗi:Lỗi luồng khi sử dụng Atlas theo dạng gọn gàng dưới Linux

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 

Lưu ý rằng trước khi tôi bắt đầu sử dụng các chức năng từ numpy.linalg, tôi đã không có bất kỳ vấn đề.

Bất kỳ ý tưởng nào về sự cố có thể là gì?

Chỉnh sửa: Tôi đã cố gắng sử dụng scipy.linalg.solve và sự cố là như nhau!

Chỉnh sửa: Bằng cách thay thế tập bản đồ bằng blas, sự cố sẽ biến mất. Vì vậy, nó thực sự có vẻ vấn đề là trong atlas

+0

Có vẻ như lỗi https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=766168 – Satish

+0

Các lỗi được như nhau, bối cảnh là khác nhau như tôi không có một chương trình đa luồng và tôi cũng không sử dụng Red Hat. – PierreBdR

Trả lời

2

Nó chỉ xảy ra rằng các nhà phát triển ATLAS thời gian gần đây đã trả lời câu hỏi đó ở đây: http://sourceforge.net/p/math-atlas/support-requests/873/

Lưu ý: Tôi giả sử bạn có ATLAS 3.10 cài đặt.

Điều này đã khiến tôi lo lắng một lúc. Và nếu bạn có cùng một vấn đề như tôi, sau đó nó rất có thể là:

  1. ATLAS được xây dựng trên máy tính khác so với cái bạn đang chạy này trên
  2. máy xây dựng này có lõi hơn máy tính của bạn
  3. ATLAS 3.10 không biết cách xử lý số lõi thấp hơn số lõi có lúc xây dựng và tạo ra một ngoại lệ.

Giải pháp là xây dựng ATLAS trên một máy có số lõi thấp hơn hoặc bằng với máy hiện tại của bạn.

Hope this helps,

+0

Thú vị. Tôi không biết đây có phải là vấn đề của tôi hay không. Nếu đây là trường hợp, không nên vấn đề xảy ra tất cả các thời gian? Hiện tại, nó chỉ xảy ra nếu tôi đang sử dụng tất cả các lõi bằng cách khởi chạy nhiều quy trình cùng một lúc. Ngoài ra, trong trường hợp này, có cách nào để ngăn chặn ATLAS sử dụng đa xử lý hoàn toàn không? – PierreBdR

+0

Tôi cũng nhận được lỗi chính xác giống như lỗi của bạn nếu thư viện sử dụng mối quan hệ. Chúng liên kết chương trình đã biên dịch của bạn với một máy/cpus cụ thể. Tôi đã có vấn đề tương tự với OpenBlas mà có vẻ là cố định (Tôi đang cố gắng để chuyển sang Openblas thực sự). Soạn thảo với libsatlas thay vì libtatlas nên tránh tập bản đồ từ đa luồng. – LeSchef

Các vấn đề liên quan