Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions MatrixMultiply.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import sys
import random
import threading
from threading import Thread

matrixDim = int(sys.argv[1])
randomMaxValue = 100
#t1 = [0 for i in range(matrixDim)]

t1 = []

## INITIALISING MATRICES A B C

matrixA = [[0 for i in range(matrixDim)] for j in range(matrixDim)]
matrixB = [[0 for i in range(matrixDim)] for j in range(matrixDim)]
matrixC = [[0 for i in range(matrixDim)] for j in range(matrixDim)]

for i in range (0,matrixDim):
for j in range (0,matrixDim):

matrixA[i][j] = random.randint(0, randomMaxValue)
matrixB[i][j] = random.randint(0, randomMaxValue)

## DEFINING THREAD

def MyThread1(arg):

print "Thread " + str(arg)

for j in range(0,matrixDim):
for k in range (0,matrixDim):
matrixC[arg][j] += matrixA[arg][k] * matrixB[k][j]
# print "Thread " + str(arg) + " " + str(j)

def printMat():
for i in range (0, matrixDim):
print "\n"
for j in range (0,matrixDim):
print str(matrixC[i][j]) + " ",


for i in range (0,matrixDim):
t = threading.Thread(target=MyThread1, args=(i, ))
t1.append(t)
t.start()

for i in range (0,matrixDim):
t1[i].join()

#for temp in t:
# temp.join()

Binary file added finalExperimentRuns/MatrixMultiplier.class
Binary file not shown.
134 changes: 134 additions & 0 deletions finalExperimentRuns/MatrixMultiplier.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
import java.util.*;

public class MatrixMultiplier {

static int[][] matrixA;
static int[][] matrixB;
static int[][] matrixC;

static final int randomMaxValue = 100;

public MatrixMultiplier (int N) {

matrixA = new int[N][N];
matrixB = new int[N][N];
matrixC = new int[N][N];

}

public void fillMatrixRandom() {


Random rn = new Random();


int i = 0;
int j = 0;

for (i=0; i<matrixA.length; i++) {

for (j=0; j<matrixA.length; j++) {

matrixA[i][j] = rn.nextInt(randomMaxValue);
matrixB[i][j] = rn.nextInt(randomMaxValue);

}

}
}


public void printInputMatrices() {

int i = 0;
int j = 0;

for (i=0; i<matrixA.length; i++) {

for (j=0; j<matrixA.length; j++) {

System.out.print(" " + matrixA[i][j] + " ");

}

System.out.println();

}

for (i=0; i<matrixA.length; i++) {

for (j=0; j<matrixA.length; j++) {

System.out.print(" " + matrixB[i][j] + " ");

}

System.out.println();

}
}

public void multiplyMatrices() {

int i = 0;
int j = 0;
int k = 0;

for (i=0; i<matrixA.length; i++) {

for (j=0; j<matrixA.length; j++) {

for (k=0; k<matrixA.length; k++) {

matrixC[i][j] += matrixA[i][k] * matrixB[k][j];

}


}


}



}

public void printResultMatrix() {

int i = 0;
int j = 0;

for (i=0; i<matrixA.length; i++) {

for (j=0; j<matrixA.length; j++) {

System.out.print(" " + matrixC[i][j] + " ");

}

System.out.println();

}



}



public static void main(String[] args) {


MatrixMultiplier multiplier = new MatrixMultiplier(Integer.parseInt(args[0]));
multiplier.fillMatrixRandom();
//multiplier.printInputMatrices();
multiplier.multiplyMatrices();
//multiplier.printResultMatrix();



}

}

73 changes: 73 additions & 0 deletions finalExperimentRuns/MatrixMultiplier.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import sys
import random
class MatrixMultiplier:
matrixA = [[]]
matrixB = [[]]
matrixC = [[]]

matrixDim = 0
randomMaxValue = 100
def __init__(self, N):
self.matrixDim = int(N)

self.matrixA = [[0 for i in range(self.matrixDim)] for j in range(self.matrixDim)]
self.matrixB = [[0 for i in range(self.matrixDim)] for j in range(self.matrixDim)]
self.matrixC = [[0 for i in range(self.matrixDim)] for j in range(self.matrixDim)]

def fillMatrices(self):

i = 0
j = 0

for i in range (0, self.matrixDim):
for j in range (0, self.matrixDim):

self.matrixA[i][j] = random.randint(0, self.randomMaxValue)
self.matrixB[i][j] = random.randint(0, self.randomMaxValue)


def printInputMatrices(self):
i = 0
j = 0

for i in range (0, self.matrixDim):
for j in range (0, self.matrixDim):
print " " + str(self.matrixA[i][j]) + " ",

print "\n"

for i in range (0, self.matrixDim):
for j in range (0, self.matrixDim):

print " " + str(self.matrixB[i][j]) + " ",

print "\n"

def multiplyMatrices(self):

for i in range(0, self.matrixDim):
for j in range(0, self.matrixDim):
for k in range (0, self.matrixDim):
self.matrixC[i][j] += self.matrixA[i][k] * self.matrixB[k][j]


def printOutputMatrix(self):

for i in range (0, self.matrixDim):
for j in range (0, self.matrixDim):

print " " + str(self.matrixC[i][j]) + " ",

print "\n"



def main():
multiplier = MatrixMultiplier(str(sys.argv[1]))
multiplier.fillMatrices()
#multiplier.printInputMatrices()
multiplier.multiplyMatrices()
#multiplier.printOutputMatrix()

if __name__ == "__main__":
main()
22 changes: 22 additions & 0 deletions finalExperimentRuns/MatrixMultiplier_clean.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import sys
import random

matrixDim = 1000
randomMaxValue = 100

matrixA = [[0 for i in range(matrixDim)] for j in range(matrixDim)]
matrixB = [[0 for i in range(matrixDim)] for j in range(matrixDim)]
matrixC = [[0 for i in range(matrixDim)] for j in range(matrixDim)]


for i in range (0, matrixDim):
for j in range (0, matrixDim):

matrixA[i][j] = random.randint(0, randomMaxValue)
matrixB[i][j] = random.randint(0, randomMaxValue)


#for i in range(0, matrixDim):
# for j in range(0, matrixDim):
# for k in range (0, matrixDim):
# matrixC[i][j] += matrixA[i][k] * matrixB[k][j]
1 change: 1 addition & 0 deletions finalExperimentRuns/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# compArch
Loading