AGXSimulatorのシミュレーション速度について

質問失礼いたします。

Choreonoid-2.0.0で、AGXSimulatorを使用した時、計算時間 / シミュレーション速度が6程度となり、1分のシミュレートをするために、現実で6分経過しない状況となっています。シミュレーションでは、数千のCollisionが存在していることが直接的な原因だと思います。しかし、これ以外の方法で解決できないかと考えています。

CPU性能としては十分だと考えられ、添付した画像でもこれを確認できています。出来ればCPUを全力で使っていただきたいのですが、改善する方法があればご教示してくださると幸いです。

よろしくお願いいたします。

既に試されているかもしれませんが、AGXSimulatorアイテムのプロパティ “NumThreads” で計算に使用するスレッド数を設定できます。この値を増やすと、並列性が向上してシミュレーションが速くなる可能性があります。

ただしAGXの内部でどのような条件で並列化されるかよく分からないところもありまして、この値を増やしたからといって思ったようには速くならないことも多いようです。そこはとりあえず試してみる必要がありますが、期待したほどの効果を得られなかったとしたらすみません。

あとはAMORというプロパティで、静止している剛体同士を一体化させ、ソルバの計算量を減らすこともできるようです。詳細はマニュアルの以下のページをご参照ください。(こちらも既に試されているかもしれませんが…。)
https://choreonoid.org/ja/documents/latest/agxdynamics/agx-simulator-item.html

お返事ありがとうございます。

確かに、NumThreadsが1の場合は、計算時間: 20.292 [s], 計算時間 / シミュレーション時間 = 18.363800904977378 で、32まで上げると、計算時間: 12.193 [s], 計算時間 / シミュレーション時間 = 7.007471264367816 とだいぶ改善されます。
(全てのコアがフルで使われるわけではなさそうですが)

AMORについては、既に試していたのですが、改善されなかったですね…
参考に、今回使用しているBodyファイルの一部を載せます。(この後、elementsが大量にある)

format: ChoreonoidBody
formatVersion: 1.0
angleUnit: degree
name: Terrain

links:
-
    name: Terrain
    translation: [ 0.0, 0.0, 0.0 ]
    jointType: fixed
    AMOR: true
    material: Ground
    centerOfMass: [ 0.0, 0.0, 0.0 ]
    mass: 100.0
    inertia: [ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ]
    elements:
      -
        { type: Shape, translation: [ -18.0, -23.5, 0.006592193 ], geometry: { type: Box, size: [ 0.25, 0.25, 0.131592193 ] } }
      -
        { type: Shape, translation: [ -18.0, -23.25, 0.02490387 ], geometry: { type: Box, size: [ 0.25, 0.25, 0.14990387 ] } }
      -
        { type: Shape, translation: [ -18.0, -23.0, 0.03955319 ], geometry: { type: Box, size: [ 0.25, 0.25, 0.16455319000000002 ] } }