2010-07-30 28 views
10

Tôi đang học Scala với mục đích viết mô phỏng dựa trên tác nhân bằng cách sử dụng đồng thời diễn viên. Tôi hiện đang biết rất ít về OpenCL, và trước khi tôi nhảy vào bất cứ ai có thể cho tôi biết nếu nó có khả năng là thích hợp/tương thích với mô phỏng dựa trên đại lý?OpenCL có tốt cho mô phỏng dựa trên tác nhân không?

Nếu có, thì ScalaCL trông rất hấp dẫn.

+0

Tôi thấy rằng GPU có thể tăng tốc độ cực nhanh nhưng, như đã đề xuất, không cần thiết phải mã hóa chúng và không liên quan gì đến diễn viên. Hãy suy nghĩ tôi sẽ dính vào các diễn viên ở Scala và kiểm tra Akka. http://gpgpu.org/index.php?s=agent+based&searchbutton=Search – Pengin

Trả lời

4

Bạn nên sử dụng OpenCL nếu bạn có một số tính toán trọng lượng nặng có thể song song và bạn muốn sử dụng thẻ đồ họa để thực hiện (hoặc một phần của nó).
Nó có một mô hình tính toán lạ (ít nhất là nếu bạn chỉ biết lập trình "chung" chứ không phải cách GPU hoạt động hoặc nếu bạn có nền tảng vững chắc trong một số lĩnh vực toán học), và một số hạn chế/cách bạn có thể làm .

Vì vậy, tôi nghĩ rằng nó không chắc đó là những gì bạn đang tìm kiếm.

Các diễn viên có rất ít việc phải làm với OpenCL, tôi nghĩ tính phổ biến duy nhất của cả hai là cả hai đều giải quyết vấn đề tính toán song song, nhưng từ một góc nhìn rất khác. IMO mô hình diễn viên dễ hiểu hơn nhiều và có lẽ cũng sử dụng nó (nhưng nó chỉ là một đoán như tôi đã không thực sự có bất kỳ doanh nghiệp với OpenCL cho đến nay).

Nếu bạn muốn triển khai hệ thống dựa trên tác nhân thì diễn viên có thể khá hữu ích. Bạn có thể có một cái nhìn tại diễn viên scala tiêu chuẩn, hoặc triển khai thay thế:

  • Akka, cũng cung cấp nhiều chức năng bổ sung trên đầu trang của các diễn viên + tài liệu tốt đẹp với một số hướng dẫn
  • diễn viên trong scalaz
2

OpenCL nói chung chỉ tốt cho việc tăng tốc các chương trình liên quan đến việc thực hiện cùng một điều nhiều lần với các dữ liệu khác nhau. Nếu các đại lý của bạn tất cả sẽ làm điều tương tự cùng một lúc, sau đó có nó có thể là thích hợp và tương thích.

Nếu không, cả hai không phù hợp với nhau, và OpenCL có thể sẽ làm cho mọi thứ chạy chậm hơn là nhanh hơn.

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