Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Makoto Kishimoto
494 views
CHP survey
CHP survey
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 19
2
/ 19
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
15
/ 19
16
/ 19
17
/ 19
18
/ 19
19
/ 19
More Related Content
PDF
awk v.s. bashどっちが強い?@OSC2011Tokyo
by
Ryuichi Ueda
PDF
Goをカンストさせる話
by
Moriyoshi Koizumi
PDF
Python で munin plugin を書いてみる
by
ftnk
PDF
Nginx lua
by
Moriyoshi Koizumi
PDF
8F Emacs seminar 1st
by
toshi_pp
PDF
Siphone coffeemaker okayama-js-1
by
NISHIMOTO Keisuke
PDF
Subprocess no susume
by
Makoto Kishimoto
PDF
New Generation Build System "Fly"
by
deepblue will
awk v.s. bashどっちが強い?@OSC2011Tokyo
by
Ryuichi Ueda
Goをカンストさせる話
by
Moriyoshi Koizumi
Python で munin plugin を書いてみる
by
ftnk
Nginx lua
by
Moriyoshi Koizumi
8F Emacs seminar 1st
by
toshi_pp
Siphone coffeemaker okayama-js-1
by
NISHIMOTO Keisuke
Subprocess no susume
by
Makoto Kishimoto
New Generation Build System "Fly"
by
deepblue will
What's hot
PPTX
どこでも動くゲームを作るためのベタープラクティス
by
5mingame2
PPTX
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
by
basicinc_dev
PDF
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
by
de:code 2017
PDF
Spectacular Future with clojure.spec
by
Kent Ohashi
PPT
サーバー実装いろいろ
by
kjwtnb
PDF
Slub alloc and free
by
Masami Ichikawa
PDF
node.jsによる お手軽画像uploader実装
by
Yohei Fushii
PDF
GNU awk (gawk) を用いた Apache ログ解析方法
by
博文 斉藤
PDF
Haskell超初心者勉強会11
by
Takashi Kawachi
PDF
静岡のHaskellerはEmacsを使う
by
Kazufumi Ohkawa
PDF
asm.js x emscripten: The foundation of the next level Web games
by
Noritada Shimizu
PDF
メタメタプログラミングRuby
by
emasaka
KEY
Ll xcode
by
Net Kanayan
PDF
Erlangやってみた
by
ina job
PDF
Streaming data processing ライブラリの紹介 (主に Conduit)
by
krdlab
PDF
Go と Couchbase で microservices を作るには?
by
Yusuke Komatsu
PDF
Testman
by
makoto tsuyuki
PDF
『こなへん』ができるまで ☆リリース直前編☆
by
5mingame2
PPTX
前期講座09
by
Takenori Nakagawa
PDF
Webサーバ勉強会_#1_108-114:ログとか
by
Dai Utsui
どこでも動くゲームを作るためのベタープラクティス
by
5mingame2
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
by
basicinc_dev
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
by
de:code 2017
Spectacular Future with clojure.spec
by
Kent Ohashi
サーバー実装いろいろ
by
kjwtnb
Slub alloc and free
by
Masami Ichikawa
node.jsによる お手軽画像uploader実装
by
Yohei Fushii
GNU awk (gawk) を用いた Apache ログ解析方法
by
博文 斉藤
Haskell超初心者勉強会11
by
Takashi Kawachi
静岡のHaskellerはEmacsを使う
by
Kazufumi Ohkawa
asm.js x emscripten: The foundation of the next level Web games
by
Noritada Shimizu
メタメタプログラミングRuby
by
emasaka
Ll xcode
by
Net Kanayan
Erlangやってみた
by
ina job
Streaming data processing ライブラリの紹介 (主に Conduit)
by
krdlab
Go と Couchbase で microservices を作るには?
by
Yusuke Komatsu
Testman
by
makoto tsuyuki
『こなへん』ができるまで ☆リリース直前編☆
by
5mingame2
前期講座09
by
Takenori Nakagawa
Webサーバ勉強会_#1_108-114:ログとか
by
Dai Utsui
Similar to CHP survey
PDF
Clojure
by
yshigeru
PDF
PEZY-SC programming overview
by
Ryo Sakamoto
PDF
One - Common Lispでもワンライナーしたい
by
t-sin
PDF
HaskellではじめるCortex-M3組込みプログラミング
by
Kiwamu Okabe
PDF
Dive into RTS - another side
by
Kiwamu Okabe
PDF
SystemC Tutorial
by
kocha2012
PPTX
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
by
HPCシステムズ株式会社
PDF
Groovyで学ぶプロセス代数 #jjug
by
kyon mm
PDF
マスターオブゴールーチンアンドチャネル スタートGo #1
by
Takuya Ueda
PDF
オレオレPHPのつくり方
by
Ryusuke Sekiyama
PDF
入門 シェル実装
by
Yusuke Sangenya
PDF
GHC 6.12.1 マルチコア対応ランタイムシステムについて
by
Mitsutoshi Aoe
PDF
20151121
by
Makoto Kishimoto
PDF
組込向けHaskellコンパイラAjhc / mbedマイコンどうでしょう編
by
Kiwamu Okabe
ODP
みんな大好き! Hello, World
by
Naohiro Aota
PDF
C-langage
by
Hiramatsu Ryosuke
PDF
Non-blocking “Scalable” Network Programming with “aleph (by Z.Tellman)”
by
Shinnosuke Asahara
PDF
Haskell night
by
Tatsuya Touma
PDF
組込Haskellとλカ娘本の紹介
by
Kiwamu Okabe
PDF
mbed+Haskellどうでしょう
by
Kiwamu Okabe
Clojure
by
yshigeru
PEZY-SC programming overview
by
Ryo Sakamoto
One - Common Lispでもワンライナーしたい
by
t-sin
HaskellではじめるCortex-M3組込みプログラミング
by
Kiwamu Okabe
Dive into RTS - another side
by
Kiwamu Okabe
SystemC Tutorial
by
kocha2012
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
by
HPCシステムズ株式会社
Groovyで学ぶプロセス代数 #jjug
by
kyon mm
マスターオブゴールーチンアンドチャネル スタートGo #1
by
Takuya Ueda
オレオレPHPのつくり方
by
Ryusuke Sekiyama
入門 シェル実装
by
Yusuke Sangenya
GHC 6.12.1 マルチコア対応ランタイムシステムについて
by
Mitsutoshi Aoe
20151121
by
Makoto Kishimoto
組込向けHaskellコンパイラAjhc / mbedマイコンどうでしょう編
by
Kiwamu Okabe
みんな大好き! Hello, World
by
Naohiro Aota
C-langage
by
Hiramatsu Ryosuke
Non-blocking “Scalable” Network Programming with “aleph (by Z.Tellman)”
by
Shinnosuke Asahara
Haskell night
by
Tatsuya Touma
組込Haskellとλカ娘本の紹介
by
Kiwamu Okabe
mbed+Haskellどうでしょう
by
Kiwamu Okabe
More from Makoto Kishimoto
ODP
Node handson
by
Makoto Kishimoto
PDF
some SHA1 implementation
by
Makoto Kishimoto
ODP
app-c.odp
by
Makoto Kishimoto
PDF
Shizuoka go lang csp
by
Makoto Kishimoto
PDF
Tech oyaji ksmakoto_presen
by
Makoto Kishimoto
PDF
Visulan intro
by
Makoto Kishimoto
ODP
FZ and DAZ in denormals
by
Makoto Kishimoto
Node handson
by
Makoto Kishimoto
some SHA1 implementation
by
Makoto Kishimoto
app-c.odp
by
Makoto Kishimoto
Shizuoka go lang csp
by
Makoto Kishimoto
Tech oyaji ksmakoto_presen
by
Makoto Kishimoto
Visulan intro
by
Makoto Kishimoto
FZ and DAZ in denormals
by
Makoto Kishimoto
Recently uploaded
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
CHP survey
1.
Communicating Haskell Process (CHP)
サーベイ 岸本 誠
2.
Communicating Haskell Process (CHP)
とは ● 英ケント大学 School of Computing (JCSPとかの開発元) ● Haskellベース(Embedded DSL)
3.
特徴 ● 独立性が高い – Haskellの(標準的な)並列・並行機能とは独立 – ただし、非決定的動作を顕著にするためにはコンパイル して並列化が必要(後述) ● 実用性が高い –
JCSPと似たような方向性(か?) – IO と混ぜられる – Software Transactional Memory とは 違う方向性? (混ぜられないことに意味がある)
4.
バージョン ● 公式ページでは2010年のv2.1.0.1が最後 ● 実際には2014年のv2.2.0.1がhackageに登録 ● 現状、そんなに活発に開発されている状況では ないようである
→ パッチが必要(次で説明)
5.
インストール ● パッケージ(hackage)はある、が、 最新のGHC環境にcabal(パッケージ管理ツール兼 make)でインストールしようとするとエラーが出る ● ソースtarballを取ってきて展開しパッチを当て、 cabalでインストールする (
http://metanest.jp/cspken/18/patches/ で公開 ) ● 定型的なコードを追加するだけなので本質的には 難しいパッチではないが、Haskellに慣れていないと 必要な情報を探すのが大変かも(記号はGoogleで 検索できない)
6.
インストール(続) ● 入出力などは chp-plus
という別パッケージなので それもインストールする ● こちらもパッチが必要
7.
チュートリアル ● チュートリアルが用意されている – https://www.cs.kent.ac.uk/projects/ofa/chp/tutorial.pdf ● 以下ほぼチュートリアル(の前半)に沿って解説 ● (そのままでは動かないコード等の注など)
8.
全般的な注意 ● 下線 _
に関して ● Haskell では、関数等のバリエーション版に ダッシュの意のシングルクオートや下線を多用 ● mapM と mapM_ など ● チュートリアルのpdfからコピペすると、下線が全部 消える ● 特に多用の runCHP_ が runCHP になるので注意
9.
基本的な枠組 ● IO と似たような「型コンストラクタ」CHP
がある ● IO が do 記法によって入出力アクションをまとめる ように、do 記法でチャネル通信などをつなげる ● runCHP_ で IO () につなげて main から実行 – runCHP_ :: CHP a -> IO ()
10.
例1 import Prelude (IO) import
Control.Concurrent.CHP (CHP, runCHP_) import qualified Control.Concurrent.CHP.Common as CHP import Control.Concurrent.CHP.Console ( consoleProcess, ConsoleChans, cStdin, cStdout) main :: IO () main = runCHP_ (consoleProcess echo) echo :: ConsoleChans -> CHP () echo chans = CHP.id (cStdin chans) (cStdout chans)
11.
例2 import Prelude (IO,
show, fromEnum, (++), mapM) import Control.Concurrent.CHP (CHP, runCHP_, readChannel, writeChannel) import Control.Concurrent.CHP.Console (ConsoleChans, consoleProcess, cStdin, cStdout) import Control.Monad (forever) main :: IO () main = runCHP_ (consoleProcess printOrd) printOrd :: ConsoleChans -> CHP () printOrd chans = forever (do x <- readChannel (cStdin chans) let ordXStr = show (fromEnum x) ++ "n" mapM (writeChannel (cStdout chans)) ordXStr )
12.
例2(続) import Prelude (IO,
show, fromEnum, (++), mapM_) import Control.Concurrent.CHP (CHP, runCHP_, readChannel, writeChannel) import Control.Concurrent.CHP.Console (ConsoleChans, consoleProcess, cStdin, cStdout) main :: IO () main = runCHP_ (consoleProcess printOrd) printOrd :: ConsoleChans -> CHP () printOrd chans = loop :: CHP () where loop = do x <- readChannel (cStdin chans) let ordXStr = show (fromEnum x) ++ "n" mapM_ (writeChannel (cStdout chans)) ordXStr loop
13.
選択と並列 ● 選択の演算子 <-> /
並列の演算子 <||> printOrdWhileWaiting :: ConsoleChans -> CHP () printOrdWhileWaiting chans = (readChannel cin) >>= inner where inner :: Char -> CHP () inner x = do _ <- printString (show (fromEnum x) ++ "n") (waitFor 1000000 >> inner x) <-> (readChannel cin >>= inner) cin = cStdin chans cout = cStdout chans cerr = cStderr chans printString s = mapM (writeChannel cout) s <||> mapM (writeChannel cerr) s
14.
高度な合成の例(パイプライン) crazyPipeline :: ConsoleChans
-> CHP () crazyPipeline chans = do pipelineConnect [ CHP.filter isLetter, CHP.map toUpper, CHP.filter (/= 'X')] (cStdin chans) (cStdout chans) return ()
15.
高度な合成の例(パイプライン)続 crazyPipeline chans =
loop where loop = do c1 <- readChannel (cStdin chans) if isLetter c1 then bottom_half c1 else loop bottom_half c1 = do let c2 = toUpper c1 if c2 /= 'X' then writeChannel (cStdout chans) c2 else loop loop
16.
以上で2章まで ● 3章以下 ● 3章:
tracing - チャネル通信にラベル付け – コンパイルオプション-threadedを付け、マルチスレッドを 有効にしてマルチコアで並列(パラレル)に出来るように – MPマシンでランタイムオプション+RTS -N2を付け実行 ● 4章: poisoning - チャネルの通信に「毒」を入れる と、それを受信した所(重要)でプロセスが例外に
17.
続き ● 5章: Extended
Transactions ● 6章: バリアとバッファ – バッファはプロセスで実装 ● 7章: 共有チャネルとブロードキャストチャネル ● 8章: CHPモナドのモナド則 ● 9章: FAQ
18.
まとめ ● CHP(Communicating Haskell
Process)は – Haskell中のEDSL風に実装されたCSPライブラリで – 実用性を重視しており – 多くのプロセスパターンを試せるレベルにある ● 要注意点 – (本質的な難しさは無いが)最新の環境では、 コンパイルを通すためにパッチが必要 – チュートリアルにも、そのままでは動かないものがある – 後日、岸本のほうから、パッチと、動くように手を入れた チュートリアル内のコードを配布する ( http://metanest.jp/cspken/18/ )
19.
おわり
Download