0

drmma と snakemake のクラスター構成ファイルに関連する質問があります。

現在、パイプラインがあり、次のコマンドで drmma を使用してクラスターにジョブを送信します。

snakemake --drmaa " -q short.q -pe smp 8 -l membycore=4G" --jobs 100 -p file1/out file2/out file3/out

問題は、一部のルール/ジョブで必要なリソースが増減することです。json クラスター ファイルを使用すれば、さまざまなリソースでジョブを送信できると思いました。私のjsonファイルは次のようになります:

{
    "__default__":
    {
        "-q":"short.q",
        "-pe":"smp 1",
        "-l":"membycore=4G"
    },
    "job1":
    {
        "-q":"short.q",
        "-pe":"smp 8",
        "-l":"membycore=4G"
    },
    "job2":
    {
        "-q":"short.q",
        "-pe":"smp 8",
        "-l":"membycore=4G"
    }
}

次のコマンドを実行すると、ジョブ (job1 と job2) がカスタム オプションではなくデフォルト オプションで送信されます。

snakemake --jobs 100 --cluster-config cluster.json --drmaa -p file1/out file2/out file3/out

私は何を間違っていますか?drmaa オプションを cluster-config ファイルと組み合わせることができないということですか?

4

1 に答える 1

1

--cluster/--cluster-sync/--drmaaクラスター構成ファイルを使用すると、定義されたプレースホルダーに応じて後で使用される変数を定義できます。ここには DRMAA 固有の魔法は含まれていません。ドキュメントの対応するセクションをもう一度見てください。

たぶん、例が物事をより明確にします:

クラスタ構成:

{
    "__default__":
    {
      "time" : "02:00:00",
      "mem" : 1G,
    },
    # more rule specific definitions here...
}

上記を利用するためのsnakemake引数の例:

 --drmaa " -pe OpenMP {threads} -l mem_free={cluster.mem} -l h_rt={cluster.time}"

また

--cluster-sync "qsub -sync y -pe OpenMP {threads} -l mem_free={cluster.mem} -l h_rt={cluster.time}"

cluster.timecluster.memルールに従って適宜置き換えられます。

アンドレアス

于 2016-11-29T01:59:21.490 に答える