-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathREADME_charm
More file actions
45 lines (32 loc) · 1.43 KB
/
README_charm
File metadata and controls
45 lines (32 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Authors: Jonathan Lifflander and Phil Miller
Compilation:
============
Set the CHARMC environment variable to point at
charm_installation/bin/charmc, and run make. This will build the
sequential, MPI, and Charm++ versions.
Guide to the Charm++ code:
==========================
- hpccg.ci:
Describes the main parallel control flow of the CG algorithm,
including the sparse matrix-vector multiplication with exchange of x
elements, and the reduction of residuals from global dot
products. Equivalent to main.cpp, HPCCG.cpp, and
exchange_externals.cpp from the sequential/MPI code.
- charmHpccg.cpp:
Contains the code for exchanging information of which chares will need
which elements of x for the SpMV in each iteration, as well the
mainchare constructor called at startup. Equivalent to
make_local_matrix.cpp from the MPI code, and part of main.cpp.
- charmHpccg.h:
Contains class and data structure declarations for the chares used in
the algorithm.
Sequential code used from the original:
=======================================
- HPC_Sparse_matrix.hpp: defines the CSR matrix data structure
- HPC_sparsemv.{hpp,cpp}: implements the sequential sparse
matrix-vector multiplication on HPC_Sparse_matrix and a simple
contiguous vector
- make_local_matrix.cpp: factored-out identify_externals() function
for identifying needed elements of x that are not also kept locally.
- ddot.cpp, waxpby.cpp: sequential vector dot-product and addition
kernels