タグ

how toとshelarcyに関するUSAGI-WRPのブックマーク (2)

  • 第12回 Haskellで学ぶ並列プログラミング(その3)並行プログラミングと並列処理

    これまで説明してきたGHCの並列化機能は,いずれもスレッドやプロセスのような並行実行の仕組みを抽象化の内側に隠ぺいしたものでした。しかし,このようにユーザーの目から詳細を隠してくれる特徴が,かえってわずらわしく思えることもあります。 GHCの並列化機能は,「ある一つの計算の処理速度を向上させる」という目的を直接的に反映したものです。このため,処理速度の向上以外の部分には,十分に手が届かないこともあります。例えば,グラフィカル・ユーザー・インタフェース(GUI)などを実現するための対話的なプログラムでは,「ある一つの計算の速度を向上させる」だけでは,プログラム全体の反応速度を思うように上げられません。プログラムをうまく制御して全体での速度向上を目指すことが重要だからです。しかし,これまで説明してきた並列化機能には,こうした制御を実現するのに必要なセマンティックス(意味論)は特に規定されていま

    第12回 Haskellで学ぶ並列プログラミング(その3)並行プログラミングと並列処理
  • 第53回 repaを使って行列演算を並列化する

    これまで並行処理のためのデータ型として,第12回ではTVar型やMVar型,第14回ではChan型やTChan型などを取り上げてきました。一方,並列処理のためのデータ型はあまり説明してきませんでした。取り上げたのは,第10回や第24回のコラムで説明したデータ並列Haskellの並列配列くらいです。 たしかに,並列HaskellやParモナドを利用すれば,並列処理のための特別なデータ型を使わなくても並列処理は可能です。しかし,目的とする処理の並列化に特化したデータ型が用意されているのであれば,それを利用したほうが簡単かつ効率的に処理を行えます。 そこで今回は,並列処理用のデータ型の一つとして提供されている「repa(REgular PArallel arrays)」の並列配列の基を説明します。repaはデータ並列Haskellプロジェクトの一環として開発が進められているライブラリです。デー

    第53回 repaを使って行列演算を並列化する
  • 1