Scalaには、Javaに比べて多くの機能と改善があるようです。私はScalaについて最初に学びたいものを分離するのに苦労しています。例えば、ループを行い、複数のスレッドやプロセスを実行させたい場合、Googleで何を探すべきですか?私はGPUコンピューティングのバックグラウンドから来ています。そこでは、物事をより速く走らせる方法についての高水準の見解を得ることは本当に簡単でした。マルチスレッドに焦点を当てたScalaチュートリアルの検索
答えて
Scalaの並列コレクションは特に簡単です。整数
i <- 1 to 10
を超える高価な操作f(i)
を並列化することは、同じくらい簡単です(1 to 10).par.map(i => f(i))
Scalaはあなたのシステムで利用可能なコア/プロセッサの数に匹敵する作業スレッドの数を割り当てようとします。 http://days2010.scala-lang.org/node/138/140
Akka frameworkは、スレッドまたはリモートプロセスを介した並列化を可能にする成熟した、主にアクターベースの並行性アプローチです。アクターは、基本的に、状態を共有するのではなくメッセージを渡すことができるスレッドです。新しく設立された会社Typesafeは、Scala言語とAkkaの両方を開発しています。
また、Scala用のソフトウェアトランザクションメモリ(STM)ライブラリのdraft releaseを試すこともできます。ライブラリは標準のScalaディストリビューションに含めることを目指しています。手動で管理されるスレッドと比較して、STMはデッドロックなどのエラーの可能性を減らす、より単純な同時実行モデルです。複数のスレッドが相互に互換性がないことが判明した共有状態で何らかの処理を行うと、一連の通信操作を単一の同期ブロックにグループ化して失敗し、ロールバックすることができます。おそらく、利便性のために支払うべきパフォーマンスコストがあります。私は、STMが多数のスレッドにどれくらいうまく伸びているのかよくわかりません。
Spark frameworkはクラスタコンピューティングに対応しており、MapReduceの一般化されたようです。
ScalaからのGPUプログラミングについては、ScalaCLがあります。 Java bindingsを使用することもできます。
スタンフォードとEPFLのラボ間の共同作業として、非常に興味深い言語仮想化作業が行われています。 This pageには論文へのリンクがあり、さらに多くのリンクを持つcourse at Stanfordがあります。 GPUを含む異種コンピューティング環境での高性能コンピューティングのためのDSLの開発には、いくつかのエキサイティングなアプリケーションがあります。
更新。 Daniel SobralもTools and Libraries wikiを提案しました。
- 1. Cのコントロールに焦点を当てる
- 2. 検出ブラウザタブがモバイルブラウザに焦点を当てている場合
- 3. テキストボックスに焦点を当てるには
- 4. ポップアップフォーム/要素に焦点を当てた背景のフェード
- 5. DDD - ドメインアイソレーションに焦点を当てたデータベースの実装
- 6. Chromeに焦点を当てたプログラムを維持する
- 7. json向けWebアプリケーションに焦点を当てたPython Webフレームワーク
- 8. 発信HTTP要求に焦点を当てた受諾テスト
- 9. ブートストラップのポップオーバーに焦点を当ててください
- 10. エスプレッソのページ要素に焦点を当てるには?
- 11. GWTのテキストボックスでの処理に焦点を当てる方法。
- 12. CKEditorはhtml型ダイアログに焦点を当てています
- 13. 開いているアプリケーションに焦点を当てますか?
- 14. カメラAF_TRIGGER_STARTはタッチに焦点を当てていません
- 15. inputはcomponentDidUpdateに焦点を当てていません
- 16. angle4ポップアップウィンドウに焦点を当てて投光器
- 17. Javascript window.openはWindows7に焦点を当てていません
- 18. Jqueryが追加要素に焦点を当てています
- 19. VoiceOverはバックボタンに焦点を当てていません
- 20. divとdimのバックグラウンドに焦点を当てる方法
- 21. DIVに焦点を当てるページ全体のグレー化
- 22. 複数のウィンドウに焦点を当てる方法
- 23. QLabelでの表示に焦点を当てる方法
- 24. $ .eachだけこの質問に焦点を当て
- 25. ControlTemplate内のコントロールに焦点を当てる(パート2)
- 26. Listview内のエントリに焦点を当てる方法は? Xamarin Forms
- 27. 最初の入力フィールドに焦点を当てる方法 - レデュークスフォーム
- 28. PHPのセッション変数に焦点を当てる
- 29. NSMenuのNSTextFieldに焦点を当てますか?
- 30. モーダル内の入力に焦点を当てると、スクロールダウンする
STMのおかげで、それについて知らなかった。期待しているようだ。 –
この回答は本当にFTWです。あなたはライブラリとツールのwikiへのリンクを貼り付けていたはずです... –
@ダニエル、更新、ありがとう。 –