私はUbuntu 14.04とIntel ifortコンパイラでopenmpiを使って天気予報ソフトウェアを倍精度でコンパイルしました。しかし、私はいくつかの問題を把握することができません。私はmpirunに送る必要があるプロセッサの数を把握する必要があります。これは、これは私が私のソフトウェアに のmpirun -np 4 AAAを実行するために使用していますコマンドですlscpuopenmpiを使用するためのプロセッサ数の把握
x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Stepping: 3
CPU MHz: 800.000
BogoMIPS: 6784.93
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3output of lscpu
の出力です。私はこれを行うとしかし、私はこれらのエラーを取得する -
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1001.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
私は1にNPを設定すると、それが正常に実行されたが、完全にCPUを使用していません。 CPU使用率は3%から35%まで変化しますが、メモリ使用量はほぼ100%です。システムは約10分間停止し、エラーメッセージ
forrtl severe(41)for virtual memoryが不足して終了します。
複数のセマフォを持つWRF(この質問に関連するソフトウェアはWRFではありません)を実行しましたが、速度やメモリの問題は発生していません。 私は単精度に再コンパイルできますが、それを行う前に、mpirunに送信するコア(プロセッサ)の数を把握できるようにしたいと考えています。
美しい答えです。私はすべての情報を吸収させてください! – gansub
はそれをすべて吸収しました。ソフトウェアを開発した人々は、小さな問題サイズを実行するのではなく、単精度で再コンパイルするように求めました。それについての考え? – gansub
グリッドやAMR流体力学ソルバーを使用していると仮定しているので、精度を変更すると問題のサイズを半減させることになります。これは、精度の低下を処理できるかどうかの問題です。それはあなたの問題に敏感に依存します。 – Tim