SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
先取り Go 1.5
PFIセミナー
柏原秀蔵
Preferred  Networks,  Inc.
2015/07/09
⾃自⼰己紹介
l  柏原秀蔵 (@suma90h) (Preferred Networks)
l  最近:Go⾔言語を書いてます
l  最近の活動
–  システム系論論⽂文輪輪読会(論論⽂文読み会)  主催
–  お菓⼦子作り(写真は古いですが、なんとか継続してます)
3
概要
l  発表概要
l  Go 1.5の開発ステータス
l  Go 1.5の新機能、変更更点
l  未リリースのリリースノートの先取り
–  Shared Library
–  Execution Tracing
–  Concurrent GC
–  Vendoring
l  Go 1.5を使ってみる
l  Goの開発を追うには
l  まとめ
4	
https://github.com/golang-samples/gopher-vector
より Creative Commons 3.0
発表概要
l  発表の主な対象者
–  Go⾔言語ユーザ(開発者)
–  Go製ツールのユーザも(好)影響ありそう
l  ※注意点:このスライド作成時点では、Go  1.5は未リリースでもあるのと、
私の調査不不⾜足が原因で記述が不不正確である可能性があります
l  Go  1.5について個⼈人的に気になる新機能/Release  notesをピックアップした
l  この資料料は「The  State  of  Go  (May)」とGolang  githubらを辿った要旨・各
種資料料へのポインタだと思って使っていただければ
–  https://talks.golang.org/2015/state-‐‑‒of-‐‑‒go-‐‑‒may.slide#1
–  https://github.com/golang/go/blob/master/doc/go1.5.html
5
Go  1.5の開発ステータス
l  Go  1.5リリースは2015年年8⽉月1⽇日予定  現在(7⽉月)からあと約1ヶ⽉月先!  
–  5⽉月時点で⼤大幅な作業は終わっていて、feature  freezeに⼊入っているらしい  
–  ここまで、The  State  of  Go  からの情報
–  締め切切りが正確なら、近⽇日Release  Candidateが出るかもしれないと想像
l  Goは1.5から年年2回リリースのリリース計画となった
–  2⽉月1⽇日、8⽉月1⽇日の半年年ごとのメジャー(1.x)  リリース
–  3ヶ⽉月は開発、3ヶ⽉月はtesting(feature  freeze)の期間を取る
–  http://golang.org/s/releasesched
6
Go  1.5で注⽬目したい新機能・⼤大きな差分
l  未リリースであるが、リポジトリ中のリリースノートから抜粋
l  期待の新機能
–  Shared  Library
–  Execution  Tracing  (go  trace  コマンド)
–  Concurrent  Garbage  Collection
–  “vendoring”  external  package
l  気になる差分
–  ツールチェーンからC⾔言語を排除(Go  1.5のビルドにGo  1.4以降降が必要)
u  https://talks.golang.org/2015/gogo.slide#1
u  https://golang.org/s/go13compiler
u  Go  1.5のブートストラップ化を⽬目指すGoogle
‒  http://www.infoq.com/jp/news/2015/02/golang-‐‑‒15-‐‑‒bootstrapped
7
Go  1.5の差分
l  GOMAXPROCS環境変数がデフォルトでCPUコア数になった
l  internal  packageの⾔言語ユーザへの導⼊入
–  http://qiita.com/taka011239@github/items/5735a1ec78bad06f5485
–  http://golang.org/s/go14internal
l  前述の通りリリース計画が変更更で、半年年ごとの年年2回リリースになった
l  ⾔言語の⼩小さな変更更点
l  などなど
8
Shared  Library
l  buildmodeというコマンドラインオプションが新たに追加され、shared  objec
tの⽣生成が可能になった
–  $  go  build  –buildmode=shared  〜~略略〜~
l  buildmode  (go  help  buildmodeの⼀一部をざっくり説明)
–  archive:  mainパッケージ以外を.aファイルにビルドする
–  c-‐‑‒archive: mainと必要なパッケージをC⽤用のアーカイブにビルドする。Goソース中
で“//export  funcname”  マークが必要
–  c-‐‑‒shared: c-‐‑‒archiveのshared  library作成版
–  shared: mainパッケージ以外をshared  library化して、-‐‑‒linksharedオプション
でリンクできるようにする
l  Golang  で  Shared  Library  を出⼒力力する。  -‐‑‒  Qiita
l  Go  Execution  Modes
l  Thanks  pepshiso!
9
Execution  Tracing
l  fine-‐‑‒grained  (細かい粒粒度度)でのパフォーマンスモニタリングができるように
なったらしい
l  監視できるstats:それぞれの開始時間と、要した時間
–  Heap(GC)
–  Goroutine
–  スレッド
–  GoのProcessorごとでのプロファイル
u  システムコールの呼び出し・スタックトレース
l  提案ドキュメントではnetwork  IOも対象だったが、パッチを⾒見見るとIO監視は
確認できなかった
l  Go  Execution  Tracer:  http://golang.org/s/go15trace
l  Groupsのスレッドでは、AMD  Code  AnalystやIntel  VTuneを意識識している発⾔言
も
10
“vendoring”  external  package
l  Go⾔言語における  import  (go  get)のバージョン問題に対する実験的取り組み
l  Goユーザの⼈人はご存じの通り、Goは依存する外部ライブラリのバージョン指
定する機能を提供してない
–  これを解決するためにGodepコマンドのようなhackがある
–  Go公式でvendoring(依存リポジトリを⾃自分のリポジトリに含める)⽅方法が実験的
にサポートされるようになる
l  vendoringの詳細は次のNakashimaさんのエントリがかなり詳しい
l  Go⾔言語のDependency/Vendoringの問題と今後.gbあるいはGo1.5  |  SOTA
–  http://deeeet.com/writing/2015/06/26/golang-‐‑‒dependency-‐‑‒vendoring/
l  https://golang.org/s/go15vendor
11
Concurrent  GC
l  GCはStop  the  worldとConcurrent  GCのハイブリッドを前から採⽤用していた。
1.5ではstop  the  worldからconcurrent  collectorになってGCによる停⽌止期間
を改善した様⼦子
–  GCのレイテンシを10ms以下を⽬目標としている
l  GCによる停⽌止期間を短く、その代わりCPUとメモリ消費が少し増加
l  ほとんどのケースでgoroutineの並列列時のCPU使⽤用効率率率が上がるらしい
l  デザインドキュメントあります(あまり読んでません)
–  https://golang.org/s/go14gc
–  https://golang.org/s/go15gcpacing
l  Go  1.5以降降のガベージコレクタについてのプラン  –  Qiita
–  http://qiita.com/ruiu/items/40a1d362417808c690a8
12
Go  1.5を使ってみる
l  ビルドは簡単
–  Go  1.5  以降降のビルド⼿手順  –  Qiita
–  http://qiita.com/orociic/items/b285cf205f75b7291a9d
l  trace  コマンドを紹介(Execution  Tracing)
–  $  go  test  -‐‑‒trace=/tmp/trace  -‐‑‒run=BenchName-‐‑‒bench=BenchName  –cpu=4
–  $  PATH=trace-‐‑‒viewer/tracing:$PATH  trace  -‐‑‒http=localhost:9876  path/to/
testbinary.test  /tmp/trace
–  解説:  http://golang.org/s/go15trace
13
traceの例例
14
Goの開発を追うには
l  開発者による発表資料料が公開されているので読む(リンクも辿る)
–  https://talks.golang.org
l  Design  Documentが公開されているので読む
l  Google  Groupsのgolang-‐‑‒devを⾒見見る
–  https://groups.google.com/forum/#!forum/golang-‐‑‒dev
l  githubのリポジトリ、issueを⾒見見る
–  今回は幸いにもリリース間近だったため、作成途中のリリースノートを参照できた
–  https://github.com/golang/go
15
まとめと感想
l  Go  1.5の新機能/変更更点を8⽉月予定のリリースに先⾏行行して紹介した
l  情報を調べるにあたって既存スライド、リポジトリ、Design  Documentなど
開発のコア・近しい情報源をあたった
–  1.5リリース後になれば、⽇日本語での資料料やまとめも増えてくると考えられる
l  Go⾔言語ランタイム/コンパイラの開発スタイルは今回の調査で把握した
–  Design  Documentを書いてGoogle  Groupsでコメントを募る形で議論論が進む
–  (よく読んでないが)「Contribution  Guidelines」もある
u  https://golang.org/doc/contribute.html
16

Mais conteúdo relacionado

Mais procurados

Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
 
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
 
ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発
Yuya Oka
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
Shinya Okano
 

Mais procurados (20)

スクレイピングとPython
スクレイピングとPythonスクレイピングとPython
スクレイピングとPython
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
Chainer meetup
Chainer meetupChainer meetup
Chainer meetup
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
 
Mrubyの始め方
Mrubyの始め方Mrubyの始め方
Mrubyの始め方
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LT
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編- Pythonによるwebアプリケーション入門 - Django編-
Pythonによるwebアプリケーション入門 - Django編-
 
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれから
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ初心者が Python で戸惑ったところ
初心者が Python で戸惑ったところ
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発ユニットテストと始める始める安全なPythonライブラリ開発
ユニットテストと始める始める安全なPythonライブラリ開発
 
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
 

Destaque

PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
Preferred Networks
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
Preferred Networks
 

Destaque (20)

イノベーションことはじめ
イノベーションことはじめイノベーションことはじめ
イノベーションことはじめ
 
PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習
PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習
PFNインターン最終発表: 怪我をしても歩ける6足歩行ロボットの学習
 
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
実世界の人工知能 〜交通,製造業,バイオヘルスケア〜
 
実世界の人工知能@DeNA TechCon 2017
実世界の人工知能@DeNA TechCon 2017 実世界の人工知能@DeNA TechCon 2017
実世界の人工知能@DeNA TechCon 2017
 
IPAB2017 深層学習を使った新薬の探索から創造へ
IPAB2017 深層学習を使った新薬の探索から創造へIPAB2017 深層学習を使った新薬の探索から創造へ
IPAB2017 深層学習を使った新薬の探索から創造へ
 
特許をとろう (15/09/17 pfiセミナー )
特許をとろう (15/09/17 pfiセミナー )特許をとろう (15/09/17 pfiセミナー )
特許をとろう (15/09/17 pfiセミナー )
 
ledgerで経理
ledgerで経理ledgerで経理
ledgerで経理
 
systemdを始めよう
systemdを始めようsystemdを始めよう
systemdを始めよう
 
Chainerで流体計算
Chainerで流体計算Chainerで流体計算
Chainerで流体計算
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告Amazon Picking Challenge 結果報告
Amazon Picking Challenge 結果報告
 
対話における商品の営業
対話における商品の営業対話における商品の営業
対話における商品の営業
 
音声認識と深層学習
音声認識と深層学習音声認識と深層学習
音声認識と深層学習
 
Deep Learningと自然言語処理
Deep Learningと自然言語処理Deep Learningと自然言語処理
Deep Learningと自然言語処理
 
ディープラーニングが活かすIoT
ディープラーニングが活かすIoTディープラーニングが活かすIoT
ディープラーニングが活かすIoT
 
ディープラーニングの最新動向
ディープラーニングの最新動向ディープラーニングの最新動向
ディープラーニングの最新動向
 
PFI Corporate Profile
PFI Corporate ProfilePFI Corporate Profile
PFI Corporate Profile
 
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
PFIセミナー 2013/09/19 「Linux開発環境の自動構築」
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
 
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォームJubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
Jubatus: 分散協調をキーとした大規模リアルタイム機械学習プラットフォーム
 

Semelhante a 先取り Go1.5

The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
 
はじめてがアジャイル
はじめてがアジャイルはじめてがアジャイル
はじめてがアジャイル
Kenichi Takahashi
 

Semelhante a 先取り Go1.5 (20)

オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
 
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンドGo言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンド
 
オープンソースを活用したフロントエンド開発の取り組み
オープンソースを活用したフロントエンド開発の取り組みオープンソースを活用したフロントエンド開発の取り組み
オープンソースを活用したフロントエンド開発の取り組み
 
Chrome Devtools for beginners (v1.1)
Chrome Devtools for beginners (v1.1)Chrome Devtools for beginners (v1.1)
Chrome Devtools for beginners (v1.1)
 
社内勉強会1 go lang
社内勉強会1 go lang 社内勉強会1 go lang
社内勉強会1 go lang
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
はじめてがアジャイル
はじめてがアジャイルはじめてがアジャイル
はじめてがアジャイル
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)
 
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼンOSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
 
Next-L Enju Leaf 1.1.0 リリースに向けて
Next-L Enju Leaf 1.1.0 リリースに向けてNext-L Enju Leaf 1.1.0 リリースに向けて
Next-L Enju Leaf 1.1.0 リリースに向けて
 
LibreOfficeの最新動向 - コミュニティとプロダクトの面から - / Current status of LibreOffice - Commu...
LibreOfficeの最新動向 - コミュニティとプロダクトの面から - / Current status of LibreOffice - Commu...LibreOfficeの最新動向 - コミュニティとプロダクトの面から - / Current status of LibreOffice - Commu...
LibreOfficeの最新動向 - コミュニティとプロダクトの面から - / Current status of LibreOffice - Commu...
 
ODF PlugFestを味見しよう/Tasting Odf plug fest
ODF PlugFestを味見しよう/Tasting Odf plug festODF PlugFestを味見しよう/Tasting Odf plug fest
ODF PlugFestを味見しよう/Tasting Odf plug fest
 
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しようgit初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
 
LibreOfficeのQA事情 2015-06-27
LibreOfficeのQA事情 2015-06-27LibreOfficeのQA事情 2015-06-27
LibreOfficeのQA事情 2015-06-27
 
10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ OSC2013 Nagoya10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ OSC2013 Nagoya
 
Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門
 
(KOF2017) LibreOffice development activities: QA and Translation
(KOF2017) LibreOffice development activities: QA and Translation(KOF2017) LibreOffice development activities: QA and Translation
(KOF2017) LibreOffice development activities: QA and Translation
 

Mais de Preferred Networks

Mais de Preferred Networks (20)

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
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
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
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
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
 
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
 
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
 
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
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...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
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...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
 
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...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
 
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
 

Último

Último (12)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

先取り Go1.5

  • 2.
  • 3. ⾃自⼰己紹介 l  柏原秀蔵 (@suma90h) (Preferred Networks) l  最近:Go⾔言語を書いてます l  最近の活動 –  システム系論論⽂文輪輪読会(論論⽂文読み会)  主催 –  お菓⼦子作り(写真は古いですが、なんとか継続してます) 3
  • 4. 概要 l  発表概要 l  Go 1.5の開発ステータス l  Go 1.5の新機能、変更更点 l  未リリースのリリースノートの先取り –  Shared Library –  Execution Tracing –  Concurrent GC –  Vendoring l  Go 1.5を使ってみる l  Goの開発を追うには l  まとめ 4 https://github.com/golang-samples/gopher-vector より Creative Commons 3.0
  • 5. 発表概要 l  発表の主な対象者 –  Go⾔言語ユーザ(開発者) –  Go製ツールのユーザも(好)影響ありそう l  ※注意点:このスライド作成時点では、Go  1.5は未リリースでもあるのと、 私の調査不不⾜足が原因で記述が不不正確である可能性があります l  Go  1.5について個⼈人的に気になる新機能/Release  notesをピックアップした l  この資料料は「The  State  of  Go  (May)」とGolang  githubらを辿った要旨・各 種資料料へのポインタだと思って使っていただければ –  https://talks.golang.org/2015/state-‐‑‒of-‐‑‒go-‐‑‒may.slide#1 –  https://github.com/golang/go/blob/master/doc/go1.5.html 5
  • 6. Go  1.5の開発ステータス l  Go  1.5リリースは2015年年8⽉月1⽇日予定  現在(7⽉月)からあと約1ヶ⽉月先!   –  5⽉月時点で⼤大幅な作業は終わっていて、feature  freezeに⼊入っているらしい   –  ここまで、The  State  of  Go  からの情報 –  締め切切りが正確なら、近⽇日Release  Candidateが出るかもしれないと想像 l  Goは1.5から年年2回リリースのリリース計画となった –  2⽉月1⽇日、8⽉月1⽇日の半年年ごとのメジャー(1.x)  リリース –  3ヶ⽉月は開発、3ヶ⽉月はtesting(feature  freeze)の期間を取る –  http://golang.org/s/releasesched 6
  • 7. Go  1.5で注⽬目したい新機能・⼤大きな差分 l  未リリースであるが、リポジトリ中のリリースノートから抜粋 l  期待の新機能 –  Shared  Library –  Execution  Tracing  (go  trace  コマンド) –  Concurrent  Garbage  Collection –  “vendoring”  external  package l  気になる差分 –  ツールチェーンからC⾔言語を排除(Go  1.5のビルドにGo  1.4以降降が必要) u  https://talks.golang.org/2015/gogo.slide#1 u  https://golang.org/s/go13compiler u  Go  1.5のブートストラップ化を⽬目指すGoogle ‒  http://www.infoq.com/jp/news/2015/02/golang-‐‑‒15-‐‑‒bootstrapped 7
  • 8. Go  1.5の差分 l  GOMAXPROCS環境変数がデフォルトでCPUコア数になった l  internal  packageの⾔言語ユーザへの導⼊入 –  http://qiita.com/taka011239@github/items/5735a1ec78bad06f5485 –  http://golang.org/s/go14internal l  前述の通りリリース計画が変更更で、半年年ごとの年年2回リリースになった l  ⾔言語の⼩小さな変更更点 l  などなど 8
  • 9. Shared  Library l  buildmodeというコマンドラインオプションが新たに追加され、shared  objec tの⽣生成が可能になった –  $  go  build  –buildmode=shared  〜~略略〜~ l  buildmode  (go  help  buildmodeの⼀一部をざっくり説明) –  archive:  mainパッケージ以外を.aファイルにビルドする –  c-‐‑‒archive: mainと必要なパッケージをC⽤用のアーカイブにビルドする。Goソース中 で“//export  funcname”  マークが必要 –  c-‐‑‒shared: c-‐‑‒archiveのshared  library作成版 –  shared: mainパッケージ以外をshared  library化して、-‐‑‒linksharedオプション でリンクできるようにする l  Golang  で  Shared  Library  を出⼒力力する。  -‐‑‒  Qiita l  Go  Execution  Modes l  Thanks  pepshiso! 9
  • 10. Execution  Tracing l  fine-‐‑‒grained  (細かい粒粒度度)でのパフォーマンスモニタリングができるように なったらしい l  監視できるstats:それぞれの開始時間と、要した時間 –  Heap(GC) –  Goroutine –  スレッド –  GoのProcessorごとでのプロファイル u  システムコールの呼び出し・スタックトレース l  提案ドキュメントではnetwork  IOも対象だったが、パッチを⾒見見るとIO監視は 確認できなかった l  Go  Execution  Tracer:  http://golang.org/s/go15trace l  Groupsのスレッドでは、AMD  Code  AnalystやIntel  VTuneを意識識している発⾔言 も 10
  • 11. “vendoring”  external  package l  Go⾔言語における  import  (go  get)のバージョン問題に対する実験的取り組み l  Goユーザの⼈人はご存じの通り、Goは依存する外部ライブラリのバージョン指 定する機能を提供してない –  これを解決するためにGodepコマンドのようなhackがある –  Go公式でvendoring(依存リポジトリを⾃自分のリポジトリに含める)⽅方法が実験的 にサポートされるようになる l  vendoringの詳細は次のNakashimaさんのエントリがかなり詳しい l  Go⾔言語のDependency/Vendoringの問題と今後.gbあるいはGo1.5  |  SOTA –  http://deeeet.com/writing/2015/06/26/golang-‐‑‒dependency-‐‑‒vendoring/ l  https://golang.org/s/go15vendor 11
  • 12. Concurrent  GC l  GCはStop  the  worldとConcurrent  GCのハイブリッドを前から採⽤用していた。 1.5ではstop  the  worldからconcurrent  collectorになってGCによる停⽌止期間 を改善した様⼦子 –  GCのレイテンシを10ms以下を⽬目標としている l  GCによる停⽌止期間を短く、その代わりCPUとメモリ消費が少し増加 l  ほとんどのケースでgoroutineの並列列時のCPU使⽤用効率率率が上がるらしい l  デザインドキュメントあります(あまり読んでません) –  https://golang.org/s/go14gc –  https://golang.org/s/go15gcpacing l  Go  1.5以降降のガベージコレクタについてのプラン  –  Qiita –  http://qiita.com/ruiu/items/40a1d362417808c690a8 12
  • 13. Go  1.5を使ってみる l  ビルドは簡単 –  Go  1.5  以降降のビルド⼿手順  –  Qiita –  http://qiita.com/orociic/items/b285cf205f75b7291a9d l  trace  コマンドを紹介(Execution  Tracing) –  $  go  test  -‐‑‒trace=/tmp/trace  -‐‑‒run=BenchName-‐‑‒bench=BenchName  –cpu=4 –  $  PATH=trace-‐‑‒viewer/tracing:$PATH  trace  -‐‑‒http=localhost:9876  path/to/ testbinary.test  /tmp/trace –  解説:  http://golang.org/s/go15trace 13
  • 15. Goの開発を追うには l  開発者による発表資料料が公開されているので読む(リンクも辿る) –  https://talks.golang.org l  Design  Documentが公開されているので読む l  Google  Groupsのgolang-‐‑‒devを⾒見見る –  https://groups.google.com/forum/#!forum/golang-‐‑‒dev l  githubのリポジトリ、issueを⾒見見る –  今回は幸いにもリリース間近だったため、作成途中のリリースノートを参照できた –  https://github.com/golang/go 15
  • 16. まとめと感想 l  Go  1.5の新機能/変更更点を8⽉月予定のリリースに先⾏行行して紹介した l  情報を調べるにあたって既存スライド、リポジトリ、Design  Documentなど 開発のコア・近しい情報源をあたった –  1.5リリース後になれば、⽇日本語での資料料やまとめも増えてくると考えられる l  Go⾔言語ランタイム/コンパイラの開発スタイルは今回の調査で把握した –  Design  Documentを書いてGoogle  Groupsでコメントを募る形で議論論が進む –  (よく読んでないが)「Contribution  Guidelines」もある u  https://golang.org/doc/contribute.html 16