タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

algorithmとgolangに関するttakezawaのブックマーク (4)

  • Getting to Go: The Journey of Go's Garbage Collector - The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    Getting to Go: The Journey of Go's Garbage Collector - The Go Programming Language
  • Goptunaを使ったGo言語におけるベイズ最適化の活用 | Research Blog

    はじめに 形状のわからない関数(ブラックボックス関数)の最大値あるいは最小値を求める手法として、ベイズ最適化が広く利用されています。機械学習モデルのハイパーパラメーター最適化を中心に活用が進んでいますが、入力とそれに対する評価値さえ設計できればあらゆる問題に適用できます。 例えばFacebookでは、MLモデルのチューニングはもちろん、映像コーデックのエンコードパラメーター 1、AR/VRハードウェア設計、HHVM JITコンパイラのパラメーターチューニングにベイズ最適化を適用するため BoTorch や Axの開発を進めています (F8 2019の発表 Product Optimization with Adaptive Experimentation を参照)。 弊社では多くのサーバーシステムでGo言語が採用されていますが、サーバーのgoroutine数やキャッシュシステムのメモリーバ

  • GolangのGCを追う

    Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe

  • Goでスケールする実装を書く

    スケールする実装を書くためのガイド スケールするために 並列度とアムダールの法則 べき等参照透過性 Lock-FreeとWait-Free アトミックアクセス ロックの局所化 並列度とアムダールの法則 時間単位の場合は繰り返し処理のトータル時間に対し、 並列処理を妨げない処理時間の割合を「並列度」という。 (コードプロファイルを使って求める場合もあるが、 比較的単純なコードでないと計算が複雑になりやすい。) p 並列度 n 並列数 性能比 1/((1-p)+p/n) p=0.9のとき4倍の性能を得るにはn=6が必要。 n=5で4倍の性能を得るにはp=0.938が必要。 n=無限大とすると、性能比は以下の式におちつく。 理論上の性能向上限界 = 1/(1-p) 並列度90%の処理をどれだけ多数コアに分散しても理論上10倍処理効率が限界。 並列度95%の処理をどれだけ多数コアに分散しても理論上

  • 1