Skip to content

Instantly share code, notes, and snippets.

View stanaka2's full-sized avatar

Satoshi Tanaka stanaka2

  • SDS, Hitotsubashi University
  • 20:55 (UTC +09:00)
View GitHub Profile

HeFFTe インストールメモ

  • 3D FFTライブラリ

  • https://github.com/icl-utk-edu/heffte

  • PFFTなどの2D FFTライブラリは(Nx,Ny,Nz)プロセスの計算で自分でうまくデータ分散させないと(Nx,Ny)プロセスのペンシル形状しか使えない

  • 3D FFTライブラリはライブラリ側で $Nx\timesNy\timesNz$ の全部のプロセスを使って2D FFTを効率的に行うデータ領域の設定、転置などを行ってくれる

  • 自身で2D FFTライブラリでフルにプロセスを使い切るような面倒な事前、事後の設定をうまいことやってくれる

@stanaka2
stanaka2 / xi2D.md
Last active July 4, 2025 09:07
2D相関関数計算メモ

2D相関関数 $\xi(s_\perp, s_\parallel)$の数値計算メモ

  • 相関関数というかペアカウントでのビニングに関するメモ
  • このページでは視線方向(LoS)は $z$ 方向
$$\begin{align*} s &= \sqrt{dx^2 + dy^2 + dz^2} , \\\ s_\parallel &= dz , \\\ s_\perp &= \sqrt{s^2 - s_\parallel^2} = \sqrt{dx^2 + dy^2} , \\$$$$
@stanaka2
stanaka2 / programming_tips.md
Last active June 30, 2025 14:29
programming tips

Programming Tips

C++

インデックス計算

  • インデックス計算の際は下限上限の枠からはみ出る計算は通常の整数キャストではなく、床関数floorを使ったうえで整数キャストを行わないとバグる
  • int(-0.5)=0int(floor(-0.5))=int(-1.0)=-1の違い
@stanaka2
stanaka2 / Experimental_design.md
Created June 19, 2025 05:22
Experimental designメモ

Experimental design

  • 実験計画(experimental design)は、シミュレーションや機械学習での効率的なパラメータ探索において重要な役割を果たす
  • どのデザインがいいかはケースバイケース
  • 代表的なデザイン
    • グリッドサンプリング(ここでは触れない)
    • モンテカルロサンプリング(Monte Carlo Sampling, MCS)
    • ラテン超方格サンプリング(Latin Hypercube Sampling, LHS)
    • 準モンテカルロサンプリング(Quasi-Monte Carlo Sampling, QMC)
  • サンプリング手法の性質(均一性、均等性、ランダム性)や収束保証の観点から比較・整理する
@stanaka2
stanaka2 / jax_vs_torch.md
Last active May 12, 2025 04:20
JAX vs PyTorch

JAXとPyTrochの比較

JAXについて

  • https://docs.jax.dev/en/latest/
  • https://github.com/jax-ml/jax GitHub stars
  • JAXは、式を自動微分に対応させたうえでJIT(Just-in-time)コンパイルによりGPUやTPUへの最適化を簡便に行えるようにしたライブラリ
  • 基本は関数型プログラミング志向で、状態を持たない
  • JAX本体には高レベルAPIはあまり含まれず、必要な分野のモジュールと組み合わせて使う
  • Flax : JAX公式MLモジュール
@stanaka2
stanaka2 / slidev.md
Created April 30, 2025 00:47
slidevのメモ

Slidevのメモ

インストール

  • Node.jsをインストール https://nodejs.org/
  • npmコマンドが使えるようになったら以下を実行。ユーザー権限でいい。

npm install -g prettier

@stanaka2
stanaka2 / gmail_memo.md
Created April 24, 2025 02:24
大学のgmailアドレスを個人のgmailアカウントから送るメモ

大学のGmailを個人アカウントに追加する際のメモ

  • 大学のGmailを個人アカウントに追加する際に思いの外面倒くだったので
  • 5.の段階で二段階認証をせずに2段階認証を設定せずにひたすらGoogleのログインパスワードを使っていたのがダメだった
  • 以下、chatGPTに聞いた内容を貼っているだけ

画像ありがとうございます。この画面は **Gmailの「他のメールアドレスから送信できるようにする」機能(SMTP経由の外部送信)**の設定ですね。

@stanaka2
stanaka2 / add_new_user.md
Last active April 21, 2025 08:46
サーバーに新規ユーザーを追加する際のメモ

サーバーに新規ユーザーを追加する際のメモ

  • 新規ユーザー追加は特に難しいことはないが、別途NASがある場合にはUID, GIDが揃っていないとあとから面倒
  • 固定のUID,GIDでユーザー作成してssh鍵を置くファイルを作って権限設定までのメモ
  • 以下のコマンドは基本的に管理者権限が必要

ユーザー追加

  • new_userUID, GID1005にしてデフォルトのシェルをbashにする方法
@stanaka2
stanaka2 / python_env.md
Last active April 8, 2025 01:27
Pythonの仮想環境メモ

Pythonの仮想環境メモ

いろいろあるけどここではpyenvで特定のバージョンのpythonを入れてvenvでそのバージョンの仮想環境を作る。

以下、ユーザー権限で実行可能。

pyenv

  • pythonのバージョン管理システム
@stanaka2
stanaka2 / slurm_install.md
Last active March 8, 2025 16:45
Slurmインストールメモ

Slurmインストールメモ

Ubuntu 22.04.4 LTS x86_64に単一ノードにGPUが4枚載っている環境を想定

パッケージインストール

  • ソースからビルドだとめんどくさいのでパッケージ管理システムから導入
sudo apt install slurm-client slurm-wlm