wiki:application_pages/apps/java/matmul

Application Name

Matrix Multiplication

Summary

  • Name: Matrix Multiplication
  • Contact Person: support-compss@bsc.es
  • Access Level: public
  • License Agreement: GPL
  • Platform: COMPSs
  • Repository: Matrix Multiplication

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 N3 tasks arranged as N2 chains of N tasks in the dependency graph.

Versions

There are three versions of Matrix Multiplication, depending on the data types used to store the blocks.

Version 1

files, where the matrix blocks are stored in files.

Version 2

objects, where the matrix blocks are represented by objects.

Version 3

arrays, where the matrix blocks are stored in arrays.

Execution instructions

Usage: runcompss matmul.objects.Matmul <MSIZE> <BSIZE> runcompss matmul.files.Matmul <MSIZE> <BSIZE> runcompss matmul.arrays.Matmul <MSIZE> <BSIZE>

where:

  • - MSIZE: Number of blocks of the matrix
  • - BSIZE: Number of elements per block

Execution Example

runcompss matmul.objects.Matmul 16 4

Build

Option 1: Native java

cd ~/workspace_java/matmul/; 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

cd ~/workspace_java/matmul/ mvn clean package

Last modified 9 years ago Last modified on 10/26/15 09:33:43

Attachments (1)

Download all attachments as: .zip