package com.skp.experiment.cf.als.hama;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hama.HamaConfiguration;
import org.apache.hama.bsp.BSP;
import org.apache.hama.bsp.BSPPeer;
import org.apache.hama.bsp.sync.SyncException;
import org.apache.mahout.math.MatrixWritable;
import org.apache.mahout.math.VectorWritable;
public class MatrixMultiplication extends BSP<IntWritable, VectorWritable, IntWritable, VectorWritable, MatrixWritable> {
private static int numRowsA;
private static int numColsA;
private static int numRowsB;
private static int numColsB;
private double[][] A;
private double[][] B;
private double[][] C;
@Override
public void cleanup(
BSPPeer<IntWritable, VectorWritable, IntWritable, VectorWritable, MatrixWritable> peer)
throws IOException {
// TODO Auto-generated method stub
super.cleanup(peer);
}
@Override
public void setup(
BSPPeer<IntWritable, VectorWritable, IntWritable, VectorWritable, MatrixWritable> peer)
throws IOException, SyncException, InterruptedException {
HamaConfiguration conf = (HamaConfiguration) peer.getConfiguration();
numRowsA = conf.getInt("numRowsA", 0);
numColsA = conf.getInt("numColsA", 0);
numRowsB = numColsA;
numColsB = conf.getInt("numColsB", 0);
}
private void initResultMatrix() {
C = new double[numRowsA][numColsB];
for (int i = 0; i < numRowsA; i++) {
for (int j = 0; j < numColsB; j++) {
C[i][j] = 0;
}
}
}
@Override
public void bsp(
BSPPeer<IntWritable, VectorWritable, IntWritable, VectorWritable, MatrixWritable> arg0)
throws IOException, SyncException, InterruptedException {
}
}