できる!並列・並行プログラミング

Preferred Networks
Preferred NetworksVice-President at Preferred Networks
できる!
並列・並行プログラミング
          田中英行
 <tanaka.hideyuki@gmail.com>
   Tech Talk@PFI 2011/10/20
“The Free Lunch is Over!”

21世紀初頭、人類は岐路に立たされていた
   永遠に続くかと思われたプロセッサ
      高速化に陰りが見え始め
   プロセスの微細化は物理的限界を
        迎えようとしていた
 プロセッサメーカはマルチコアへと走り
    プログラマに困難を押し付ける
    上がらないクロック 下がるIPC
    Out-of-OrderからIn-Orderに
      フリーランチを取り戻せ
    果報は寝て待つ時代を再び!
本日の内容
• ぼーっと寝ているだけで、プログラムが
  速くなる時代は終わってしまった
• どげんかせんといかん!
並列・並行の違い
• 並列(Parallel)
  – タスクを高速化するために、プログラムを複
    数のプロセッサで動作させる
  – 目的は高速化(速くならないのなら意味は無
    い)
• 並行(Concurrent)
  – 複数のタスクを同時に実行する
  – タスクを同時に実行すること自体が目的


          ※よく誤解されますが、インプリによる分類ではないです
分散
• 物理的に独立した、複数のノードで
  並列・並行を行う
• 今回は扱いません
マルチスレッドプログラミング
• 1ノード内での並列・並行プログラムに
  用いる
• 並列・並行はスレッドだけじゃない
 – OpenMP(プラグマ)
 – OpenCL/CUDA(DSL)
 – Implicit Parallelism(Parallel Haskell)
 – (Nested)Data Parallelism(DPH)
 – Automatic-Paralellisation(お餅)
 – これらの話は今回はしません
スレッドとは
• ここでは次のようなものと想定
 – メモリ空間を共有
 – 固有のスタックを持つ
 – プリエンプティブ
• 実装はいろいろ
 – OSスレッド(pthreadなど)
 – グリーンスレッド(処理系固有のスレッド)
 – 軽量スレッド(Erlang/Haskellなど)
マルチスレッドプログラミングは
      難しい




     スレッド
なんで難しいのか?
• 複数のスレッドはやり取りする必要がある
 – そうでなければ、ただのタスクの集合
• 複数のスレッドが同一のリソースにアクセ
  スするとき、非決定状態が発生する
簡単な例
• 次のプログラムにはバグがあります。
  そのバグを指摘しなさい(1分で10級)
Race Condition(競合状態)
• 複数のスレッドが同一のリソースにアク
  セスする際、予期しない状態になること
  がある
• そのような状態をRace Conditionという
• マルチスレッドプログラムは一般的に非
  決定な計算になるので、この手のバグの
  再現は困難を極めることが多い
Race Conditionの例
並行性制御・排他制御
• ロック
 – あるリソースに同時にアクセスするスレッドが一
   つであれば、Race Conditionは発生しない
 – リソースへのアクセス権を制御する仕組み
 – mutexへのロック・アンロックで実現
• 排他制御
 – 同一リソースに複数スレッドがアクセスしないよ
   うにすること
 – 排他制御が必要なコード上の箇所を
   「クリティカルセクション」という
さっきの解答
• cnt_ にロックによる排他制御を追加する
そう
彼は言葉巧みに私に近づいて来ました
     手を変え品を変え
   言語組み込みなら大丈夫
     Boostなら大丈夫
          ・・・
    でも、待っていたのは
   デバッグ地獄だったんです
第二章

Locks Considered Harmful
ロックは害悪である
• ロックを用いたすべてのプログラムは、
  バグがあるか、もしくはまだバグが見つ
  かっていないかのどちらかである
        “Java Concurrency in Practice”
• ロックによる並行プログラミングは、
  アセンブリでプログラムするに等しい
                        “出典不明”
• トイレロックが取れない
                        “P社社員”
ロックが難しいと見抜けないと
 (ロックを扱うのは)難しい
• ロックのもたらすバグ・不具合一覧
 – アンロックし忘れ
 – デッドロック
 – ロックの不足(Race Condition)
 – ロックの過剰(全然並列にならない)
 – モジュラリティの欠如
(1)アンロックし忘れ
•   ロックしたmutexをアンロックし忘れる
•   リソースに永久にアクセスできなくなる
•   例外安全性とも関係
•   解決法:
    – 常にRAIIを用い、手動でのロック・アンロッ
      クは“決して行なってはいけない”
(2)デッドロック
• 複数のロックを複数のスレッドが同時に
  獲得しようとする際に発生
• スレッドが永久に停止
• 解決法:
 – 必ず同じ順番でロックを取るようにする
 – ロックに順序を付け、これから獲得しようと
   するロックを予め全て列挙、その順番でロッ
   クしなければいけない
(3)ロックの不足
• クリティカルセクションでロックを忘れ
  る
• 解決法:
 – ありません
 – 気をつけるしかない


  \(^o^)/
(4)ロックの過剰
• 必要のないところでロックを取る
 – 粒度の大きなロック
  • ハッシュテーブルで全要素をロックするなど
 – 粒度の小さなロックを記述するのは、非常に
   難しい
• 解決法:
 – 本質的に困難
  • 特定のほげほげをfine grainedに実装しましただけ
    で国際学会レベル
(5)モジュラリティの欠如
• ロックを用いたプログラミングは互いに
  組み合わせることができない
• 解決法:
 – 原理的に不可能


\(^o^)/
 \(^w^)/
  \(^t^)/
ロックに潜む本質的欠陥
• ロックを用いたルーチンは、Composable
  でない
 – 互いに組み合わせることができない
 – 例で説明します
例:銀行システム
• ストレートな実装
問題点
• 例:振込関数を書く
 – 振込処理はトランザクション
 – ACI(D)が必要




• これはだめ
 – 中間状態が見える
振込:修正
• あらかじめ両方のロックをとっておく
 – ロック変数を暴露、カプセル化の崩壊




• しかし、これで良いのか?
デッドロック
• デッドロックの可能性
 – ロックの順番を同じにしなければならない
モジュラリティの低下
     ロック粒度の低下
• すべての操作が、ロックする可能性のあ
  るmutexを列挙しなければならない
• これらすべてを一度にロックしなければ
  ならないので、一部不要なものがあった
  としてもロックを回避できない
 – ロックの獲得の順番は必ず守らなければなら
   ないので
組み合わせ
• 例題:銀行Aから銀行Cに振込を行う。た
  だし、銀行Aに十分な残高がなかったら、
  銀行Bから銀行Cに振込を試みる。
解答例:まちがい
• 予めロックを全部取る(順番は今は不問)
 – aからの振込に成功した場合、
   bのロックを行なってはいけない
解答例:まちがい(2)
• 当然これはバグ
Q:どうすればいいのか?
• A:どうにもできない
 – 状況に応じて必要なロックが変動する場合、
   それらを安全にロックすることは不可能


• これはすなわち
 – ロックを用いたプログラムにモジュラリティ
   は存在しない
 – ロックを用いたプログラムを組み合わせるこ
   とは不可能である
第三章

Lock Must Go!
マルチスレッドプログラミングに
    銀の弾丸なし
• すべてを解決する夢の様なものはない
 – お餅うにょーん
• 実装するものに対して適切なものを選ぶ
  必要がある
 – 方法はいろいろある
 – 一長一短
でも、
ロックだけは
絶対に死んでもイヤ
ロックの代替物
• メッセージパッシング
• Software Transactional Memory(STM)
• Concurrent Revisions
  – 後で説明
メッセージパッシング
• スレッドがそれぞれメッセージキューを
  持ち、スレッド間の通信はメッセージの
  やり取りに限る
 – そもそもリソースを共有しないので、Raceが
   起きない
• プログラミングモデルに制限がかかる
STM
• メモリ操作をAtomicity、Consistency、Isolation
  を満たすトランザクションとして記述する
  – 各トランザクションは、シーケンシャルに実行さ
    れた時と同一の結果にならなければならない
• 実装方式はいろいろ
  – 楽観的並行性制御にて実行、競合したらロール
    バックするのが一般的
  – 取り消し不可能な操作をトランザクションから排
    除する必要がある
これらのものをサポートする
         処理系
• Erlang
  – immutable
  – メッセージパッシング(ScalaとかHaskellも)
• Closure
  – 共有資源が次のいずれか
     • Transactional Variable
     • Thread Local
• Haskell
  – STM(型レベルでロールバックの正しさを保証)
第四章

Concurrent Revisions
Concurrent Revisions
• 最近提唱された並行性制御のための手法
 – ロック無し
 – Waitなし
 – ロールバックなし
 – ロールバックしないので取り消し不可能な操
   作を行なっても良い
参考文献
• Sebastian Burckhardt, Alexandro Baldassion,
  and Daan Leijen, Concurrent Programming
  with Revisions and Isolation Types, in
  Proceedings of the ACM International
  Conference on Object Oriented Programming
  Systems Languages and Applications
  (OOPSLA'10), ACM SIGPLAN, Reno, NV,
  October 2010
  – http://research.microsoft.com/en-
    us/projects/revisions/
概要
• バージョン管理のアナロジーで
  共有リソースを扱う
コンポーネント
• versioned<T>
  – バージョン変数
• revision
  – リビジョンをあらわす変数
• fork
  – 並行に実行、子は別リビジョンに
• join
  – リビジョンをマージする
楽観的並行性制御
• versioned変数はスレッドごとに領域が割
  り当てられる
 – Raceが発生しない
• Joinの際に決定的(Deterministic)に
  コンフリクトを解消
 – デフォルトでは、子の変更を優先
Deterministic
• Deterministic Concurrency
  – 非決定性がない
cumulative変数
• コンフリクト解消の方法をカスタマイズ
 – λorig main child -> result
リビジョンツリーの形に制約
• 直接の子供(もしくはそれをjoinしたリビ
  ジョン)しかjoinできない
 – 正しいコンフリクト解消のため
Concurrent Revisions:Pros
• Race Conditionが発生しない
• 決定的であるので、再現性の低いバグに
  悩まされる必要がない
 – 本質的に決定的である必要がある並列には
   特に向いている
• (Concurrent Revisionsの)仕組みが単純
  実装が容易
 – STMは難しい
Concurrent Revisions:Cons
• 不正なjoin
 – OriginalのC#への実装はランタイムエラー
 – Haskellへの実装ではRank2Polymorphismを
   用いて型エラーにすることが可能
• Deterministicにコンフリクト解消ができる
  必要がある
 – そうでないものには向かない
性能
• オーバーヘッド
 – 非常に軽微
性能
• ゲームの並列化
 – 4コアマシンでのFPS
性能その他
You can try it NOW!

$   git clone git://github.com/tanakh/concurrent_revisions.git
$   cd concurrent_revisions.git
$   ./waf configure
$   ./waf build
$   sudo ./waf install



                                      Fork it!
デモ
まとめ
• 並行性制御に銀の弾丸なし
• でも、ロックはもう使ってはいけない
• ロックの代替を状況に応じて使い分け
 – メッセージパッシング
 – STM
 – Concurrent Revisions
1 of 57

Recommended

Glibc malloc internal by
Glibc malloc internalGlibc malloc internal
Glibc malloc internalMotohiro KOSAKI
62.1K views86 slides
プログラムを高速化する話 by
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話京大 マイコンクラブ
242.4K views120 slides
冬のLock free祭り safe by
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
27K views184 slides
async/await のしくみ by
async/await のしくみasync/await のしくみ
async/await のしくみ信之 岩永
19.8K views41 slides
組み込み関数(intrinsic)によるSIMD入門 by
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
47.6K views122 slides
例外設計における大罪 by
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
68.6K views37 slides

More Related Content

What's hot

やはりお前らのMVCは間違っている by
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
145.7K views66 slides
今日からできる!簡単 .NET 高速化 Tips by
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
35.1K views53 slides
ゲーム開発者のための C++11/C++14 by
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14Ryo Suzuki
103.6K views157 slides
分散システムについて語らせてくれ by
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
119.5K views45 slides
Marp Tutorial by
Marp TutorialMarp Tutorial
Marp TutorialRui Watanabe
3.2K views15 slides
オブジェクト指向できていますか? by
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
237.5K views129 slides

What's hot(20)

やはりお前らのMVCは間違っている by Koichi Tanaka
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka145.7K views
今日からできる!簡単 .NET 高速化 Tips by Takaaki Suzuki
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki35.1K views
ゲーム開発者のための C++11/C++14 by Ryo Suzuki
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki103.6K views
分散システムについて語らせてくれ by Kumazaki Hiroki
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki119.5K views
オブジェクト指向できていますか? by Moriharu Ohzu
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu237.5K views
世界一わかりやすいClean Architecture by Atsushi Nakamura
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura47.2K views
20分くらいでわかった気分になれるC++20コルーチン by yohhoy
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy13K views
Dockerfile を書くためのベストプラクティス解説編 by Masahito Zembutsu
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu84.5K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada148.8K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) by Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada70.7K views
Java ORマッパー選定のポイント #jsug by Masatoshi Tada
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada90.2K views
Dockerからcontainerdへの移行 by Akihiro Suda
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda7.6K views
InnoDBのすゝめ(仮) by Takanori Sejima
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima22.6K views
C#でわかる こわくないMonad by Kouji Matsui
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonad
Kouji Matsui23.1K views
C# 8.0 非同期ストリーム by 信之 岩永
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永11.2K views

Similar to できる!並列・並行プログラミング

Continuous delivery 6 by
Continuous delivery 6Continuous delivery 6
Continuous delivery 6ShinyaOzawa
698 views37 slides
Fork/Join Framework by
Fork/Join FrameworkFork/Join Framework
Fork/Join FrameworkAppresso Engineering Team
1.8K views14 slides
モジュールの凝集度・結合度・インタフェース by
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
16.7K views100 slides
Kink: invokedynamic on a prototype-based language by
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageTaku Miyakawa
1.8K views24 slides
【学習メモ#9th】12ステップで作る組込みOS自作入門 by
【学習メモ#9th】12ステップで作る組込みOS自作入門 【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門 sandai
2.1K views25 slides

Similar to できる!並列・並行プログラミング(20)

Continuous delivery 6 by ShinyaOzawa
Continuous delivery 6Continuous delivery 6
Continuous delivery 6
ShinyaOzawa698 views
モジュールの凝集度・結合度・インタフェース by Hajime Yanagawa
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa16.7K views
Kink: invokedynamic on a prototype-based language by Taku Miyakawa
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa1.8K views
【学習メモ#9th】12ステップで作る組込みOS自作入門 by sandai
【学習メモ#9th】12ステップで作る組込みOS自作入門 【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門
sandai2.1K views
【勉強会】パターンによるソフトウェア構成管理 by zuisener .
【勉強会】パターンによるソフトウェア構成管理【勉強会】パターンによるソフトウェア構成管理
【勉強会】パターンによるソフトウェア構成管理
zuisener .2.8K views
トランザクションをSerializableにする4つの方法 by Kumazaki Hiroki
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki21.9K views
C#/.NETがやっていること 第二版 by 信之 岩永
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
信之 岩永39.4K views
Example of exiting legacy system by TakamchiTanaka
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
TakamchiTanaka2.3K views
システムパフォーマンス勉強会#4 by shingo suzuki
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
shingo suzuki786 views
システムパフォーマンス勉強会#4 by shingo suzuki
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
shingo suzuki756 views
大規模なJavaScript開発の話 by terurou
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
terurou12.1K views
Programming camp 2010 debug hacks by Hiro Yoshioka
Programming camp 2010 debug hacksProgramming camp 2010 debug hacks
Programming camp 2010 debug hacks
Hiro Yoshioka620 views
「継続的デリバリー」読書会 第3章 継続的デリバリー by Norikazu Hiraki
「継続的デリバリー」読書会 第3章 継続的デリバリー「継続的デリバリー」読書会 第3章 継続的デリバリー
「継続的デリバリー」読書会 第3章 継続的デリバリー
Norikazu Hiraki741 views
誰でも出来るosxでのローカルなウェブ開発環境構築 by Hiroshi Yamato
誰でも出来るosxでのローカルなウェブ開発環境構築誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
Hiroshi Yamato1.3K views
Java concurrency in_practice_chap06 by ohtsuchi
Java concurrency in_practice_chap06Java concurrency in_practice_chap06
Java concurrency in_practice_chap06
ohtsuchi1.2K views
述語ロックの歴史 r2 by Sho Nakazono
述語ロックの歴史 r2述語ロックの歴史 r2
述語ロックの歴史 r2
Sho Nakazono27 views

More from Preferred Networks

Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3 by
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Preferred Networks
1.3K views36 slides
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke... by
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...Preferred Networks
300 views36 slides
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55 by
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Preferred Networks
22.3K views36 slides
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2 by
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Preferred Networks
1.6K views23 slides
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2 by
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2Preferred Networks
5.9K views63 slides
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2 by
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Preferred Networks
4.7K views35 slides

More from Preferred Networks(20)

Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3 by Preferred Networks
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Preferred Networks1.3K views
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke... by Preferred Networks
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
Preferred Networks300 views
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55 by Preferred Networks
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Preferred Networks22.3K views
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2 by Preferred Networks
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks1.6K views
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2 by Preferred Networks
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
Preferred Networks5.9K views
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2 by Preferred Networks
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Preferred Networks4.7K views
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演 by Preferred Networks
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
Preferred Networks276 views
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」) by Preferred Networks
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Preferred Networks595 views
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」) by Preferred Networks
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
Preferred Networks537 views
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」) by Preferred Networks
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
Preferred Networks166 views
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る by Preferred Networks
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Preferred Networks148 views
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張 by Preferred Networks
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Preferred Networks628 views
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2 by Preferred Networks
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks1.5K views
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co... by Preferred Networks
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k... by Preferred Networks
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
Preferred Networks1.4K views
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub... by Preferred Networks
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks1.3K views
Topology Managerについて / Kubernetes Meetup Tokyo 50 by Preferred Networks
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks763 views
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu... by Preferred Networks
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 by Preferred Networks
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48 by Preferred Networks
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks1.8K views

Recently uploaded

PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
28 views36 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
146 views64 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
109 views26 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
28 views17 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
66 views12 slides
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
10 views22 slides

Recently uploaded(7)

PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga28 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」

できる!並列・並行プログラミング