Skip to content
Latchkey

mamba vs conda: より速いcondaのsolver?

mambaはずっと速いC++の依存関係solverを備えたcondaのドロップイン式の代替です。condaはオリジナルで、現在はlibmamba solverも同梱しています。

mambaはcondaコマンドを、並列ダウンロードとより速いSAT solverを用いてC++で再実装し、同じchannelとenvironment.ymlを読みつつ、環境作成を数分から数秒に短縮することがよくあります。最近のcondaバージョンはlibmamba solverを同梱し、差を縮めていますが、mamba(およびmicromamba)は依然としてCI向けにより速く軽量な傾向があります。大半のworkflowでは両者は交換可能です。

mambaconda
Solver高速なC++ (libsolv)classicまたはlibmamba
速度最速libmambaで改善
互換性conda互換リファレンス
フットプリント軽量 (micromamba)重めのベース
最適な用途CI、高速なsolve既存のcondaセットアップ

CIでは

mambaとmicromambaは、遅いcondaのsolveがセットアップ時間を支配するCIで真価を発揮します。micromambaはベース環境を持たない単一の静的バイナリで、使い捨てのrunnerに理想的です。すでにcondaを使っているなら、libmamba solverを有効にすることで、ツールを切り替えずに恩恵の大半を得られます。

高速化

solveがウォームになるよう、environment.ymlをキーにしてpackage cacheをcacheしましょう。どちらもCI runner上で実行されます。より高速なマネージドrunnerは、インストールとsolveのステップをさらに短縮します。

結論

最速かつ最軽量の環境作成を求める新しいCIセットアップ: micromambaまたはmamba。既存のcondaプロジェクト: libmamba solverを有効にすれば、ツールを変えずに速度の大半を得られます。両者は同じchannelとファイルを読むため、切り替えは低リスクです。

関連ガイド