Java COMPSs Matrix Multiplication, out-of-core using files, reproducible example, data persistence False, MareNostrum V

**Name:** Matrix Multiplication **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. N and M have been hardcoded to 6 and 8 respectively. # Execution instructions Usage: ``` runcompss --classpath=application_sources/jar/matmul.jar matmul.files.Matmul inputFolder/ outputFolder/ ``` where: * inputFolder: folder where input files are located * outputFolder: folder where output files are located # Execution Example ``` runcompss matmul.files.Matmul dataset/inputs/ dataset/outputs/ ``` # Build ## Option 1: Native java ``` javac src/main/java/matmul/*/*.java cd src/main/java/; jar cf matmul.jar matmul/ cd ../../../; mv src/main/java/matmul.jar jar/ ``` ## Option 2: Maven ``` mvn clean package ```

Publisher
[<#ROCrate::Organization https://ror.org/05sd8tv96 @properties={"@id"=>"https://ror.org/05sd8tv96", "@type"=>"Organization", "name"=>"Barcelona Supercomputing Center"}>]
License
Apache-2.0

Contents