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 public class SciTestParMandel {
00044
00045 public static void main(String[] args) throws Exception{
00046 ScilabService service = new ScilabService();
00047
00048 if(args.length !=11){
00049 System.out.println("Invalid number of parameter : " + args.length);
00050 return;
00051 }
00052
00053 int nbEngine = Integer.parseInt(args[2]);
00054 service.deployEngine(args[0], args[1], nbEngine);
00055 Thread.sleep(nbEngine * 4000);
00056
00057 BufferedReader reader = new BufferedReader(new FileReader(args[9]));
00058 PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(args[10])));
00059
00060 int xres = Integer.parseInt(args[3]);
00061 int yres = Integer.parseInt(args[4]);
00062 double xmin = Double.parseDouble(args[5]) ;
00063 double xmax = Double.parseDouble(args[6]) ;
00064 double ymin = Double.parseDouble(args[7]) ;
00065 double ymax = Double.parseDouble(args[8]) ;
00066 int precision;
00067 int nbBloc;
00068
00069 String line;
00070 String arrayLine[];
00071 FutureDoubleMatrix mandelResult;
00072
00073 double startTime;
00074 double endTime;
00075 double result[];
00076
00077 for(int i = 0; (line = reader.readLine()) != null; i++){
00078
00079 if(line.trim().startsWith("#"))
00080 continue;
00081
00082 if(line.trim().equals(""))
00083 break;
00084
00085 arrayLine = line.split(" ");
00086
00087 precision = Integer.parseInt(arrayLine[1].trim());
00088 nbBloc = Integer.parseInt(arrayLine[0].trim());
00089
00090 startTime = System.currentTimeMillis();
00091 mandelResult = GridMatrix.calMandelbrot(service, "mandel" + i, xres, yres, xmin, xmax, ymin, ymax, precision, nbBloc);
00092 result= mandelResult.get();
00093 service.removeAllEventListenerTask();
00094 endTime = System.currentTimeMillis();
00095
00096 System.out.println(nbEngine + " " + xres +" " + yres + " " + precision + " " + nbBloc + " " + (endTime - startTime));
00097 writer.println(nbEngine + " " + xres +" " + yres + " " + precision + " " + nbBloc + " " + (endTime - startTime));
00098
00099
00100
00101
00102
00103
00104
00105 }
00106
00107 reader.close();
00108 writer.close();
00109 service.exit();
00110 System.exit(0);
00111
00112 }
00113
00114 }