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 org.objectweb.proactive.ext.scilab.monitor.ScilabService;
00040 import org.objectweb.proactive.ext.scilab.util.FutureDoubleMatrix;
00041 import org.objectweb.proactive.ext.scilab.util.GridMatrix;
00042
00043
00044 public class SciTestParMult {
00045 public SciTestParMult() {
00046 }
00047
00048 public static void main(String[] args) throws Exception {
00049 ScilabService service = new ScilabService();
00050
00051 if (args.length != 5) {
00052 System.out.println("Invalid number of parameter : " + args.length);
00053 return;
00054 }
00055
00056 int nbEngine = Integer.parseInt(args[2]);
00057 service.deployEngine(args[0], args[1], nbEngine);
00058 BufferedReader reader = new BufferedReader(new FileReader(args[3]));
00059 PrintWriter writer = new PrintWriter(new BufferedWriter(
00060 new FileWriter(args[4])));
00061
00062 int nbRow;
00063 int nbCol;
00064
00065 double[] m1;
00066 double[] m2;
00067 double[] m3;
00068 FutureDoubleMatrix result;
00069
00070 double startTime;
00071 double endTime;
00072 String line;
00073
00074 for (int i = 0; (line = reader.readLine()) != null; i++) {
00075 if (line.trim().startsWith("#")) {
00076 continue;
00077 }
00078
00079 if (line.trim().equals("")) {
00080 break;
00081 }
00082
00083 nbRow = Integer.parseInt(line);
00084 nbCol = Integer.parseInt(line);
00085 System.out.println(nbEngine + " size=" + nbRow );
00086 m1 = new double[nbRow * nbCol];
00087 m2 = new double[nbRow * nbCol];
00088 for (int k = 0; k < (nbRow * nbCol); k++) {
00089 m1[k] = Math.random() * 10.0;
00090 m2[k] = Math.random() * 10.0;
00091 }
00092
00093 startTime = System.currentTimeMillis();
00094 result = GridMatrix.mult(service, "mult" + i, m1, nbRow, nbCol, m2, nbRow, nbCol);
00095 m3 = result.get();
00096
00097 endTime = System.currentTimeMillis();
00098 System.out.println(endTime - startTime);
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108 writer.println(nbEngine + " " + nbRow + (endTime - startTime));
00109 }
00110
00111 reader.close();
00112 writer.close();
00113 service.exit();
00114 System.exit(0);
00115 }
00116 }