Skip to content

Instantly share code, notes, and snippets.

@sile
sile / rfc_2113.md
Last active Oct 25, 2021
Rustの『RFC 2113: dynトレイト構文』の要約メモ
@sile
sile / README.md
Last active Oct 24, 2021
Optunaを使ってFFmpegのエンコードパラメータを最適化してみる
View README.md

概要

  • Optunaというハイパーパラメータ最適化ツールを使って、FFmpegでの動画エンコードパラメータの最適化を試してみた結果のメモ
  • 具体的には、決められた制約(後述)下で、画質(SSIM)を最大化するようなパラメータ群を自動で見つけ出すのが目的
  • 結果としては、
    • 画質的には、FFmpegが提供しているプリセットの中で二番目に重いもの(slower)より若干良い程度のパラメータ群が見つかった
    • また、Optunaが見つけたパラメータ群の方がslowerに比べて、CPU負荷が小さかった

方針

@sile
sile / HCLHLock_lock.md
Last active Oct 15, 2021
A Hierarchical CLH Queue Lock
View HCLHLock_lock.md
//** 『The Art of Multiprocessor Programming』七章
//** A Hierarchical CLH Queue Lock **//
//
// HCLHLock::lock()の実装書き換え例
// (分かりやすさを重視しているため若干不正確な可能性がある)

public void lock() {
    QNode myNode = currNode.get();
    AtomicReference<QNode> localQueue = localQueues.get(ThreadId.getCluster());
@sile
sile / 0_raft.md
Last active Jul 21, 2021
Raft(分散合意アルゴリズム)について
View 0_raft.md
@sile
sile / rfc_1859.md
Last active Jul 9, 2021
Rustの『RFC 1859: Tryトレイト』の要約メモ
@sile
sile / pfds-ch1.md
Last active Jun 24, 2021
Purely Functional Data Structures: 第1章
View pfds-ch1.md

序文

  • 筆者はもともとC/Pascal/Adaを書いていた
  • Standard MLを書くようになり、手続き型のデータ構造を(SMLに)変換してみた
    • 幾つかのデータ構造は、簡単に変換でき、より簡潔にもなった
    • ただし、必ずしも全てのデータ構造が簡単に変換できる訳ではなかった
      • 破壊的な更新が使いたい! (けどStandard MLにはないのでどうすれば...)
      • 文献調査したけど、ほとんど情報が見つからなかった
      • 自分で研究を始めた
@sile
sile / 0_succ_bp.md
Last active Mar 1, 2021
簡潔データ構造やBalancedParenthesesの紹介資料メモ
View 0_succ_bp.md

発表資料メモ: 簡潔データ構造について

  1. 主題

  • 数千万オーダーの文字列集合(およびマップ)を如何にサイズ効率良く表現するか、の話
    • 諸事情で集合をメモリ上に保持したいことがあるが、サイズは節約したい
    • 実際にはサイズのみを追求するのではなく、諸々のトレードオフを加味しつつバランスを取る
  • 今回はそれを実現するための方法の一つである 簡潔データ構造 について説明する:
@sile
sile / rfc.md
Last active Feb 17, 2021
Rustの『RFC 2033: 実験的なコルーチン』の要約メモ
@sile
sile / damps-06.md
Last active Jan 20, 2021
Distributed Algorithms for Message-Passing Systems: 第六章
View damps-06.md

第二部 分散システムでの論理時間とグローバル状態

第二部は四章からなり、以下の内容を扱っている:

  • 分散計算の、イベント/ローカル状態/グローバル状態、の概念
  • それらに関連した論理時間について
  • => __信頼可能な__分散システム上での非同期分散計算の性質を考察する上で基礎となる概念

六章:

  • プロセスのイベント群の部分順序によって、分散計算を表現する方法
@sile
sile / basic-benchmark.sh
Last active Sep 24, 2020
kurobako blog: basic-benchmark.sh
View basic-benchmark.sh
# 1. Download kurobako binary.
$ curl -L https://github.com/sile/kurobako/releases/download/0.2.6/kurobako-0.2.6.linux-amd64 -o kurobako
$ chmod +x kurobako && sudo mv kurobako /usr/local/bin/
# 2. Download the data file for HPOBench (note that the file size is about 700MB).
$ curl -OL http://ml4aad.org/wp-content/uploads/2019/01/fcnet_tabular_benchmarks.tar.gz
$ tar xf fcnet_tabular_benchmarks.tar.gz && cd fcnet_tabular_benchmarks/
# 3. Specify problems used in this benchmark.
#