00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.ext.scilab.test;
00032
00033 import java.io.BufferedReader;
00034 import java.io.BufferedWriter;
00035 import java.io.FileReader;
00036 import java.io.FileWriter;
00037 import java.io.PrintWriter;
00038
00039 import javasci.SciData;
00040 import javasci.SciDoubleMatrix;
00041 import javasci.Scilab;
00042
00043 public class SciTestSeqMult {
00044
00045 public static void main(String[] args) throws Exception {
00046
00047 if (args.length != 2) {
00048 System.out.println("Invalid number of parameter : " + args.length);
00049 return;
00050 }
00051
00052 BufferedReader reader = new BufferedReader(new FileReader(args[0]));
00053 PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(
00054 args[1])));
00055
00056 double[] m1;
00057 double[] m2;
00058
00059 String line;
00060 int nbRow;
00061 int nbCol;
00062
00063 double startTime;
00064 double endTime;
00065
00066 while ((line = reader.readLine()) != null) {
00067 if(line.trim().startsWith("#"))
00068 continue;
00069
00070 if (line.trim().equals(""))
00071 break;
00072
00073 nbRow = Integer.parseInt(line);
00074 nbCol = Integer.parseInt(line);
00075
00076 m1 = new double[nbRow * nbCol];
00077 m2 = new double[nbRow * nbCol];
00078 for (int i = 0; i < nbRow * nbCol; i++) {
00079 m1[i] = Math.random() * 10.0;
00080 m2[i] = Math.random() * 10.0;
00081 }
00082
00083 startTime = System.currentTimeMillis();
00084 Scilab.sendData(new SciDoubleMatrix("A", nbRow, nbCol, m1));
00085 Scilab.sendData(new SciDoubleMatrix("B", nbRow, nbCol, m2));
00086 Scilab.sendData(new SciData("C"));
00087 Scilab.exec("C=A*B;");
00088
00089 SciData sciResult = Scilab.receiveDataByName("C");
00090 endTime = System.currentTimeMillis();
00091
00092 System.out.println(endTime - startTime);
00093
00094 writer.println(nbRow + " " + (endTime - startTime));
00095 }
00096
00097 reader.close();
00098 writer.close();
00099 }
00100 }