SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
GHC 6.12.1
マルチコア対応ランタイムシステム
      について




             id:maoe
id:maoe

青江光敏
http://d.hatena.ne.jp/maoe/
http://github.com/maoe
  Keepalived.confの文法チェッカ

Haskell歴は4年
id:maoe

青江光敏
http://d.hatena.ne.jp/maoe/
http://github.com/maoe
  Keepalived.confの文法チェッカ

Haskell歴は4年
  興味を持ったきっかけは、2005年のLLDNでsakai
  さんの発表が全く意味不明だったこと
内容は
プログラミングモデルの話はすっ飛ばして
GHC 6.12.1の並列ランタイム性能改善の元となったと思
われる論文”Runtime Support for Multicore Haskell”か
ら
5分では時間がない(つっこまれると答えられない)ので
要点を絞って
 GHCのスレッドモデル
 並列ランタイムの仕組み
 最適化の試みを少しだけ
GHCのスレッドモデル
                                                 とても軽い
a `par` b                                         スパーク
                                                 (sparks)

                                                     軽い
                                                Haskellスレッド
forkIO a
                                                 (OSスレッドの
                                                100x以上軽い)


                                                  CPU数と
./a.out                                          同数程度の
  +RTS -N                                       重いOSスレッド
                                                  (worker
                                                  threads)

            CPU #0   CPU #1   CPU #2   CPU #3
並列ランタイムの仕組み
       Haskell                     HEC #2               HEC #3         HEC #4
     Execution
     Context #1
       (HEC)

●   An ownership field   ●   An ownership field   ...            ...
●   An message queue     ●   An message queue
●   A run queue              ...
●   An allocation area
●   GC remembered
    set
●   A spark pool
●   A worker pool




        CPU #0                     CPU #1               CPU #2         CPU #3
並列ランタイムの仕組み
       Haskell
     Execution
                         Haskell Execution Context (HEC)
     Context #1
       (HEC)               CPUごとに一つ作られる
●   An ownership field       +RTS -Nで指定する数だけ作られる
●   An message queue
●   A run queue
                           worker threadがHaskell threadを実
●   An allocation area     行するのに必要なデータを持っている
●   GC remembered
    set                    “Capability”とか”virtual
    A spark pool
                           processor”とも呼ばれる
●



●   A worker pool




        CPU #0
並列ランタイムの仕組み
       Haskell
                         Haskellスレッドの実体はThread State Object
     Execution
     Context #1          (TSO)というヒープに割り当てられたデータ構造
       (HEC)
                           15 words + sizeof stack + αで小さい
●   An ownership field
                           run queueに入っているのをHECが順次round-
●   An message queue
●   A run queue
                           robinで実行していく
●   An allocation area   parで作られるsparkはspark poolに入る
●   GC remembered
    set                    システムの負荷が高くないときに、GCを生き延
    A spark pool
                           びた一部のsparkのみspark threadが作られ並列
●



    A worker pool
                           評価される
●




                           つまり必ず並列評価されるわけではない
        CPU #0
並列ランタイムの仕組み
       Haskell
     Execution           HECのライフサイクル
     Context #1
       (HEC)              message queueのメッセージを処理
●   An ownership field    run queueのスレッドを走らせる
●   An message queue
●   A run queue           spark poolにsparkが入っていれば
●   An allocation area
                          spark threadを起動し実行
●   GC remembered
    set
                          HEC内でなくglobalな、black hole
●   A spark pool
●   A worker pool         poolをpollingして、いずれかのスレッ
                          ドが実行できるようになったら実行

        CPU #0
最適化の例
HEC間のspark poolの共有をpushモデルから、work stealing
queueというロックフリーなデータ構造を使うようにした
並列GCの改善
 並列コピー式GCでimmutableなオブジェクトを扱うときは同期処理をしな
 いように変更した
 remembered setをHECごとに用意して局所性を高めた
 ここでもwork stealing queueを使うことでGCのロードバランスをやめ、
 局所性を高めた

Control.Parallel.Strategiesを使うときに起こるメモリリーク問題
を解消した
ThreadScopeが活躍したみたい
 どのタイミングでどのHECが頑張っていたのか一目瞭然
まとめというより所感

純粋関数型は簡単に並列化できるとは言うもの
の実際に効率的なプログラムにするのは大変
 ラインタイムをこつこつと計測して、こつこつと
 チューニング
 GCなどに他の言語でも利用されている技術を適用
 Strategy周りはもう少し勉強が必要

速度向上と環境整備でHaskellの並列プログラミ
ングが一般的になっていくといいな
参考文献
Runtime Support for Multicore Haskell
  (たぶん)GHC 6.12.1に取り込まれた改良に関する論文
Multicore Haskell Now! ACM Reflections
  par/pseqを使った並列プログラミングに始まり、並行プロ
  グラミング、STM、データ並列までマルチコアを活用する
  ための仕組みを一通り解説
  サンプルコードが豊富
GHC Commentary
  ちょっと情報が古いかもしれないけど参考になる
GHC 6.12.1
マルチコア対応ランタイムシステム
      について




             id:maoe

                   1
id:maoe

青江光敏
http://d.hatena.ne.jp/maoe/
http://github.com/maoe
  Keepalived.confの文法チェッカ

Haskell歴は4年




                              2
id:maoe

青江光敏
http://d.hatena.ne.jp/maoe/
http://github.com/maoe
  Keepalived.confの文法チェッカ

Haskell歴は4年
  興味を持ったきっかけは、2005年のLLDNでsakai
  さんの発表が全く意味不明だったこと

                                 3
内容は
プログラミングモデルの話はすっ飛ばして
GHC 6.12.1の並列ランタイム性能改善の元となったと思
われる論文”Runtime Support for Multicore Haskell”か
ら
5分では時間がない(つっこまれると答えられない)ので
要点を絞って
 GHCのスレッドモデル
 並列ランタイムの仕組み
 最適化の試みを少しだけ

                                            4
GHCのスレッドモデル
                                                 とても軽い
a `par` b                                        スパーク
                                                 (sparks)

                                                     軽い
                                                Haskellスレッド
forkIO a
                                                 (OSスレッドの
                                                100x以上軽い)


                                                  CPU数と
./a.out                                          同数程度の
  +RTS -N                                       重いOSスレッド
                                                  (worker
                                                  threads)

            CPU #0   CPU #1   CPU #2   CPU #3

                                                        5
並列ランタイムの仕組み
       Haskell                     HEC #2               HEC #3         HEC #4
     Execution
     Context #1
       (HEC)

●   An ownership field   ●   An ownership field   ...            ...
●   An message queue     ●   An message queue
●   A run queue              ...
●   An allocation area
●   GC remembered
    set
●   A spark pool
●   A worker pool




        CPU #0                     CPU #1               CPU #2         CPU #3

                                                                                6
並列ランタイムの仕組み
            Haskell
          Execution
                              Haskell Execution Context (HEC)
          Context #1
            (HEC)               CPUごとに一つ作られる
     ●   An ownership field       +RTS -Nで指定する数だけ作られる
         An message queue
                                worker threadがHaskell threadを実
     ●



     ●   A run queue
     ●   An allocation area     行するのに必要なデータを持っている
     ●   GC remembered
         set                    “Capability”とか”virtual
         A spark pool
                                processor”とも呼ばれる
     ●



     ●   A worker pool




             CPU #0

                                                                 7




- ownership fieldは、どのworker threadがcapabilityを
   持っているか(実行中か)
- message queueは、他のHECからの要求を受け取るた
   めのキュー。たとえば”スレッドTを起こして!”という
   ような具合
- run queueは実行準備ができているスレッドのキュー
- allocation areaは、HEC固有のアロケーション領域。
   ヒープは一つを共有するけど、固有のもあるらしい。
- GC remembered setsは?
- spark poolはa `par` bとするときのaのサンクが入る
- worker poolはスペアのworker threadとforeign call用
   のプール
並列ランタイムの仕組み
       Haskell
     Execution
                         Haskellスレッドの実体はThread State Object
     Context #1          (TSO)というヒープに割り当てられたデータ構造
       (HEC)
                           15 words + sizeof stack + αで小さい
●   An ownership field
                           run queueに入っているのをHECが順次round-
●   An message queue
●   A run queue
                           robinで実行していく
●   An allocation area   parで作られるsparkはspark poolに入る
●   GC remembered
    set                    システムの負荷が高くないときに、GCを生き延
    A spark pool
                           びた一部のsparkのみspark threadが作られ並列
●



    A worker pool
                           評価される
●




                           つまり必ず並列評価されるわけではない
        CPU #0

                                                              8
並列ランタイムの仕組み
       Haskell
     Execution           HECのライフサイクル
     Context #1
       (HEC)              message queueのメッセージを処理
●   An ownership field    run queueのスレッドを走らせる
●   An message queue
●   A run queue           spark poolにsparkが入っていれば
●   An allocation area
                          spark threadを起動し実行
●   GC remembered
    set
                          HEC内でなくglobalな、black hole
●   A spark pool
●   A worker pool         poolをpollingして、いずれかのスレッ
                          ドが実行できるようになったら実行

        CPU #0

                                                      9
最適化の例
HEC間のspark poolの共有をpushモデルから、work stealing
queueというロックフリーなデータ構造を使うようにした
並列GCの改善
 並列コピー式GCでimmutableなオブジェクトを扱うときは同期処理をしな
 いように変更した
 remembered setをHECごとに用意して局所性を高めた
 ここでもwork stealing queueを使うことでGCのロードバランスをやめ、
 局所性を高めた

Control.Parallel.Strategiesを使うときに起こるメモリリーク問題
を解消した
ThreadScopeが活躍したみたい
 どのタイミングでどのHECが頑張っていたのか一目瞭然
                                               10
まとめというより所感

純粋関数型は簡単に並列化できるとは言うもの
の実際に効率的なプログラムにするのは大変
 ラインタイムをこつこつと計測して、こつこつと
 チューニング
 GCなどに他の言語でも利用されている技術を適用
 Strategy周りはもう少し勉強が必要

速度向上と環境整備でHaskellの並列プログラミ
ングが一般的になっていくといいな
                           11
参考文献
Runtime Support for Multicore Haskell
  (たぶん)GHC 6.12.1に取り込まれた改良に関する論文
Multicore Haskell Now! ACM Reflections
  par/pseqを使った並列プログラミングに始まり、並行プロ
  グラミング、STM、データ並列までマルチコアを活用する
  ための仕組みを一通り解説
  サンプルコードが豊富
GHC Commentary
  ちょっと情報が古いかもしれないけど参考になる

                                         12

Weitere ähnliche Inhalte

Was ist angesagt?

痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさ痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさTakatoshi Matsuo
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
Intel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼうIntel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼうTakuya ASADA
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能についてmarsee101
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwardingMasakazu Asama
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in LinuxTomofumi Hayashi
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
CephのベンチマークをしましたOSSラボ株式会社
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきことmao999
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』健太 松浦
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiKen'ichi Sakiyama
 
Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いMasakazu Asama
 

Was ist angesagt? (20)

痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさ痛い目にあってわかる HAクラスタのありがたさ
痛い目にあってわかる HAクラスタのありがたさ
 
Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
V6 unix vol.2 in okinawa
V6 unix vol.2 in okinawaV6 unix vol.2 in okinawa
V6 unix vol.2 in okinawa
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
Intel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼうIntel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼう
 
Cpu cache arch
Cpu cache archCpu cache arch
Cpu cache arch
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能について
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
Cephのベンチマークをしました
 
Code jp2015 cpuの話
Code jp2015 cpuの話Code jp2015 cpuの話
Code jp2015 cpuの話
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』試して覚えるPacemaker入門 『リソース設定編』
試して覚えるPacemaker入門 『リソース設定編』
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
Fxxking gc.c
Fxxking gc.cFxxking gc.c
Fxxking gc.c
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違い
 

Andere mochten auch

これから Haskell を書くにあたって
これから Haskell を書くにあたってこれから Haskell を書くにあたって
これから Haskell を書くにあたってTsuyoshi Matsudate
 
最近のHaskellマップ
最近のHaskellマップ最近のHaskellマップ
最近のHaskellマップMitsutoshi Aoe
 
Erlangを触ってみた
Erlangを触ってみたErlangを触ってみた
Erlangを触ってみたYoichi Toyota
 
関数型軽い紹介
関数型軽い紹介関数型軽い紹介
関数型軽い紹介Daniel Perez
 
関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみた関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみたTakashi Nishisaki
 
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪Naoki Kitora
 
F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?pocketberserker
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateepocketberserker
 
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49shoma h
 
Katagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 CryptoKatagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 Cryptotrmr
 
120901fp key
120901fp key120901fp key
120901fp keyksknac
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)tadaaki hayashi
 
Template Haskell とか
Template Haskell とかTemplate Haskell とか
Template Haskell とかHiromi Ishii
 
データベース入門3
データベース入門3データベース入門3
データベース入門3tadaaki hayashi
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門Hideyuki Tanaka
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!Ra Zon
 

Andere mochten auch (20)

これから Haskell を書くにあたって
これから Haskell を書くにあたってこれから Haskell を書くにあたって
これから Haskell を書くにあたって
 
最近のHaskellマップ
最近のHaskellマップ最近のHaskellマップ
最近のHaskellマップ
 
Erlangを触ってみた
Erlangを触ってみたErlangを触ってみた
Erlangを触ってみた
 
Erlang
ErlangErlang
Erlang
 
Yesod(at FPM2012)
Yesod(at FPM2012)Yesod(at FPM2012)
Yesod(at FPM2012)
 
関数型軽い紹介
関数型軽い紹介関数型軽い紹介
関数型軽い紹介
 
関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみた関数型言語初心者の俺がF#触ってみた
関数型言語初心者の俺がF#触ってみた
 
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪
 
F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?F#で学ぶ関数プログラミング入門?
F#で学ぶ関数プログラミング入門?
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIteratee
 
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
 
Katagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 CryptoKatagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 Crypto
 
JSer Class #1
JSer Class #1JSer Class #1
JSer Class #1
 
120901fp key
120901fp key120901fp key
120901fp key
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)
 
Template Haskell とか
Template Haskell とかTemplate Haskell とか
Template Haskell とか
 
データベース入門3
データベース入門3データベース入門3
データベース入門3
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!磯野ー!関数型言語やろうぜー!
磯野ー!関数型言語やろうぜー!
 

Ähnlich wie GHC 6.12.1 マルチコア対応ランタイムシステムについて

Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentookubo39
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチMasami Ichikawa
 
How do you like jhc?
How do you like jhc?How do you like jhc?
How do you like jhc?Kiwamu Okabe
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)inaz2
 
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010Tsukasa Oi
 
Racc でおてがる構文解析
Racc でおてがる構文解析Racc でおてがる構文解析
Racc でおてがる構文解析morphine57
 
Trema day 1
Trema day 1Trema day 1
Trema day 1ykuga
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…Yasumasa Suenaga
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料Recruit Technologies
 
Xeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみたXeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみたMITSUNARI Shigeo
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークTakuya ASADA
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介Ohsawa Goodfellow
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3moai kids
 

Ähnlich wie GHC 6.12.1 マルチコア対応ランタイムシステムについて (20)

Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
 
x86とコンテキストスイッチ
x86とコンテキストスイッチx86とコンテキストスイッチ
x86とコンテキストスイッチ
 
How do you like jhc?
How do you like jhc?How do you like jhc?
How do you like jhc?
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
 
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
リバースエンジニアリングのための新しいトレース手法 - PacSec 2010
 
Racc でおてがる構文解析
Racc でおてがる構文解析Racc でおてがる構文解析
Racc でおてがる構文解析
 
20151121
2015112120151121
20151121
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
 
CHP survey
CHP surveyCHP survey
CHP survey
 
R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11R-hpc-1 TokyoR#11
R-hpc-1 TokyoR#11
 
Scheme to x86コンパイラ
Scheme to x86コンパイラScheme to x86コンパイラ
Scheme to x86コンパイラ
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
 
Xeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみたXeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみた
 
20120423 hbase勉強会
20120423 hbase勉強会20120423 hbase勉強会
20120423 hbase勉強会
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介
 
Programming Hive Reading #3
Programming Hive Reading #3Programming Hive Reading #3
Programming Hive Reading #3
 

Kürzlich hochgeladen

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Kürzlich hochgeladen (8)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

GHC 6.12.1 マルチコア対応ランタイムシステムについて