package com.skp.experiment.cf.als.hama; public class MatMult { private static double[][] A; private static double[][] B; private static double[][] C; private static int N; public static class MatMultThread extends Thread { int row; MatMultThread(int i) { row = i; this.start(); } public void run() { for (int i = 0; i < N; i++) { C[row][i] = 0; for (int j = 0; j < N; j++) { C[row][i] += A[row][j] * B[j][i]; } } } } public static void Multiply(double[][] a, double[][] b, double[][] c, int numRowsA, int numColsA, int numColsB) throws InterruptedException { N = numColsA; A = a; B = b; C = c; MatMultThread threads[] = new MatMultThread[numRowsA]; for (int i = 0; i < numRowsA; i++) { threads[i] = new MatMultThread(i); } for (int i = 0; i < numRowsA; i++) { threads[i].join(); } } }