Table 1.
A short synopsis of programming paradigms
Programming paradigm | Description |
---|---|
Sequential implementation | Direct mapping of algorithm description to code, with sequential linear algebra primitives applied on large vectors (simple loops), and sparse-matrix times vector operations. |
Multi-threaded/Multi-core implementation | Linear algebra primitives implemented with Linux POSIX threads. |
GPU implementation | Memory for iteration vectors, sparse matrix was allocated in the GPU accelerator, and linear algebra primitives done in the GPU, with a program on CPU acting as master. |
Cluster-programming | Memory for iteration vectors is distributed in different processes spanning several machines, sparse matrix lines bands are also distributed, and communication is implemented between processes to consolidate needed data for each process to proceed. |