MyQueue: HPCジョブ管理のためのコマンドラインおよびPythonフロントエンド
MyQueueは、コマンドラインツールとPython APIを介して計算ジョブを提出および監視し、タイムアウトやメモリ不足の失敗に対して自動再起動を処理します。J. J. MortensenとMyQueue開発チームによってユーティリティツールのために作成されたこのツールは、SLURM、PBS、およびLSFとのインタラクションを統一し、SQLiteを使用してジョブを永続的に追跡し、フォルダベースのワークフローとPython仮想環境をサポートします。これは、多くのクラスターまたはローカルジョブを実行し、自動再提出と簡単な追跡を必要とする研究者やエンジニアを対象としています。
MyQueueは実際に何をしますか?
MyQueueはHPCスケジューラのフロントエンドとして機能し、mq submitコマンドまたはPython APIを通じて提出を受け付け、ローカルのタスク追跡をリモートスケジューラと同期させます。完了したタスク、失敗したタスク、実行中のタスクをフォルダベースのSQLiteストアに記録し、SLURM、PBS、またはLSFを使用するローカルマシンまたはリモートクラスターに対して操作できます。入力はジョブスクリプトまたはPythonタスクで、出力はmq listを介して表示されるキューの状態です。
失敗したジョブの自動再提出はどれほど信頼できますか?
アプリは、時間制限やメモリ枯渇から失敗したタスクを自動的に再起動し、提供されたロジックに従って再試行時にリソースを調整します。その動作は、特定の失敗シグネチャの後に要求されたリソースを増やすことで手動の再試行を減少させます。永続的な追跡により、以前の試行が保存されるため、再提出を受け入れる前に失敗の履歴を確認できます。再提出ロジックは、任意の失敗ではなくリソース関連のエラーを対象としています。
本番クラスターで使用するのは安全ですか?
MyQueueは別のデータベースや管理者権限を必要とせず、SQLiteとフォルダを使用して状態をローカルに保存するため、操作が透明になります。スケジューラのネイティブコマンドを使用してスケジューラと相互作用するため、ジョブの提出やキャンセルのためのスケジューラの権限モデルに依存します。このツールの設計は、隠れたシステムサービスの書き込みを避け、ユーザー環境から操作し、作業フォルダにジョブ記録を保存します。
実行するために技術的な知識が必要ですか?
インストールにはPython環境(Python 3.9以降)とpip installが必要で、操作にはコマンドラインコマンドまたは提供されたAPIを使用します。ジョブスクリプトや仮想環境に不慣れなカジュアルユーザーは、ワークフローがスケジューラのジョブ説明と環境のアクティベーションを期待するため、学習曲線に直面します。すでにジョブスクリプトや仮想環境を準備している研究者やデータエンジニアは、既存の実践と一致していることに気付くでしょう。
誰がMyQueueを採用すべきか、そしてその理由
MyQueueは、多くのクラスターまたはローカルジョブを提出し、リソース関連の失敗に対して自動再提出を望む研究者やエンジニアに適しています。これは、ジョブの履歴をローカルのSQLiteバックアップフォルダーに保持しながら、手動の再試行作業を減らします。コマンドラインまたはスクリプトのワークフローと、Pythonおよび仮想環境の初期設定が必要です。推奨します。





