Skip to content

Commit 51ea6a9

Browse files
authored
Change member functions and data names in vector and matrix classes to be more consistent (#208)
* Make pointers to input data in updateData methods const. * Make input array in updateValues function const. * Rename setMatrixData -> setDataPointers. * Rename setNewValues -> setValuesPointers. * Rename matrix methods updateData -> copyDataFrom. * Rename owns_*_data_ -> owns_*_sparsity_pattern_ in matrix classes. * Rename deepCopyVectorData -> copyDataTo * Rename vector methods update -> copyDataFrom. * Fix accidental changes to comments in code. * Document better Vector::copyDataTo
1 parent 571d13b commit 51ea6a9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+424
-365
lines changed

examples/r_KLU_GLU.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ int main(int argc, char *argv[])
108108

109109
// Update host and device data.
110110
if (i < 1) {
111-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
111+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
112112
} else {
113-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
113+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
114114
}
115115
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
116116

@@ -139,7 +139,7 @@ int main(int argc, char *argv[])
139139
}
140140

141141
// Estimate solution error
142-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
142+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
143143
real_type bnorm = sqrt(vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE));
144144
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
145145
matrix_handler->matvec(A, vec_x, vec_r, &ONE, &MINUSONE, ReSolve::memory::DEVICE);

examples/r_KLU_GLU_matrix_values_update.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
101101
ReSolve::io::updateMatrixFromFile(mat_file, A_exp);
102102
}
103103
std::cout<<"Updating values of A_coo!"<<std::endl;
104-
A->updateValues(A_exp->getValues(ReSolve::memory::HOST), ReSolve::memory::HOST, ReSolve::memory::HOST);
104+
A->copyValues(A_exp->getValues(ReSolve::memory::HOST), ReSolve::memory::HOST, ReSolve::memory::HOST);
105105
//ReSolve::io::updateMatrixFromFile(mat_file, A);
106106
ReSolve::io::updateArrayFromFile(rhs_file, &rhs);
107107
}
@@ -117,9 +117,9 @@ int main(int argc, char *argv[])
117117

118118
// Update host and device data.
119119
if (i < 1) {
120-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
120+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
121121
} else {
122-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
122+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
123123
}
124124
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
125125

@@ -149,7 +149,7 @@ int main(int argc, char *argv[])
149149
status = GLU->solve(vec_rhs, vec_x);
150150
std::cout<<"CUSOLVER GLU solve status: "<<status<<std::endl;
151151
}
152-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
152+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
153153

154154

155155
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);

examples/r_KLU_KLU.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,10 @@ int main(int argc, char *argv[])
102102

103103
// Update data.
104104
if (i < 2) {
105-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
105+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
106106
vec_rhs->setDataUpdated(ReSolve::memory::HOST);
107107
} else {
108-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
108+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
109109
}
110110
std::cout<<"COO to CSR completed. Expanded NNZ: "<< A->getNnz()<<std::endl;
111111
//Now call direct solver
@@ -125,7 +125,7 @@ int main(int argc, char *argv[])
125125
status = KLU->solve(vec_rhs, vec_x);
126126
std::cout<<"KLU solve status: "<<status<<std::endl;
127127
}
128-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
128+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
129129

130130
matrix_handler->setValuesChanged(true, ReSolve::memory::HOST);
131131

examples/r_KLU_KLU_standalone.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ int main(int argc, char *argv[])
7676
mat_file.close();
7777
rhs_file.close();
7878

79-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
79+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
8080
vec_rhs->setDataUpdated(ReSolve::memory::HOST);
8181
std::cout << "COO to CSR completed. Expanded NNZ: " << A->getNnz() << std::endl;
8282
//Now call direct solver
@@ -88,7 +88,7 @@ int main(int argc, char *argv[])
8888
std::cout << "KLU factorization status: " << status << std::endl;
8989
status = KLU->solve(vec_rhs, vec_x);
9090
std::cout << "KLU solve status: " << status << std::endl;
91-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
91+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
9292

9393
matrix_handler->setValuesChanged(true, ReSolve::memory::HOST);
9494

examples/r_KLU_cusolverrf_redo_factorization.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ int main(int argc, char *argv[] )
117117

118118
// Update host and device data.
119119
if (i < 2) {
120-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
120+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
121121
} else {
122-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
122+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
123123
}
124124
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
125125

@@ -158,7 +158,7 @@ int main(int argc, char *argv[] )
158158
status = Rf->solve(vec_rhs, vec_x);
159159
std::cout<<"cusolver rf solve status: "<<status<<std::endl;
160160
}
161-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
161+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
162162

163163
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
164164

@@ -182,8 +182,8 @@ int main(int argc, char *argv[] )
182182
status = KLU->solve(vec_rhs, vec_x);
183183
std::cout<<"KLU solve status: "<<status<<std::endl;
184184

185-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
186-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
185+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
186+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
187187

188188
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
189189

examples/r_KLU_rf.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ int main(int argc, char *argv[] )
107107

108108
// Update host and device data.
109109
if (i < 2) {
110-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
110+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
111111
} else {
112-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
112+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
113113
}
114114
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
115115

@@ -151,7 +151,7 @@ int main(int argc, char *argv[] )
151151
//status = KLU->solve(vec_rhs, vec_x);
152152
//std::cout<<"KLU solve status: "<<status<<std::endl;
153153
}
154-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
154+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
155155

156156
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
157157

examples/r_KLU_rf_FGMRES.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ int main(int argc, char *argv[])
111111

112112
// Update host and device data.
113113
if (i < 2) {
114-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
114+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
115115
} else {
116-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
116+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
117117
}
118118
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
119119

@@ -129,7 +129,7 @@ int main(int argc, char *argv[])
129129
std::cout<<"KLU factorization status: "<<status<<std::endl;
130130
status = KLU->solve(vec_rhs, vec_x);
131131
std::cout<<"KLU solve status: "<<status<<std::endl;
132-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
132+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
133133
norm_b = vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE);
134134
norm_b = sqrt(norm_b);
135135
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
172172
status = Rf->solve(vec_rhs, vec_x);
173173
std::cout<<"CUSOLVER RF solve status: "<<status<<std::endl;
174174

175-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
175+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
176176
norm_b = vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE);
177177
norm_b = sqrt(norm_b);
178178

@@ -195,7 +195,7 @@ int main(int argc, char *argv[])
195195
<< sqrt(vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE))/norm_b << "\n";
196196

197197
matrix_handler->matrixInfNorm(A, &norm_A, ReSolve::memory::DEVICE);
198-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
198+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
199199

200200
if(!std::isnan(norm_r) && !std::isinf(norm_r)) {
201201
FGMRES->solve(vec_rhs, vec_x);

examples/r_KLU_rf_FGMRES_reuse_factorization.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ int main(int argc, char *argv[])
113113

114114
// Update host and device data.
115115
if (i < 2) {
116-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
116+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
117117
vec_rhs->setDataUpdated(ReSolve::memory::HOST);
118118
} else {
119119
A->syncData(ReSolve::memory::DEVICE);
120-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
120+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
121121
}
122122
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
123123

@@ -133,7 +133,7 @@ int main(int argc, char *argv[])
133133
std::cout<<"KLU factorization status: "<<status<<std::endl;
134134
status = KLU->solve(vec_rhs, vec_x);
135135
std::cout<<"KLU solve status: "<<status<<std::endl;
136-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
136+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
137137
norm_b = vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE);
138138
norm_b = sqrt(norm_b);
139139
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
@@ -170,7 +170,7 @@ int main(int argc, char *argv[])
170170
status = Rf->refactorize();
171171
std::cout << "CUSOLVER RF, using REAL refactorization, refactorization status: "
172172
<< status << std::endl;
173-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
173+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
174174
status = Rf->solve(vec_rhs, vec_x);
175175
FGMRES->setupPreconditioner("LU", Rf);
176176
}
@@ -181,8 +181,8 @@ int main(int argc, char *argv[])
181181
<< sqrt(norm_x) << "\n";
182182
std::cout<<"CUSOLVER RF solve status: "<<status<<std::endl;
183183

184-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
185-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
184+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
185+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
186186
norm_b = vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE);
187187
norm_b = sqrt(norm_b);
188188

@@ -198,7 +198,7 @@ int main(int argc, char *argv[])
198198
<< std::scientific << std::setprecision(16)
199199
<< norm_b << "\n";
200200

201-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
201+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
202202
FGMRES->solve(vec_rhs, vec_x);
203203

204204
std::cout << "FGMRES: init nrm: "

examples/r_KLU_rocSolverRf_FGMRES.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@ int main(int argc, char *argv[])
116116

117117
// Update host and device data.
118118
if (i < 2) {
119-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
119+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
120120
} else {
121-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
121+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
122122
}
123123
RESOLVE_RANGE_POP("Matrix Read");
124124
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
@@ -136,7 +136,7 @@ int main(int argc, char *argv[])
136136

137137
status = KLU->solve(vec_rhs, vec_x);
138138
std::cout << "KLU solve status: " << status << std::endl;
139-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
139+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
140140
norm_b = vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE);
141141
norm_b = sqrt(norm_b);
142142
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
@@ -167,7 +167,7 @@ int main(int argc, char *argv[])
167167
std::cout << "ROCSOLVER RF refactorization status: " << status << std::endl;
168168
status = Rf->solve(vec_rhs, vec_x);
169169
std::cout << "ROCSOLVER RF solve status: " << status << std::endl;
170-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
170+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
171171
norm_b = vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE);
172172
norm_b = sqrt(norm_b);
173173

@@ -190,7 +190,7 @@ int main(int argc, char *argv[])
190190
<< "\t Solution inf norm: " << norm_x << "\n"
191191
<< "\t Norm of scaled residuals: " << norm_r / (norm_A * norm_x) << "\n";
192192

193-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
193+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
194194
if(!std::isnan(rnrm) && !std::isinf(rnrm)) {
195195
FGMRES->solve(vec_rhs, vec_x);
196196

examples/r_KLU_rocsolverrf.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ int main(int argc, char *argv[])
109109

110110
// Update right-hand-side vector.
111111
if (i < 2) {
112-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
112+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::HOST);
113113
} else {
114-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
114+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
115115
}
116116
std::cout << "CSR matrix loaded. Expanded NNZ: " << A->getNnz() << std::endl;
117117

@@ -130,7 +130,7 @@ int main(int argc, char *argv[])
130130
ReSolve::matrix::Csc* U = (ReSolve::matrix::Csc*) KLU->getUFactor();
131131
index_type* P = KLU->getPOrdering();
132132
index_type* Q = KLU->getQOrdering();
133-
vec_rhs->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
133+
vec_rhs->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
134134
Rf->setup(A, L, U, P, Q, vec_rhs);
135135
}
136136
} else {
@@ -142,7 +142,7 @@ int main(int argc, char *argv[])
142142
}
143143

144144
// Check accuracy of the solution
145-
vec_r->update(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
145+
vec_r->copyDataFrom(rhs, ReSolve::memory::HOST, ReSolve::memory::DEVICE);
146146
real_type bnorm = sqrt(vector_handler->dot(vec_r, vec_r, ReSolve::memory::DEVICE));
147147
matrix_handler->setValuesChanged(true, ReSolve::memory::DEVICE);
148148
matrix_handler->matvec(A, vec_x, vec_r, &ONE, &MINUSONE, ReSolve::memory::DEVICE);

0 commit comments

Comments
 (0)