Scala dường như có rất nhiều tính năng và cải tiến so với Java. Tôi gặp khó khăn khi cô lập những thứ tôi muốn học đầu tiên về Scala. Tôi nên tìm kiếm điều gì trên Google nếu tôi chỉ muốn, ví dụ, thực hiện các vòng lặp và làm cho chúng chạy trên nhiều luồng hoặc quy trình? Tôi đến từ một nền tảng máy tính GPU, nơi thực sự đơn giản để có được cái nhìn cấp cao về cách làm cho mọi thứ chạy nhanh hơn.Cố gắng tìm hướng dẫn Scala tập trung đa luồng
Trả lời
Scala's Bộ sưu tập song song đặc biệt dễ dàng. Parallelizing một hoạt động tốn kém
f(i)
trên nguyêni <- 1 to 10
cũng đơn giản như,(1 to 10).par.map(i => f(i))
Scala sẽ cố gắng phân bổ một số chủ đề công việc mà có thể so sánh với số lượng các lõi/chế biến sẵn trong hệ thống của bạn. Dưới đây là video có thông tin chi tiết hơn: http://days2010.scala-lang.org/node/138/140
Akka framework là phương pháp tiếp cận chủ yếu dành cho người trưởng thành, đồng thời cho phép song song các chủ đề hoặc quy trình từ xa. Các diễn viên về cơ bản là các chủ đề có thể truyền thông điệp hơn là chia sẻ trạng thái. Công ty mới thành lập Typesafe đang phát triển cả ngôn ngữ Scala và Akka.
Bạn cũng có thể thử một draft release thư viện bộ nhớ giao dịch phần mềm (STM) cho Scala. Thư viện đang hướng đến việc đưa vào phân phối Scala tiêu chuẩn. So với các luồng được quản lý theo cách thủ công, STM là một mô hình đồng thời đơn giản hơn, làm giảm khả năng xảy ra lỗi như khóa chết. Nó hoạt động bằng cách nhóm các chuỗi các hoạt động truyền thông thành một khối được đồng bộ hóa duy nhất có thể thất bại và quay trở lại nếu nhiều luồng làm điều gì đó với trạng thái chia sẻ hóa ra là không tương thích lẫn nhau. Có lẽ có một số chi phí hiệu suất để trả tiền để thuận tiện; Tôi không chắc chắn STM cân đối như thế nào với số lượng lớn các luồng.
Spark framework địa chỉ tính toán cụm và dường như là sự khái quát hóa MapReduce.
Để lập trình GPU từ Scala, có ScalaCL. Bạn cũng có thể sử dụng Java bindings.
Ngoài ra còn có công việc ảo hóa ngôn ngữ rất thú vị đang được thực hiện như một nỗ lực chung giữa các phòng thí nghiệm tại Stanford và EPFL. This page có liên kết đến các giấy tờ và có một số course at Stanford với nhiều liên kết hơn. Có một số ứng dụng thú vị để phát triển DSL cho tính toán hiệu năng cao trên môi trường tính toán dị thường, bao gồm cả GPU.
Cập nhật. Daniel Sobral cũng đề nghị Tools and Libraries wiki.
- 1. Hướng dẫn đa luồng C++
- 2. Hướng dẫn gỡ lỗi đa luồng cho GDB và C
- 3. Cơ bản đa luồng trong C/C++ - gợi ý, lời khuyên, hướng dẫn, một số hướng?
- 4. QObject (QPlainTextEdit) & Sự cố đa luồng
- 5. Chơi hướng dẫn webservice tutorial scala
- 6. Working IntelliJ Scala Plugin Hướng dẫn?
- 7. Cách tìm các tập tin hướng dẫn RSVP netbeans
- 8. Truy cập đa luồng vào tập tin
- 9. cố gắng để hiểu được tháo dỡ hướng dẫn chính đầu tiên
- 10. Tìm kiếm một bài tập tốt để giúp tôi trở nên giỏi hơn trong Đa luồng
- 11. Đề xuất tập thể dục để giúp tìm hiểu đa luồng trong C#
- 12. Đang cố gắng hiểu đơn vị trạng thái vô hướng
- 13. Android cách tập trung tìm kiếm ActionBarView
- 14. nguồn học tập đa luồng java
- 15. x86 tối đa/phút asm hướng dẫn?
- 16. Nơi tìm hướng dẫn EJB3?
- 17. WiX - cố gắng tìm ra các chuỗi cài đặt
- 18. Bật hướng dẫn để giúp trung tâm trong Inkscape
- 19. Đọc tập tin txt với đa luồng trong python
- 20. cố gắng tìm kiếm đàn hồi để chạy
- 21. tabindex hoặc tập trung cho điều hướng bàn phím
- 22. ASP.net MVC 3 hướng dẫn hướng dẫn
- 23. C++ đồng bộ đa luồng
- 24. Đa luồng
- 25. Cố gắng lấy một số trong một mảng gấp hai lần số trung bình
- 26. Tìm ra điều khiển nào tập trung
- 27. Hướng dẫn tham khảo Scala thực tế, để tìm kiếm những thứ như tên phương thức
- 28. Tìm điểm trung tâm của đa giác trong JavaScript
- 29. Hiệu suất luồng Scala
- 30. hướng dẫn về lựa chọn JVM trong scala ngữ
Cảm ơn STM, không biết về điều đó. Trông đầy hứa hẹn. –
Câu trả lời này thực sự là FTW. Bạn _should_ đã dán một liên kết đến Libraries & Tools wiki, mặc dù ... –
@Daniel, được cập nhật, cảm ơn. –