Name: Matrix multiplication with Files
Contact Person: support-compss@bsc.es
Access Level: public
License Agreement: Apache2
Platform: COMPSs
Description
Matrix multiplication is a binary operation that takes a pair of matrices and produces another matrix.
If A is an n×m matrix and B is an m×p matrix, the result AB of their multiplication is an n×p matrix defined only if the number of columns m in A is equal to the number of rows m in B. When multiplying A and B, the elements of the rows in A are multiplied with corresponding columns in B.
In this implementation, A and B are square matrices (same number of rows and columns), and so it is the result matrix C. Each matrix is divided in N blocks of M doubles. The multiplication of two blocks is done by a multiply task method with a simple three-nested-loop implementation. When executed with COMPSs, the main program generates N^3^ tasks arranged as N^2^ chains of N tasks in the dependency graph.
Execution instructions
Usage:
runcompss --lang=python src/matmul_files.py numberOfBlocks blockSize
where:
- numberOfBlocks: Number of blocks inside each matrix
- blockSize: Size of each block
Execution Examples
runcompss --lang=python src/matmul_files.py 4 4
runcompss src/matmul_files.py 4 4
python -m pycompss src/matmul_files.py 4 4
Build
No build is required
Click and drag the diagram to pan, double click or use the controls to zoom.
Version History
Version 1 (earliest) Created 30th May 2023 at 09:55 by Raül Sirvent
Frozen
Version-1
a0f749a
Creator
Additional credit
The Workflows and Distributed Computing Team (https://www.bsc.es/discover-bsc/organisation/scientific-structure/workflows-and-distributed-computing/)
Submitter
Views: 2269 Downloads: 252
Created: 30th May 2023 at 09:55
Last updated: 26th Oct 2023 at 10:42
None