**パーマコンピューティング**

2026/02/17 21:40

**パーマコンピューティング**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Permacomputing(パーマコンピューティング) は、計画的な陳腐化ではなく、長寿命・低エネルギー使用・資源再利用を優先するハードウェア設計のアプローチです。

主要実践
Frugal Computing(フラグルコンピューティング):本当に必要なリソースだけを使用します。
Salvage Computing(サバイジコンピューティング):既に生産された部品や、寿命終わったデバイスから見つかった部品を再利用します。
Collapse Computing(クラッシュコンピューティング):供給チェーン・電力網・接続が失われてもシステムを稼働させ、コミュニティのレジリエンスを促進します。

設計原則
Disassembly(分解):すべての部品は簡易機械式留め具で取り外し可能にし、材質別に明確にラベル付けされ、日常的な工具で分解できるようにします。
Malleable systems(可変システム):異種構成要素を運用中に任意に再結合でき、オペレーターがリアルタイムで性能を調整できます。
Bootstrapping(ブートストラップ):ビンナリがソース可読かつ環境間で再現可能な決定論的構築プロセスです。
Self‑obviating architecture(自己消滅アーキテクチャ):システム自身の必要性を徐々に減少させ、エンゲージメント最大化設計に対抗します。
Reversible computation(可逆計算):操作を取り消すことができる(例:自反関数)ことで状態を保持し、後戻り実行を可能にします。
Concatenative design(連結設計):引数を明示せずにノードが他のノードを合成できるポイントフリーメッセージパッシングです。
Designing for Decay(劣化への設計):情報損失や改ざんから守るため、エラ―訂正符号でメッセージを強化します。

将来の方向性:決定論的構築システムの洗練、可逆操作の進展、ロー・テックサバイジ方法の拡大、そして将来のハードウェア上で機能を保持しつつ仕様を最小限かつ十分に文書化した**Universal Virtual Computer(UVC)**提案の開発。

インパクト:ユーザーはより耐久性が高く適応可能なデバイスを手に入れ、企業はサプライチェーンコストと環境フットプリントを削減し、業界はモジュラー・分解可能ハードウェア標準へ進化します。

本文

パーマカルチャーに触発されたホリスティック・コンピューティングのアプローチ

Permacomputing(パーマコンピューティング)は、ハードウェア寿命を最大化し、エネルギー消費を最小化し、既存の計算資源を活用することを奨励するデザイン実践です。計画的な陳腐化ではなく、システムの保守・リファクタリングによって効率を維持することに価値を置きます。パーマコンピューティングは「計算がエコシステムを強化するときだけ使用する」という長寿命設計を実践します。


「欠如」の価値を語る

  • フラグル・コンピューティング – 計算資源を有限とみなし、必要な時にのみ最も効果的に投入する。
  • サルベージ・コンピューティング – 既存の計算資源のみを使用し、生産されたものに限定する。
  • クラッシュ・コンピューティング – 工業生産やネットワークインフラが崩壊した後に残るものを活用する。

分解設計(Disassembly Design)

分解設計は、すべての製品要素が修理および寿命終結時の回収のために分解可能であることを保証します。これにより製品のライフサイクルが延長され、各コンポーネントを再利用できます。

主な原則:

  • 接着剤ではなく単純な機械的ファスナーを使用する。
  • コンポーネントは素材別に明確にラベル付けする。
  • 日常工具で分解できることを保証する。

自己消滅システム(Self‑Obviating Systems)

自己消滅システムは長期的に不要になるよう設計され、ユーザーエンゲージメント最大化を狙うシステムとは対照的です。人々が自らの福祉を提供できるよう徐々に導きます。


用語と実践

概念説明
オープン・コンピュテーションオープンソースを超え、再結合可能な部品で構成される。
マルエブル・システム任意の再結合をサポートし、環境間で再利用が可能で自由に共有できる。
マレイビリティレベルシロ – メッセージを強制的に捕捉。
シャロー – 表面的な入出力。
アベレージ – ドメイン限界内のフリー・フロー。
ディープ – レイヤ間でシームレスに通信。

マレイビリティ

マルエブル部品はチェーン内のトランスフォーマーであり、リンク、ノード、またはエージェントと相互接続されます。システムがマレイブルほど、部品間の境界は曖昧になります。


可逆設計(Designing for Reversibility)

さまざまなスキルレベルに対応し、エラーコストを低減し、操作者への責任転嫁を抑えるため、取り消し可能な変換を優先します。例としては可逆計算(分数で掛ける)、スタックマシン操作(

rot
,
not
,
swap
)などがあります。

逆演算子と Vine 言語

  • ガーベジコレクションの熱力学(Henry G. Baker)
  • レジスタマシンを取り消す、Fractran

連結設計(Designing for Concatenation)

引数を特定しないポイントフリーメッセージパッシングを使用します。これにより深くマレイブルなシステムで検査性と性能が向上します。

: SQUARED ( n -- n^2 ) DUP * ;
: CUBED   ( n -- n^3 ) DUP SQUARED * ;

: POPCNT ( n -- bits )
  0 swap BEGIN dup WHILE tuck 1 AND + swap 1 rshift REPEAT DROP ;

差異設計(Designing for Differences)

極端に異なるインターフェースや表記法の互換性をサポートし、スキルレベルが違う参加者間で協働ネットワークを実現します。例:マルウド言語(Maude)とミックスフィクス表記。

(add ?x ?y)   -> (?x + ?y)
(?x ?y add)   -> (?x + ?y)

((?a) + ?b)   -> (?a + (?b))
(0 + ?b)      -> (sum ?b)

(add 1 2)

ブートストラップ設計(Designing for Bootstrapping)

ビルド不可能なバイナリシードに依存しないシステムを作り、最小で読みやすいバイナリから再現性のあるユーザーインターフェースへとブートストラップします。

重要ポイント:

  • ビルドプロセスは決定論的であること。
  • ツールと環境は記録または事前定義されていること。
  • ユーザーがビルド環境を再現し、出力を検証できること。

変性設計(Designing for Decay)

情報損失や改ざんに対抗するため、パリティビットなどの誤り訂正でメッセージを硬化させます。例:アレコボ・メッセージはヘッダー無しで構造を伝えるために73行×23列という半素数次元を使用します。


レジリエンス概念

概念定義
アジリティ変化に迅速に適応する能力。
プレパラダイム過去の脅威を振り返り、新たなアイデアで前進する力。
エラスティシティ組織と生態系内の関係性が柔軟になること。
レドンダンシー重要コンポーネントを意図的に重複させ、信頼性を高める。

クラッシュ・コンピューティング

コミュニティのニーズを優先し、インフラ崩壊時に計算資源を維持します。捨てられたリソースを活用し、廃棄物を新しい資源へと変換します。

失敗シナリオ

  • サプライ – 新規デバイス/周辺機器の入手困難。
  • パワー – 不安定または優先順位付き電力供給。
  • コネクティビティ – インターネットアクセス低下や地政学的制限。
  • オブソレセンス – 未記録の周辺機器/ソフトウェアによる非互換性。
  • プランド・オブソレセンス – 証明書、コピー保護等が期限切れ。

降下設計(Design for Descent)

不安定なエネルギーとネットワーク接続に対してレジリエントになることを保証します。ソフトウェアは既存ハードウェア上で動作し、モジュール化され、多様な組み合わせ・実装をサポートするべきです。


最後の一言

パーマコンピューティングはノスタルジーではなく、政治的視点を効率的に伝播させる戦術的メディア選択です。人間の創意工夫を受け入れ、問題を解決へと変換し、競争を協力へ、廃棄物を資源へと転化します。

同じ日のほかのニュース

一覧に戻る →

2026/02/22 9:29

**Claude コードの使い方:計画と実行の分離**

## 日本語訳: 記事は約9か月の経験に基づくClaude Codeを使用するための規律あるワークフローを提示しています。研究、計画、および実行を分離し、各フェーズが進む前に承認済みのマークダウンアーティファクトを生成することを強調しています。 1. **リサーチ (research.md)** – Claude は対象フォルダーを徹底的にスキャンし、ユーザーが検証しなければならない詳細レポートを作成します。表面的な読み込みは推奨されません。 2. **計画 (plan.md)** – コードスニペット、ファイルパス、トレードオフ、および説明を含む別のマークダウン計画が用意されます。組み込みのプランモードは拒否され、この編集可能なドキュメントが採用されます。 3. **注釈サイクル** – ユーザーはエディタで計画をレビューし、インラインメモや制約を追加して「まだ実装しない」ガード付きで再送します。このサイクルは計画が完全に受理されるまで繰り返されます。 4. **実行** – 実装前に詳細なTODOリストが計画に追加されます。その後、著者は固定プロンプト「implement it all…」を発行し、Claude にすべてを実行させ、計画内の完了状況を更新させ、不必要なコメントや未知のタイプを避け、型チェックを継続的に実行させます。 5. **修正** – 実行中にユーザーは簡潔な修正(多くの場合単一文)を提供します。フロントエンドでの修正にはスクリーンショットや既存パターンへの参照が含まれる場合があります。 6. **制御と永続性** – 著者はアーキテクチャ的なコントロールを決して手放しません。Claude の提案を評価し、必要に応じて変更またはスキップします。3つのフェーズすべてが単一の長時間セッションで行われ、計画ファイルは自動圧縮を通じて保持され、主要な参照として機能します。 マークダウンファイルを共有可変状態として維持することで、このアプローチはノイズの多いチャットインタラクションを減らし、追跡性を向上させ、大規模プロジェクト全体で一貫したインターフェースを保ちます。

2026/02/22 9:21

**回答** 実際には、ほとんどの最新コンパイラは「決定的(deterministic)」です。 同じソースコードと同一のコンパイルオプション(使用するコンパイラのバージョンや基盤となるプラットフォームを含む)を与えれば、何度実行しても同一のオブジェクトファイルまたはバイナリが生成されます。 ただし、いくつか注意すべき点があります。 | 要因 | 決定性への影響 | |------|----------------| | **コンパイラ実装** | よく設計されたコンパイラは決定的ですが、不具合のあるものではそうでない場合もあります。 | | **ビルド環境** | OS、CPU アーキテクチャ、またはライブラリのバージョンが異なると、ソースコード自体に変更がなくても出力が変わることがあります。 | | **非決定的なパス** | 例としてランダム化されたレジスタ割り当てなど、一部の最適化は性能調査のために意図的にばらつきを導入します。 | | **タイムスタンプ/ビルドメタデータ** | バイナリにはしばしばタイムスタンプやビルド識別子が埋め込まれます。 これを削除(例:GCC/Clang の `-Wl,--build-id=none`)すると、バイト単位で完全に同一の出力が得られます。 | したがって、環境を統制し安定したコンパイラリリースを使用すれば決定的な結果が期待できます。 セキュリティや監査目的で確実な再現性が必要な場合は、**Reproducible Builds** のようなツールを使い、非決定的データを除去する手順を踏むと良いでしょう。

## Japanese Translation: 記事は、ソフトウェアビルドにおける真の決定論が実現しづらい理由を説明しています。入力状態のすべての部分―ソースコード、コンパイラフラグ、ツールチェーンバイナリ、環境変数、ファイルシステムレイアウト、ロケール、クロック、カーネル動作、さらにはハードウェア並列性までも―を完全に指定しなければ、「ノイズ」が出力の漂移を引き起こします。 再現可能ビルドの実践は、ツールチェーンを凍結し、タイムスタンプを正規化(`SOURCE_DATE_EPOCH`)、揮発性メタデータを除去し、`-ffile-prefix-map` でパスを標準化し、ヘルミティックコンテナ内でビルドし、アーカイブを決定的に作成(`ar -D`)することでこれらの問題を緩和します。そうしても、GCC 18574 のようなバグが示すように、内部ポインタハッシュの不安定性は同一ソースから生成されるコードを変化させる可能性があります。 コンパイラ契約はビット単位での同一性ではなく、セマンティクス(観測可能な I/O、揮発性アクセス、アトミック保証)の保持に焦点を当てています。不定動作がこの保証を弱めるため、再現可能ビルドはより厳格な要件となります。`__DATE__/__TIME__` のようなエントロピー源、デバッグ情報内の絶対パス、ロケール依存のソート(`LC_ALL`)、並列ビルドの競合順序、ランダムシード、ネットワークフェッチはすべて再現性を破る要因となり得ます。ASLR がコンパイラパスに間接的に影響することも同様です。 歴史的には、2013 年以降の Debian の再現可能ビルド取り組みが、同一ソースから同一アーティファクトを作ることを主流化し、コンパイラ・リンカ・パッケージング・ビルドシステム全体で意図的な設計が必要であることを示しています。 将来に向けて、記事は LLM で支援される開発チームが決定論的検証ゲート―制約付き入力、テスト可能な出力、再現性のある CI パイプライン―を導入して信頼できるデプロイを確保する必要があると主張しています。完全な決定論は必須ではありませんが、予測可能な振舞いと検証可能性は本番システムに不可欠です。 主要な結論は、多くのエコシステムが多くの境界ケースで意図的な取り組みを通じて再現可能ビルドをサポートしているということですが、Ken Thompson の「Reflections on Trusting Trust」からの根本的な警告は残ります―コンパイラは信頼できるように見えても妥協され得るのです。

2026/02/22 5:57

**HN掲示:NVMe→GPU バイパスでCPUを経由せず、単一のRTX 3090上でLlama 3.1 70B を動作させる**

## Japanese Translation: **NTransformer** は、依存関係のない軽量 C++/CUDA エンジンであり、ユーザーが PCIe 上でモデル層をストリーミングし、オプションで高速直接 I/O 用に NVMe を使用することで、70 B 変種を含むフルサイズ Llama モデルをコンシューマ GPU 上で直接実行できるようにします。 - **Resident mode(レジデントモード)**:Llama 3.1‑8 B Q8_0 は 10 GB の VRAM だけで 48.9 トークン/秒を達成し、tiered‑auto モードは 10.3 GB を使用して 48.8 トークン/秒を提供します。 - **70 B model(70 B モデル)**:ストリーミング(mmap)のみでは非常に遅く (0.006 トークン/秒、7.3 GB)、tiered auto はスループットを 0.2 トークン/秒まで向上させ、23.1 GB を消費します。Q4_K_M のレイヤー・スキップを使用すると速度が 0.5 トークン/秒に上昇し、わずか 22.9 GB で済みます。これは単一 RTX 3090 + 48 GB RAM システムでのプレーン mmap に対して 83 倍速です。 - **Bandwidth bottleneck(帯域幅ボトルネック)**:PCIe Gen3 x8 (~6.5 GB/s) がデータ転送を制限します。Q4_K_M は VRAM に 10 層多く収容でき (36 層対 26 層)、tier‑B 転送が削減され、スループットが向上します。 - **Layer‑skip(レイヤー・スキップ)**:コサイン類似度キャリブレーションを使用して、1 トークンあたり 20–80 層を最小限の品質低下でスキップし、大規模モデルの推論速度を向上させます。 - **Architecture(アーキテクチャ)**:3 タイヤの適応型キャッシュが VRAM‑resident、ピン留め RAM、および NVMe/mmap タイヤを自動的にサイズ決定します。エンジンはすべての GGUF 量子化 (Q4_0, Q8_0, Q4_K_M, Q5_K, Q6_K, F16, F32) をサポートし、レジデント、tiered‑auto、layer‑skip、および self‑speculative decoding の 4 種類の自動選択データパスを提供します。 - **System requirements(システム要件)**:Linux (Ubuntu kernel 6.17+)、CUDA 13.1、gcc‑14/g++‑14、CMake 3.24+、NVIDIA GPU CC 8.0+ (RTX 3090 テスト済み)。直接 I/O 用に別の PCIe スロットに NVMe SSD が必要です。セットアップスクリプトはカーネルモジュールをパッチし、AMD IOMMU を無効化し、NVMe を VFIO にバインドします(DMA 分離について注意)。 - **NVMe‑direct pipeline(NVMe 直接パイプライン)**:各層 (~670 MB for 70 B Q6_K) は約 202 ms の NVMe コマンドで CUDA‑ピン留めステージングメモリに読み込まれ、非同期 DMA により GPU バッファへ転送され、デュアルバッファ間で計算と重ね合わせて実行されます。 - **Roadmap(ロードマップ)**:完成済みフェーズ—基盤、SLEP ストリーミング、最適化、NVMe direct。今後の作業には speculative decoding の仕上げと公開 C API の追加が含まれます。 NTransformer は、大規模モデルをコストの高いサーバーインフラなしでコンシューマ GPU 上にローカル実行できるようにすることで、推論コストを低減し、オンプレミス AI サービスのレイテンシを削減し、研究・産業界全体での採用拡大を促進します。