Add members and methods denoting comm ownership for Matrix and Vector methods
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- cpp
調査の方向性
まず CAROM::Vector と CAROM::Matrix のクラス定義およびそれらのコンストラクターを探し、次に既存の communicator または分散インデックス用ユーティリティを調べてください。要求された communicator メンバー、アクセサー、およびフリー関数を追加し、指定された行範囲、次元、プロセス所有権の事後条件を満たすことで完了を示してください。
索引モデルが issue の本文から書いたものです。
説明
Specifically, add the following to each class T, where T is a CAROM::Vector or CAROM::Matrix, a CAROM::Vector is treated as a single column matrix, and none of the functions below should be templated:
- a private
MPI_Comm d_commmember - initialize that member in the constructor of each object
- include a
MPI_Comm getComm() constgetter method - a free function of the form
std::vector<int> GetDimensionOnEachProcess(T &input), that returns the number of rows of the object on each process - a free function of the form
std::vector<int> GetRowSpanOnEachProcess(T &input), whereTis aCAROM::MatrixorCAROM::Vectorthat returns the range of row indices of the object on each process. Letstd::vector<int> resultbe the value returned by this function. The following postconditions should be satisfied: (1)result.size()should be one plus the number of processes ond_comm, and (2) if a disjoint contiguous index span ofinputresides on each process such that index 0 is owned by process 0, and the lowest index owned by each process is an increasing sequence when ordered by increasing process number, then processpcontains rowsresult[p]throughresult[p + 1] - 1 - a free function of the form
int GetProcessContainingRow(T &input, int row)such that ifint resultis returned by this function, then rowrowis on process numberresult
These utility functions come up frequently in implementing linear algebraic operations. I suspect that if data objects are associated with communicators, the operations like matrix decompositions will not need to have communicators associated with them.
- 主要言語
- C++
- スター
- 236
- フォーク
- 47
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
llnl/libROM のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
bug
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 28/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
ArthurSonzogni/FTXUI#1363 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
ginkgo-project/ginkgo#2108 ·
-
bug build
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
facebookincubator/velox#19194 ·
-
JIT-compiled number -> Decimal conversion silently overflows instead of raising DECIMAL_OVERFLOW オープンfuzz
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
ClickHouse/ClickHouse#122114 ·