回答:
構造のある密な行列(高速変換、Schur補数など)がある場合、PETScが役立ちます。これらの場合、完全なマトリックスを組み立てることはありません。
組み立てられた高密度システムの場合、PETScは現在PLAPACKを使用していますが、PETScネイティブ形式のマトリックス分布は通信を最小限に抑えるのに最適ではありません(ほとんどの操作)。Jack Poulson、Matt Knepley、および私は、PETScの高密度線形代数を移植して、Jackのより現代的な高密度線形代数ライブラリであるElementalを使用することについて説明しました。まだ起きていませんが、時間があるときに行います。
フル機能の高密度線形代数ライブラリが必要な場合は、Elementalを使用してください。これらの操作には、PETScよりも常に完全なAPIが常に存在する可能性があります。疎システムまたは組み立てられていないシステムとやり取りする必要がある場合は、PETScに固執し、密集した部分にElementalを使用するために必要なものを抽出することは理にかなっています(または、ElementsへのPETScインターフェイスの作成を支援します)。
共有メモリシステムを使用しているとおっしゃったので、libFLAMEやPLASMAをお勧めしますが、レベル1およびレベル2の操作では、ベンダースレッドBLASよりも大幅に高速になるとは思いません。
JedはElementalを推奨しましたが、たまたま開発していますが、レベル1およびレベル2の操作は並列密線形線形代数ライブラリの主な焦点ではないことを強調します。正直に言って、これらのルーチンをベンチマークしたことはありません。