2011-12-28 53 views
7

Tôi thực sự thích giao diện của Repa, thậm chí bất kể khả năng tương tranh của nó là gì. Và tôi thực sự cần mảng của repa để được tuần tự, vì mảng của tôi là những cái tương đối nhỏ và song song với chúng là vô ích, thậm chí có hại.Repa Không song song

Tuy nhiên tôi sử dụng song song trong chương trình của mình với song song-io, vì vậy tôi biên dịch nó -threaded và chạy với +RTS -Nx. Và điều này cho phép song song cho repa. Có cách nào để tắt các tính năng tương tranh của repa không?

Hm, trong khi viết điều này tôi hiểu rằng tôi không cần bất cứ điều gì khác sau đó DIM1, vì vậy có lẽ tôi nên chuyển sang Vector. Tuy nhiên, câu trả lời cho câu hỏi sẽ hữu ích.

Thông điệp cảnh báo tôi nhận được với chạy song song là

Data.Array.Repa: Performing nested parallel computation sequentially. 
    You've probably called the 'force' function while another instance was 
    already running. This can happen if the second version was suspended due 
    to lazy evaluation. Use 'deepSeqArray' to ensure that each array is fully 
    evaluated before you 'force' the next one. 

Tôi thực sự không có force trong mã của tôi.

+0

Đây là một câu hỏi thú vị, nhưng bạn có chắc chắn rằng việc cho phép repa song song có ảnh hưởng đến hiệu suất không? Bạn đã lược tả nó chưa? –

+0

@DanBurton ít nhất với N4 nó chạy ~ 3 lần dài hơn mà không có '+ RTS Nx'. Mặc dù nó có thể là do đầu ra của thông điệp cảnh báo. Tôi sẽ đưa thông điệp cảnh báo đến bài viết – Yrogirg

+0

Tôi sẽ vô cùng ngạc nhiên nếu repa song song hoạt động trên mảng quá nhỏ để hưởng lợi từ chúng. Tôi sẽ đặt cược rất nhiều vào thông báo cảnh báo đầu ra gây ra sự chậm lại. – ehird

Trả lời

3

Sử dụng phiên bản phát triển của Repa 3 từ http://code.ouroborus.net/repa/repa-head. Nó có một phiên bản "force" (được gọi là computeS) sẽ đánh giá tuần tự mảng đó.

Repa không tự động tuần tự hóa các thao tác trên các mảng nhỏ. Với (bản đồ f xs) thời gian chạy phụ thuộc nhiều vào những gì 'f' đang làm như kích thước của 'xs'. Repa không cố gắng tìm ra 'f' đang làm gì (điều đó sẽ khó), do đó, nó không biết tính toán tốn kém như thế nào.

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