Elementary is a pedagogical sandbox used for teaching collective communication and distributed memory parallel implementations of matrix multiplication, covering the examples in a systematic journey. It is based on the early version of Elemental, a high-level high-performance framework for distributed-memory dense linear algebra that is inspired by PLAPACK and FLAME.
The key idea behind the project is that an appropriate level of abstraction allows one to focus on algorithms rather than getting tied down in implementation details.
There are two main build modes, debug and release. The former maintains a call stack and performs judicious error-checking. Thus debug-mode should be used when testing a new algorithm. You can build it with
make debug
If you would also like to build the debug test drivers for the distributed BLAS routines, run
make test-debug
Similarly, you can build the baremetal version of the library by running
make release
The command
make test-release
perform the equivalent action as in the debug case.
If neither debug nor release modes are specified, both are built. The relevant commands are
make
make test
Check test folder.