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
00042 import org.objectweb.proactive.ProActive;
00043 import org.objectweb.proactive.ext.scilab.SciEngineWorker;
00044 import org.objectweb.proactive.ext.scilab.SciResult;
00045 import org.objectweb.proactive.ext.scilab.SciTask;
00046
00047 public class SciTest4 {
00048
00052 public static void main(String[] args) throws Exception {
00053 if (args.length != 2) {
00054 System.out.println("Invalid number of parameter : " + args.length);
00055 return;
00056 }
00057
00058
00059 SciEngineWorker sciEngineWorker = (SciEngineWorker) ProActive.newActive(SciEngineWorker.class.getName(), null);
00060
00061 BufferedReader reader = new BufferedReader(new FileReader(args[0]));
00062 PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(args[1])));
00063
00064 double[] m1;
00065 double[] m2;
00066
00067 String line;
00068 int nbRow;
00069 int nbCol;
00070
00071 double startTime;
00072 double endTime;
00073
00074 while ((line = reader.readLine()) != null) {
00075 if(line.trim().startsWith("#"))
00076 continue;
00077
00078 if (line.trim().equals(""))
00079 break;
00080
00081 nbRow = Integer.parseInt(line);
00082 nbCol = Integer.parseInt(line);
00083
00084 m1 = new double[nbRow * nbCol];
00085 m2 = new double[nbRow * nbCol];
00086 for (int i = 0; i < nbRow * nbCol; i++) {
00087 m1[i] = (double) (Math.random() * 10);
00088 m2[i] = (double) (Math.random() * 10);
00089 }
00090
00091 SciDoubleMatrix sciMatrix1 = new SciDoubleMatrix("M1", nbRow, nbCol, m1);
00092 SciDoubleMatrix sciMatrix2 = new SciDoubleMatrix("M2", nbRow, nbCol, m2);
00093 SciData sciMatrix3 = new SciData("M3");
00094
00095 SciTask sciTask = new SciTask("mult");
00096 sciTask.addDataIn(sciMatrix1);
00097 sciTask.addDataIn(sciMatrix2);
00098 sciTask.addDataOut(sciMatrix3);
00099 sciTask.setJob(sciMatrix3.getName() + "=" + sciMatrix1.getName() + "*" + sciMatrix1.getName() + ";");
00100
00101 startTime = System.currentTimeMillis();
00102
00103 SciResult sciResult = sciEngineWorker.execute(sciTask);
00104 sciMatrix3 = (SciData) sciResult.getList().get(0);
00105
00106 endTime = System.currentTimeMillis();
00107
00108
00109 writer.println(nbRow + " " + (endTime - startTime));
00110 }
00111
00112 reader.close();
00113 writer.close();
00114
00115 System.exit(0);
00116 }
00117
00118 }