coding-julia について
coding-julia は、科学計算、データ分析、GPU 処理向けの Julia プログラミングスキルです。多重ディスパッチ、型システム、メタプログラミング、パッケージ管理などを扱います。
主な機能
- 01多重ディスパッチと型システム
- 02マクロとメタプログラミング
- 03Pkg による依存関係管理
- 04科学計算と線形代数
- 05CUDA.jl による GPU 計算
活用シーン
- 01数値シミュレーションの作成
- 02データ分析ワークフローの実行
- 03NVIDIA GPU による計算の高速化
- 04Julia プロジェクトの依存関係管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill coding-juliaインストール後、Claude Code で/coding-juliaを入力して読み込まれたか確認します。
詳細
coding-julia
目的
このスキルは、複数ディスパッチやメタプログラミングなどの機能を活用した高性能な科学技術計算、データ分析、GPU アクセラレーションを中心に、Julia のプログラミングタスクに対応できるよう AI を支援します。
使用する場面
数値シミュレーション、データサイエンスのワークフロー、GPU アクセラレーションを活用した計算、効率的な型システムやパッケージ管理が必要な場合に、このスキルを使用してください。特に CUDA.jl などのライブラリを使った機械学習モデルや大規模なデータ処理など、迅速なプロトタイピングが求められる場面で活用してください。
主な機能
- 複数ディスパッチ:引数の型に応じて動作が異なる関数を定義できます。たとえば、数値演算を最適化できます。
- 型システム:パラメトリック型やユニオン型を活用した型安全なコードにより、科学技術アプリケーションでのエラーを減らせます。
- メタプログラミング:
@timeによるパフォーマンスのプロファイリングなど、マクロを使って実行時にコードを生成できます。 - Pkg:組み込みのパッケージマネージャーを使って依存関係を管理し、簡単にインストールやバージョン管理を行えます。
- 科学技術計算:線形代数(例:LinearAlgebra.jl)や最適化のライブラリと連携できます。
- GPU サポート:CUDA.jl を使って NVIDIA GPU 上で並列計算を行い、高スループットが求められるタスクに対応できます。
使用パターン
タスクを実行するには、REPL またはスクリプトから Julia を呼び出します。対話型セッションを開始するには、ターミナルでjuliaを実行します。プロジェクト環境を使って環境を分離します。julia --project=.で環境を作成し、using Pkg; Pkg.activate(".")で有効化します。メタプログラミングでは、繰り返しのコードを自動化するマクロを定義します。データを扱う場合は、まずusing DataFramesのようにパッケージを読み込み、その後ループや関数で処理を行います。パフォーマンスを高めるため、function compute(x::Float64) ... endのように、必ず型を指定してください。
よく使うコマンド/API
- パッケージ管理:
using Pkg; Pkg.add("CUDA")で CUDA.jl をインストールし、Pkg.rm("CUDA")で削除します。 - REPL コマンド:
juliaで対話モードに入り、?function_nameでヘルプを表示します。Ctrl+D で終了します。 - CLI フラグ:
julia --project=env_name script.jlで特定の環境を使ってスクリプトを実行し、最適化には-O3を追加します。 - API の例:複数ディスパッチでは、次のように記述します:
function add(a::Int, b::Int) return a + b end; add(1, 2) # Returns 3。 - コードスニペット:行列演算:
using LinearAlgebra; A = rand(3,3); eigenvalues = eigen(A).values。 - 設定形式:依存関係を設定するには Project.toml を編集します。例:
[deps] CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"を追加します。正確なバージョンを記録するには Manifest.toml を使います。
統合に関する注意
IJulia.jl を使って Jupyter ノートブックに組み込むことで、Julia をプロジェクトに統合できます。まずusing Pkg; Pkg.add("IJulia")でインストールし、次にターミナルからjulia -i -e 'using IJulia; notebook()'を実行して起動します。外部ツールと連携するには、ccall を使って Julia を C ライブラリに接続します。例:ccall((:function_name, "libname"), ReturnType, (ArgTypes,), args...)。GPU を使う場合は、CUDA ドライバーがインストールされていることを確認し、$CUDA_PATH=/usr/local/cudaのようにパス用の環境変数を設定します。ウェブサービスでは、HTTP.jl でリクエストを送信する前に、ENV["API_KEY"] = $SERVICE_API_KEYのように環境変数を介して API キーを渡します。
エラー処理
エラーを処理するには、try-catch ブロックを使います:try; risky_operation(); catch e; println("Error: ", e) end。@assert condition "Message"でアサーションを確認できます。条件が false の場合、エラーがスローされます。パッケージの問題については、Pkg.status()を実行して依存関係を確認し、Pkg.update()で更新して競合を解決します。GPU コードでは、カーネルの起動後にCUDA.device_synchronize()を実行して CUDA のエラーを確認します。デバッグのため、必ずエラーを記録します。例:Logging.jl を使ってusing Logging; @info "Starting computation"を実行します。
使用例
- 多重ディスパッチによる行列積: 行列積を効率的に計算するには、次のようにします:
function multiply(A::Matrix, B::Matrix) return A * B end; A = rand(1000,1000); result = multiply(A, A) # Handles large arrays via dispatch。 - GPU アクセラレーションによる計算: GPU で並列に合計を計算するには、まず CUDA.jl を追加します:
using Pkg; Pkg.add("CUDA"); using CUDA; d_a = CuArray([1,2,3]); result = sum(d_a) # Offloads to GPU for speed。
グラフ上の関連性
- 関連:coding-python(NumPy 相当の科学計算ツールを共有)、coding-r(データサイエンスのパイプラインで共通)。
- タグによる関連:julia(直接一致)、scientific(データサイエンスのスキルと関連)、data-science(coding-r および coding-python と重複)、coding(すべての coding-* スキルとのクラスター関係)。