問題タブ [petsc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
95 参照

openmdao - OpenMDAO PetscTgtVecWrapper TypeError

内で1000を超える並列ケースを評価している並列ワークフローを実行しようとしていますParallelGroup。少量のコアで実行するとクラッシュしませんが、ある時点でノード数を増やすとエラーが発生します。これは、問題がどのように分割されているかに関連していることを示しています。

OpenMDAO と PETSc のディープ ダンジョンから、通信テーブルをセットアップする際のターゲット インデックスに関するエラーが表示されます。以下は、エラーのトレースバックの印刷です。

この答え:

https://scicomp.stackexchange.com/questions/2355/32bit-64bit-issue-when-working-with-numpy-and-petsc4py/2356#2356

ベクトルを設定した場所を探してtgt_idxs、正しい dtype で定義されているかどうかを確認しましたPETSc.IntType。しかし、これまでのところPetsc has generated inconsistent data、エラーの原因であると思われる配列の dtype を設定しようとしたときにのみエラーが発生します。

--with-64-bit-indicesリンク先の回答で提案されているように、まだPETScを再インストールしようとはしていません。このように構成された PETSc を実行しますか?

編集:私は今、私が得るエラーを再現する問題の簡素化されたバージョンをセットアップしました:

すると、評価するケースが多いため、データサイズが膨大になることもわかります。どうにかしてデータサイズを削減できないか見てみましょう。エラーでクラッシュするため、実際にはこれをまったく実行できません。

またはTypeError

0 投票する
1 に答える
304 参照

python - openmdaoで使用するpetsc4pyをインストールする際のバージョンエラーを修正するにはどうすればよいですか

Python Web サイトにある指示に従って petsc4py をインストールしようとしていますが、エラーが発生します。この正しいバージョンが見つからないというエラーを修正するにはどうすればよいですか? 私の全体的な目標は、openMDAO を使用できるようにすることですが、petsc4py を機能させることから始める必要があります。

以下は、コマンドの入力と、受け取ったエラーです

0 投票する
1 に答える
173 参照

c++ - PETSC DMDA vec 値が間違った場所に割り当てられます

私は最近 PETSc の学習を始めましたが、いくつかの簡単なタスクを実行しようとしているときに問題に遭遇しました。このコードの問題点:

プロセスランクによってラベル付けされた数量で小さな配列を埋めます。コンパイルとリンクが成功すると、次の結果が得られます。

VecView は、プロセスが他のプロセスに属する場所に書き込みを行ったことを示しています。エラーはどこにありますか? DMDAVecGetArray/DMDAVecRestoreArray が間違った配列を与えるか、VecView が DM オブジェクトから取得した Vec を表示するのに適していませんか?

0 投票する
0 に答える
240 参照

mpi - 共有メモリを使用する PETSc

行列を使用しない GMRES メソッドで線形方程式系を解くために PETSc を使用する MPI 並列コードがあります。正常に動作しますが、使用するプロセスの数に関係なく、各プロセスはほぼ同じ量のメモリを使用します。そのため、多くのプロセスを使用すると、メモリ使用量が過剰になります。これを回避する方法があるかどうか疑問に思っており、共有メモリのアプローチを使用することが最善の方法であると思います。

PETSc Web サイト共有メモリが PETSc でサポートされていることは理解していますが (簡単にするために MPI 共有メモリが使用されています)、有効化または使用する方法に関する情報が見つかりません。共有メモリで PETSc を使用することは私の問題の可能な解決策ですか? はいの場合、これを行う方法に関するドキュメントはありますか? それとも、追加のコーディングを必要とせずに可能であれば、デフォルトで PETSc で MPI 共有メモリが使用されますか?

0 投票する
1 に答える
709 参照

petsc - petsc 行列の作成方法は?

私は petsc4py を使用していますが、いくつかの問題に直面しています。私はいくつかの小さな petsc 密行列 mij を持っており、それらを次のような大きな行列 M に構築したいと考えています。

mcve コードを以下に示します。私は PETSc の python ラップを使用していますが、文法は似ています。

そのようなエラーメッセージを報告します:

0 投票する
1 に答える
351 参照

python - PETSc にリンクされた Fortran コードで f2py を使用する

私の質問はこの投稿に関連しています:

f2py でラップされたモジュールにコンパイルされたモジュールを含めますか (最小限の作業例)?

投稿者が f2py を使用して Fortran コード (Test.f90) をコンパイルし、それを事前にコンパイルされたライブラリ (または私の場合はオブジェクト、myex44f.o) にリンクしようとしていました。その答えにより、Fortran コードをコンパイルし、python モジュールを生成することができました。

私の問題は、オブジェクトが PETSc にリンクされているという点で、上記のポスターの問題とは異なります。f2py で生成したライブラリを Python にインポートしようとすると、PETSc サブルーチンである「VecDestroy」が見つからないというエラーが表示されます。私の最近の試みは:

f2py -c --fcompiler=gfortran -I. myex44f.o ../../../Codes/third_party/petsc/include/petsc/finclude/petscdef.h -m テスト Test.f90

コード Test.f90 は次のとおりです。

mainsubモジュールから呼び出しますpetsctest

私が得るエラーは次のとおりです。

インポート テスト トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、ImportError: ./test.so: 未定義のシンボル: vecdestroy_

誰か提案はありますか?あなたが私に提供できる助けをありがとうございました。

更新:myex44f.o PETSc の例で提供されているメイクファイルを使用して 、元のオブジェクトを生成しました。リンク行を見て、f2py でコンパイルする場合は、petsc ライブラリをリンクする必要があるかもしれないと考えました。私の現在の試みは:

f2py -c --fcompiler=gfortran -m test Test.f90 -I. myex44f.o -I/home/costoich/Documents/AFPWork/Codes/third_party/petsc/include -I/home/costoich/Documents/AFPWork/Codes/third_party/petsc/arch-linux2-c-debug/include -L/home/costoich/Documents/AFPWork/Codes/third_party/petsc/arch-linux2-c-debug/lib -lpetsc

これは、コンパイル手順中に正しくリンクしているようです (-lpetscパスなしで書くと、コンパイラは失敗します)。ただし、入力するとldd test.so、次のようになります。

linux-vdso.so.1 => (0x00007ffe09886000) libpetsc.so.3.7 => not found libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fc315be5000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc31581b000) libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007fc3155dc000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc3152d3000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc3150bc000) /lib64/ld-linux-x86-64.so.2 (0x000055a3fad27000)

リンク フラグ Wl,rpath を使用するには 2 つ必要ですか? f2py はこれらを理解していないようです。コメントありがとうございます。

解決済み 問題が見つかりました。f2py に-Wl,rpathオプションを受け入れさせることはできませんが、環境変数を定義するとLD_LIBRARY_PATH=/home/costoich/Documents/AFPWork/Codes/third_party/petsc/arch-linux2-c-debug/libすべてがうまくいきます。ご協力ありがとうございました。

0 投票する
1 に答える
222 参照

python - petsc を MPI モードで正しく実行するには?

プロジェクトのソルバーとして petsc を使用しています。ただし、並列モードのソルバーは、私の予想よりもはるかに多くのプロセスを作成します。

Pythonとpetsc4pyを使用したコード。マシンには 4 つのコアがあります。(a)。直接実行すると、petsc は行列を組み立てるために 1 つのプロセスのみを使用し、方程式を解くために 4 つのプロセスを作成します (b)。コメント 'mpirun -n 4' を使用すると、petsc は行列を組み立てるために 4 つのプロセスを使用しますが、方程式を解くために 16 のプロセスを作成します。

私は自分のpythonコードをチェックしました.matrix createに関連する主なコンポーネントは次のとおりです。

petsc ソルバーに関連付けられている主なコンポーネントは次のとおりです。

何か提案をしてくれる人はいますか?ありがとう。

0 投票する
2 に答える
113 参照

c++ - 以下のステートメントでのコンマの役割は何ですか?

C/C++ でこの構文にたどり着いたとき、現在 PETSc を読み込んでいます。

ここのコンマの意味がわかりません。タプルと関係ありますか?それとも過負荷の何かがありますか?