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. DDD - ドメインアイソレーションに焦点を当てたデータベースの実装
- 5. json向けWebアプリケーションに焦点を当てたPython Webフレームワーク
- 6. ブートストラップのポップオーバーに焦点を当ててください
- 7. Jqueryが追加要素に焦点を当てています
- 8. カメラAF_TRIGGER_STARTはタッチに焦点を当てていません
- 9. Javascript window.openはWindows7に焦点を当てていません
- 10. ControlTemplate内のコントロールに焦点を当てる(パート2)
- 11. DIVに焦点を当てるページ全体のグレー化
- 12. $ .eachだけこの質問に焦点を当て
- 13. PHPのセッション変数に焦点を当てる
- 14. NSMenuのNSTextFieldに焦点を当てますか?
- 15. Firefoxの全幅にわたるリンクに焦点を当てる - css
- 16. Textareaはマウスクリックに焦点を当てませんか?
- 17. ブラウンフィールドアプリケーションのリファクタリングとアジャイルに焦点を当てた新しい仕事の開始
- 18. Google App Engineのトピックに焦点を当てたブログはありますか?
- 19. NIBからロードされたNSWindowに焦点を当てるには?
- 20. StageWebViewソースを設定した後、Spark TextInputに焦点を当てる方法
- 21. マルチスレッド検索操作
- 22. WPFに焦点を当てたブログやポッドキャストがいいですか?
- 23. 要素に焦点を当てて別の要素を変更する
- 24. webrowserの入力に焦点を当てています。オブジェクトウィンドウのフォームアプリケーション
- 25. 私のJava UIユニットテストがGNOMEデスクトップに焦点を当てている理由
- 26. 焦点距離のためにアンドロイド
- 27. 色を変更するとき焦点を当てている内に入力
- 28. IEはiframeの場所の変更に焦点を当てます
- 29. Ember 2の特定の入力要素に焦点を当てる方法
- 30. UITextFieldに焦点を合わせて
STMのおかげで、それについて知らなかった。期待しているようだ。 –
この回答は本当にFTWです。あなたはライブラリとツールのwikiへのリンクを貼り付けていたはずです... –
@ダニエル、更新、ありがとう。 –