dualop_explicit_test
My testing project for explicit assembly of the dual operator using accelerators with emphasis on intel
THIS REPO IS OUTDATED. I AM NOW WORKING DIRECTLY IN THE ESPRESO LIBRARY.
How to compile
To install all the required dependencies (mainly the SuiteSparse package), run the install_dependencies.sh
script.
Alternatively, put a symlink pointing to your SuiteSparse installation into the dependencies
directory.
For each machine and software, there are different compilation commands. To compile for a certain platform, search it in the Makefile (lines 70-100), load the necessary modules as noted in the comments, and make
the associated target, one or more of dpcpp
, hostmkl
, cuda
, hipamd
, hipnvidia
.
How to run the program
To run the program, one has to pass several parameters to the program. Use e.g.
make cuda
./program.cuda.x 2 SQUARE4 64 128 100 NGPEDSDMMS
This runs the program with matrices representing a 2-dimensional mesh divided into 64x64 SQUARE4 elements, there will be 128 such matrices, and each of them will then be applied 100 times. Nvidia GPU will be used, the kernels are all submitted in Parallel, we Explicitly and Directly assemble the matrix
For a brief summary of the options, run make help
. The most relevant is the mesh dimensionality and size, and the CPU/GPU option.
What this program actually does
It computes the matrix product
The matrices
Because
A totally different way to calculate