Commit 7cd86d1d authored by Hu Jintao's avatar Hu Jintao

调整参数

parent aa06df5e
...@@ -14,7 +14,6 @@ import top.ninwoo.test.doMap.DoMap; ...@@ -14,7 +14,6 @@ import top.ninwoo.test.doMap.DoMap;
import top.ninwoo.test.doMap.path; import top.ninwoo.test.doMap.path;
import java.io.*; import java.io.*;
import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.util.*; import java.util.*;
...@@ -49,15 +48,19 @@ public class BisheTestMain implements ApplicationRunner { ...@@ -49,15 +48,19 @@ public class BisheTestMain implements ApplicationRunner {
int[][] link = {{0, 0, 1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 5, 6}}; int[][] link = {{0, 0, 1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 5, 6}};
//task编号 //task编号
int[] func = {1, 3, 3, 3, 2, 2, 4}; int[] func = {1, 3, 3, 3, 2, 2, 4};
//功能分支表
int[][] branch = {{1, 1},{1, 2},{1, 1},{2, 1},{1, 1}};
DoMap doMap = new DoMap(); DoMap doMap = new DoMap();
doMap.doMapApp(); doMap.doMapApp(link,func);
//将节点映射结果保存为List //将节点映射结果保存为List
int[] result = doMap.result; int[] result = doMap.result;
while (result[0] == 0){ boolean flag = repetition(result);
while (result[0] == 0 || flag){
System.out.println("failure mapping :"+Arrays.toString(result)); System.out.println("failure mapping :"+Arrays.toString(result));
doMap.doMapApp(); doMap.doMapApp(link,func);
result = doMap.result; result = doMap.result;
flag = repetition(result);
} }
List<Integer> sequence = new ArrayList<>(); List<Integer> sequence = new ArrayList<>();
for (int a:result for (int a:result
...@@ -94,23 +97,31 @@ public class BisheTestMain implements ApplicationRunner { ...@@ -94,23 +97,31 @@ public class BisheTestMain implements ApplicationRunner {
String loc = null; // String loc = null;
String file_path = "passport.jpg"; String file_path = "passport.jpg";
int number = 1; /* int number = 1;
double eta = ETA;
Long currentime = System.currentTimeMillis(); Long currentime = System.currentTimeMillis();
Long fun1time = Long.valueOf(0); Long fun1time = Long.valueOf(0);
List<Double> compCapacity = Arrays.asList(1.112341341313, 0.5196272109574349, 0.675827555541419, 0.7637869915859579, 0.7998320296858645, List<Double> compCapacity = Arrays.asList(1.112341341313, 0.5196272109574349, 0.675827555541419, 0.7637869915859579, 0.7998320296858645,
0.638652700648973, 0.6396760676518485, 0.5615337810185533, 0.6356797503522186, 0.8266103444996542, 0.6924037701405794, 0.638652700648973, 0.6396760676518485, 0.5615337810185533, 0.6356797503522186, 0.8266103444996542, 0.6924037701405794,
0.9371892689614395, 0.6949256728585527, 0.6212614126622614, 0.6318393608430264, 0.7494680794385384, 0.9983949989039682, 0.9371892689614395, 0.6949256728585527, 0.6212614126622614, 0.6318393608430264, 0.7494680794385384, 0.9983949989039682,
0.5610722256465777, 0.6415780028672076, 0.9371892689, 0.5269659075274151, 0.8219152161388867, 0.5815463889106197, 0.8431429542046349, 0.5610722256465777, 0.6415780028672076, 0.9371892689, 0.5269659075274151, 0.8219152161388867, 0.5815463889106197, 0.8431429542046349,
0.31386253514456774, 0.6045132365410817, 0.8102279249524735, 0.47057296148341216, 0.8529743685059654, 0.8177711194660409);//取值范围0.2到1,首尾固定为1M/s 0.31386253514456774, 0.6045132365410817, 0.8102279249524735, 0.47057296148341216, 0.8529743685059654, 0.8177711194660409);//取值范围0.2到1,首尾固定为1M/s*/
LinkedList<Double> tranDelay = doMap.list; /* LinkedList<Double> tranDelay = doMap.list;
for (int i = 0;i<tranDelay.size();i++){ for (int i = 0;i<tranDelay.size();i++){
tranDelay.set(i,tranDelay.get(i)/(i+2)+(Math.random()*10+1)); tranDelay.set(i,tranDelay.get(i)/(i+2)+(Math.random()*10+1));
}*/
// DataPackage dataPackage = combine(file_path, lastHop, edgeMaps, nodeMaps);
// send(dataPackage, targetIp, 2020);
}
private boolean repetition(int[] result) {
HashSet<Integer> set = new HashSet<>();
for (int a : result){
set.add(a);
} }
DataPackage dataPackage = combine(number, sequence, loc, file_path, eta, currentime, fun1time, compCapacity,tranDelay); if (set.size()==result.length) return false;
send(dataPackage, targetIp, 2020); else return true;
} }
private void creatParent(File dirpath) { private void creatParent(File dirpath) {
...@@ -122,13 +133,12 @@ public class BisheTestMain implements ApplicationRunner { ...@@ -122,13 +133,12 @@ public class BisheTestMain implements ApplicationRunner {
} }
private static DataPackage combine(int number, List<Integer> sequence, String loc, String file_path, private static DataPackage combine(int number, List<Integer> sequence, String loc, String file_path,
double eta, Long Currentime, Long fun1time, List<Double> compCapacity, Long Currentime, Long fun1time, List<Double> compCapacity,
LinkedList<Double> tranDelay) { LinkedList<Double> tranDelay) {
DataPackage dataPackage = new DataPackage(); DataPackage dataPackage = new DataPackage();
dataPackage.setNumber(number); dataPackage.setNumber(number);
dataPackage.setPicture(loadPicture(file_path)); dataPackage.setPicture(loadPicture(file_path));
dataPackage.setSequence(sequence); dataPackage.setSequence(sequence);
dataPackage.setEta(eta);
dataPackage.setCurrentime(Currentime); dataPackage.setCurrentime(Currentime);
dataPackage.setFun1time(fun1time); dataPackage.setFun1time(fun1time);
dataPackage.setCompCapacity(compCapacity); dataPackage.setCompCapacity(compCapacity);
......
...@@ -17,7 +17,7 @@ public class CycleTopo { ...@@ -17,7 +17,7 @@ public class CycleTopo {
ToponetImpl tp = new ToponetImpl(); ToponetImpl tp = new ToponetImpl();
SimData sd = new SimData(); SimData sd = new SimData();
//tp.delHistory(); //tp.delHistory();
File file = new File("topusim_1.txt"); File file = new File("D:\\LabratoryJavaPro\\codingDownload\\latestCoding\\topusim_1.txt");
//D:\LabratoryJavaPro\codingDownload\latestCoding\ //D:\LabratoryJavaPro\codingDownload\latestCoding\
List<WeiXingData> wxData = null; List<WeiXingData> wxData = null;
try { try {
......
...@@ -29,7 +29,10 @@ public class DoMap { ...@@ -29,7 +29,10 @@ public class DoMap {
static int c = 7; //8 static int c = 7; //8
//子任务依赖关系 边 //子任务依赖关系 边
static int[][] link = {{0, 0, 1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 5, 6}};// static int[][] link; //
//task编号
static int[] func;
//固定映射任务数==起始任务+终止任务 //固定映射任务数==起始任务+终止任务
static final int C_STABLE = 2; static final int C_STABLE = 2;
...@@ -75,14 +78,18 @@ public class DoMap { ...@@ -75,14 +78,18 @@ public class DoMap {
static double s = 1.5; static int c1 = 1; static int c2 = 1; static double s = 1.5; static int c1 = 1; static int c2 = 1;
public static void main(String[] args) { public static void main(String[] args) {
doMapApp(); //子任务依赖关系 边
int[][] link = {{0, 0, 1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 5, 6}};
//task编号
int[] func = {1, 3, 3, 3, 2, 2, 4};
doMapApp(link,func);
} }
//节点最终分配结果 //节点最终分配结果
public static int[] result = new int[c]; public static int[] result = new int[c];
//节点间最短路由 //节点间最短路由
public static Stack[] route = new Stack[link[0].length+1]; public static Stack[] route;
//业务发起时刻 //业务发起时刻
public static long startT; public static long startT;
//传输时延约束 //传输时延约束
...@@ -90,7 +97,11 @@ public class DoMap { ...@@ -90,7 +97,11 @@ public class DoMap {
//路由表 //路由表
public static int[][] lastHop; public static int[][] lastHop;
public static void doMapApp() { public static void doMapApp(int[][] link1, int[] func1) {
link = link1;
func = func1;
route = new Stack[link[0].length+1];
for (slotnum = 1;slotnum<=3;slotnum++){ for (slotnum = 1;slotnum<=3;slotnum++){
......
package com.pitong.business.service;
import com.pitong.business.item.Picture;
public interface IPicProcess {
String in_file = "/pic/in.jpg";
String out_file = "/pic/out.jpg";
String in_file1 = "/pic/in1.jpg";
String in_file2 = "/pic/in2.jpg";
String out_file1 = "/pic/out1.jpg";
String out_file2 = "/pic/out2.jpg";
public void picProcess(Picture... pictures);
}
...@@ -65,7 +65,7 @@ public class ServerService { ...@@ -65,7 +65,7 @@ public class ServerService {
// System.out.println("=========================="); // System.out.println("==========================");
communicationToCloud("receive from sate"+sequence.get(0)); communicationToCloud("receive from sate"+sequence.get(0));
// System.out.println("=========2=========="); // System.out.println("=========2==========");
cutProcess(eta); cutProcess();
Long l11 = System.currentTimeMillis(); Long l11 = System.currentTimeMillis();
double compCap = compCapacity.get(sequence.get(0)-1); double compCap = compCapacity.get(sequence.get(0)-1);
...@@ -111,7 +111,7 @@ public class ServerService { ...@@ -111,7 +111,7 @@ public class ServerService {
communicationToCloud("=========================="); communicationToCloud("==========================");
System.out.println("=========================="); System.out.println("==========================");
}else{ }else{
DataPackage dataPackage1 = combine(2,1, sequence, loc, out_file1, l111, finalFun1time, compCapacity,route,sequence.get(1), tranDelay); DataPackage dataPackage1 = combine(2,1, sequence, loc, out_file2, l111, finalFun1time, compCapacity,route,sequence.get(1), tranDelay);
String app_name2 = "sate" + sequence.get(1); String app_name2 = "sate" + sequence.get(1);
String IP2 = ipService.getIpByAppName(app_name2); String IP2 = ipService.getIpByAppName(app_name2);
//communicationToCloud("current slot: " + ((System.currentTimeMillis()-startime)/slot + 1)); //communicationToCloud("current slot: " + ((System.currentTimeMillis()-startime)/slot + 1));
...@@ -539,7 +539,7 @@ public class ServerService { ...@@ -539,7 +539,7 @@ public class ServerService {
long length = picture.getData().length/1024; long length = picture.getData().length/1024;
long l2 = System.currentTimeMillis(); long l2 = System.currentTimeMillis();
tailorProcess(coe); tailorProcess();
long l20 = System.currentTimeMillis(); long l20 = System.currentTimeMillis();
Long latency = Math.round(length/compCap); Long latency = Math.round(length/compCap);
...@@ -670,9 +670,21 @@ public class ServerService { ...@@ -670,9 +670,21 @@ public class ServerService {
} }
} }
private void tailorProcess(double coe) {
private void createParents(File f) {
String parentName = f.getParent();
File parent = new File(parentName);
if (!parent.exists()) {
createParents(parent);
parent.mkdir();
}
}
private void tailorProcess() {
try { try {
String command = "python tailor-pro.py " + in_file + " " + out_file + " " + coe; String command = "python tailor-pro.py " + in_file + " " + out_file + " " + 0.5;
Process process = Runtime.getRuntime().exec(command); Process process = Runtime.getRuntime().exec(command);
process.waitFor(); process.waitFor();
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
...@@ -711,9 +723,9 @@ public class ServerService { ...@@ -711,9 +723,9 @@ public class ServerService {
} }
} }
private void cutProcess(double eta) { private void cutProcess() {
try { try {
String command = "python cut-pro.py " + in_file + " " + out_file1 + " " + out_file2 + " " + eta; String command = "python cut-pro.py " + in_file + " " + out_file1 + " " + out_file2 + " " + 0.5;
Process process = Runtime.getRuntime().exec(command); Process process = Runtime.getRuntime().exec(command);
process.waitFor(); process.waitFor();
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
...@@ -721,14 +733,7 @@ public class ServerService { ...@@ -721,14 +733,7 @@ public class ServerService {
} }
} }
private void createParents(File f) {
String parentName = f.getParent();
File parent = new File(parentName);
if (!parent.exists()) {
createParents(parent);
parent.mkdir();
}
}
private Picture loadPicture(String pic_url) { private Picture loadPicture(String pic_url) {
try { try {
......
package com.pitong.business.service.picImpl;
import com.pitong.business.item.Picture;
import com.pitong.business.service.IPicProcess;
import java.io.IOException;
import java.util.ArrayList;
import static com.pitong.business.service.saveFile.Save.loadPicture;
import static com.pitong.business.service.saveFile.Save.saveToFile;
public class binaryProcess implements IPicProcess {
public static ArrayList<Picture> picPara = new ArrayList<>();
@Override
public void picProcess(Picture... pictures) {
for (Picture picture:pictures){
saveToFile(picture,in_file);
}
try {
String command = "python binary-pro.py " + in_file + " " + out_file;
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
picPara.add(loadPicture(out_file));
}
}
package com.pitong.business.service.picImpl;
import com.pitong.business.item.Picture;
import com.pitong.business.service.IPicProcess;
import java.io.IOException;
import java.util.ArrayList;
import static com.pitong.business.service.saveFile.Save.*;
public class cutProcess implements IPicProcess {
public static ArrayList<Picture> picPara = new ArrayList<>();
@Override
public void picProcess(Picture... pictures) {
for (Picture picture:pictures){
saveToFile(picture,in_file);
}
try {
String command = "python cut-pro.py " + in_file + " " + out_file1 + " " + out_file2 + " " + 0.5;
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
picPara.add(loadPicture(out_file1));
picPara.add(loadPicture(out_file2));
}
}
package com.pitong.business.service.picImpl;
import com.pitong.business.item.Picture;
import com.pitong.business.service.IPicProcess;
import java.io.IOException;
import java.util.ArrayList;
import static com.pitong.business.service.saveFile.Save.loadPicture;
import static com.pitong.business.service.saveFile.Save.saveToFile;
public class greyProcess implements IPicProcess {
public static ArrayList<Picture> picPara = new ArrayList<>();
@Override
public void picProcess(Picture... pictures) {
for (Picture picture:pictures){
saveToFile(picture,in_file);
}
try {
String command = "python grey-pro.py " + in_file + " " + out_file;
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
picPara.add(loadPicture(out_file));
}
}
package com.pitong.business.service.picImpl;
import com.pitong.business.item.Picture;
import com.pitong.business.service.IPicProcess;
import java.io.IOException;
import java.util.ArrayList;
import static com.pitong.business.service.saveFile.Save.loadPicture;
import static com.pitong.business.service.saveFile.Save.saveToFile;
public class mergePorcess implements IPicProcess {
public static ArrayList<Picture> picPara = new ArrayList<>();
@Override
public void picProcess(Picture... pictures) {
saveToFile(pictures[0],in_file1);
saveToFile(pictures[1],in_file2);
try {
String command = "python merge-pro.py " + in_file1 + " " + in_file2 + " " + out_file;
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
picPara.add(loadPicture(out_file));
}
}
package com.pitong.business.service.picImpl;
import com.pitong.business.item.Picture;
import com.pitong.business.service.IPicProcess;
import java.io.IOException;
import java.util.ArrayList;
import static com.pitong.business.service.saveFile.Save.loadPicture;
import static com.pitong.business.service.saveFile.Save.saveToFile;
public class tailorProcess implements IPicProcess {
public static ArrayList<Picture> picPara = new ArrayList<>();
@Override
public void picProcess(Picture... pictures) {
for (Picture picture:pictures){
saveToFile(picture,in_file);
}
try {
String command = "python tailor-pro.py " + in_file + " " + out_file + " " + 0.8;
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
picPara.add(loadPicture(out_file));
}
}
package com.pitong.business.service.saveFile;
import com.pitong.business.item.Picture;
import java.io.*;
public class Save {
public static void saveToFile(Picture picture, String file_path) {
byte[] pic_data = picture.getData();
File targetFile = new File(file_path);
if (targetFile.exists()) {
targetFile.delete();
}
//为什么创建父类
createParents(targetFile);
try {
targetFile.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(targetFile);
fileOutputStream.write(pic_data);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void createParents(File f) {
String parentName = f.getParent();
File parent = new File(parentName);
if (!parent.exists()) {
createParents(parent);
parent.mkdir();
}
}
public static Picture loadPicture(String pic_url) {
try {
File f = new File(pic_url);
InputStream is = new FileInputStream(f);
byte[] b = new byte[(int) f.length()];
is.read(b);
is.close();
Picture picture = new Picture();
picture.setData(b);
return picture;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment