no message
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package _VisualDVM.TestingSystem.DVM.DVMTasks;
|
||||
import Common.Utils.CommonUtils;
|
||||
import _VisualDVM.TestingSystem.Common.Group.Group;
|
||||
import _VisualDVM.TestingSystem.Common.Test.Test;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
public class DVMCompilationTask extends DVMTask {
|
||||
@Expose
|
||||
public List<DVMRunTask> runTasks = new Vector<>();
|
||||
//-
|
||||
public DVMCompilationTask() {
|
||||
|
||||
}
|
||||
@Override
|
||||
public Vector<String> pack(Object arg) {
|
||||
Vector<String> res = new Vector<>();
|
||||
res.add(String.valueOf(id)); //1
|
||||
res.add(String.valueOf(maxtime)); //2
|
||||
res.add(String.valueOf(test_id)); //3
|
||||
res.add(arg.toString().replace("\n", "|")); //4
|
||||
return res;
|
||||
}
|
||||
//--
|
||||
public static String checkFlags(String flags_in) {
|
||||
if (!flags_in.contains("-shared-dvm")) {
|
||||
if (flags_in.isEmpty())
|
||||
return "-shared-dvm";
|
||||
else return flags_in + " -shared-dvm";
|
||||
} else
|
||||
return flags_in;
|
||||
}
|
||||
public static String checkEnvironments(String environmentsSet_in) {
|
||||
if (!environmentsSet_in.contains("DVMH_NO_DIRECT_COPY")) {
|
||||
if (environmentsSet_in.isEmpty())
|
||||
return "DVMH_NO_DIRECT_COPY=" + CommonUtils.DQuotes("1");
|
||||
else
|
||||
return environmentsSet_in + " " + "DVMH_NO_DIRECT_COPY=" + CommonUtils.DQuotes("1");
|
||||
} else
|
||||
return environmentsSet_in;
|
||||
}
|
||||
//--
|
||||
public DVMCompilationTask(DVMConfiguration configuration, DVMSettings dvmSettings, Group group, Test test, int kernels_in){
|
||||
super (configuration, group, test,checkFlags(dvmSettings.flags));
|
||||
Vector<String> matrixes = dvmSettings.getMatrixes(test.max_dim);
|
||||
String checkedEnvironments = checkEnvironments(dvmSettings.environments);
|
||||
if (dvmSettings.flags.trim().equalsIgnoreCase("-s")) {
|
||||
runTasks.add(new DVMRunTask(
|
||||
configuration,
|
||||
dvmSettings,
|
||||
group,
|
||||
test,
|
||||
"",
|
||||
flags,
|
||||
checkedEnvironments,
|
||||
kernels_in
|
||||
));
|
||||
} else
|
||||
for (String matrix : matrixes) {
|
||||
runTasks.add(new DVMRunTask(
|
||||
configuration,
|
||||
dvmSettings,
|
||||
group,
|
||||
test,
|
||||
matrix,
|
||||
flags,
|
||||
checkedEnvironments,
|
||||
kernels_in));
|
||||
}
|
||||
}
|
||||
}
|
||||
136
src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java
Normal file
136
src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTask.java
Normal file
@@ -0,0 +1,136 @@
|
||||
package _VisualDVM.TestingSystem.DVM.DVMTasks;
|
||||
import Common.CommonConstants;
|
||||
import _VisualDVM.Constants;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Utils;
|
||||
import _VisualDVM.GlobalData.Tasks.TaskState;
|
||||
import _VisualDVM.TestingSystem.Common.Group.Group;
|
||||
import _VisualDVM.TestingSystem.Common.Test.Test;
|
||||
import _VisualDVM.TestingSystem.Common.Test.TestType;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Vector;
|
||||
public class DVMRunTask extends DVMTask {
|
||||
@Expose
|
||||
public int dvmcompilationtask_id = CommonConstants.Nan;
|
||||
@Expose
|
||||
public String matrix = "";
|
||||
@Expose
|
||||
public String args = "";
|
||||
@Expose
|
||||
public double CleanTime = 0.0;
|
||||
@Expose
|
||||
public int progress = 0;
|
||||
@Expose
|
||||
public int cube = 1;
|
||||
@Expose
|
||||
public int min_dim = 1;
|
||||
@Expose
|
||||
public int max_dim = 1;
|
||||
@Expose
|
||||
public String environments = "";
|
||||
@Expose
|
||||
public String usr_par = "";
|
||||
@Expose
|
||||
public int compilation_maxtime = 40;
|
||||
@Expose
|
||||
public TaskState compilation_state = TaskState.Waiting;
|
||||
@Expose
|
||||
public double compilation_time = 0.0;
|
||||
public DVMRunTask(DVMConfiguration configuration, DVMSettings settings,
|
||||
Group group, Test test,
|
||||
String matrix_in, String flags_in,
|
||||
String environments_in,
|
||||
int kernels_in
|
||||
) {
|
||||
super(configuration, group, test, flags_in);
|
||||
//--------------------------
|
||||
//инфа о компиляции.
|
||||
compilation_maxtime = configuration.c_maxtime;
|
||||
compilation_state = TaskState.Waiting;
|
||||
//инфа о запуске
|
||||
cube = settings.cube;
|
||||
min_dim = settings.max_dim_proc_count;
|
||||
max_dim = settings.max_dim_proc_count;
|
||||
maxtime = configuration.maxtime;
|
||||
environments = environments_in;
|
||||
usr_par = settings.getParamsText();
|
||||
args = test.args;
|
||||
//---------
|
||||
matrix = matrix_in;
|
||||
kernels = (test_type == TestType.Performance) ? kernels_in :
|
||||
Math.min(Utils.getMatrixProcessors(matrix), kernels_in);
|
||||
}
|
||||
public DVMRunTask() {
|
||||
}
|
||||
@Override
|
||||
public void SynchronizeFields(DBObject src) {
|
||||
super.SynchronizeFields(src);
|
||||
DVMRunTask rt = (DVMRunTask) src;
|
||||
dvmcompilationtask_id = rt.dvmcompilationtask_id;
|
||||
matrix = rt.matrix;
|
||||
CleanTime = rt.CleanTime;
|
||||
progress = rt.progress;
|
||||
language = rt.language;
|
||||
cube = rt.cube;
|
||||
min_dim = rt.min_dim;
|
||||
max_dim = rt.max_dim;
|
||||
maxtime = rt.maxtime;
|
||||
environments = rt.environments;
|
||||
usr_par = rt.usr_par;
|
||||
compilation_maxtime = rt.compilation_maxtime;
|
||||
compilation_state = rt.compilation_state;
|
||||
compilation_time = rt.compilation_time;
|
||||
args = rt.args;
|
||||
}
|
||||
public DVMRunTask(DVMRunTask src) {
|
||||
this.SynchronizeFields(src);
|
||||
}
|
||||
//-
|
||||
@Override
|
||||
public Vector<String> pack(Object arg) {
|
||||
Vector<String> res = new Vector<>();
|
||||
res.add(String.valueOf(id)); //1
|
||||
res.add(String.valueOf(maxtime)); //2
|
||||
res.add(String.valueOf(dvmcompilationtask_id)); //3
|
||||
res.add(matrix); //4
|
||||
res.add(environments); //5
|
||||
res.add(usr_par.replace("\n", "|")); //6
|
||||
res.add(args); //7
|
||||
res.add(String.valueOf(kernels)); //8
|
||||
return res;
|
||||
}
|
||||
public String getEnvironments() {
|
||||
return environments.replace("\n", ";");
|
||||
}
|
||||
public String getUsrPar() {
|
||||
return usr_par.replace("\n", ";");
|
||||
}
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return Global.testingServer.db.dvmRunTasks.applyFilters(this);
|
||||
}
|
||||
public File getCompilationTaskWorkspace() {
|
||||
return Paths.get(
|
||||
Global.DVMPackagesDirectory.getAbsolutePath(),
|
||||
String.valueOf(dvm_package_id),
|
||||
"results",
|
||||
String.valueOf(dvmcompilationtask_id)
|
||||
).toFile();
|
||||
}
|
||||
public String getCompilationOutput() {
|
||||
return getResultFile(new File(getCompilationTaskWorkspace(),Constants.out_file));
|
||||
}
|
||||
public String getCompilationErrors() {
|
||||
return getResultFile(new File(getCompilationTaskWorkspace(),Constants.err_file));
|
||||
}
|
||||
public String getStatistic() {
|
||||
return getResultFile(new File(getLocalWorkspace(), Constants.statistic + ".txt"));
|
||||
}
|
||||
}
|
||||
//--
|
||||
@@ -0,0 +1,9 @@
|
||||
package _VisualDVM.TestingSystem.DVM.DVMTasks;
|
||||
import Common.Visual.Menus.DataMenuBar;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
public class DVMRunTasksBar extends DataMenuBar {
|
||||
public DVMRunTasksBar() {
|
||||
super("задачи",
|
||||
PassCode_2021.CompareDVMRunTasks, PassCode_2021.DownloadTaskTest);
|
||||
}
|
||||
}
|
||||
165
src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java
Normal file
165
src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMRunTasksSet.java
Normal file
@@ -0,0 +1,165 @@
|
||||
package _VisualDVM.TestingSystem.DVM.DVMTasks;
|
||||
import _VisualDVM.Current;
|
||||
import Common.Visual.DBObjectFilter;
|
||||
import Common.Database.Tables.DataSet;
|
||||
import Common.Visual.DataSetFilter;
|
||||
import Common.Visual.DataSetControlForm;
|
||||
import _VisualDVM.GlobalData.Tasks.TaskState;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMPackage.DVMPackage;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import static Common.Visual.Tables.TableRenderers.RendererProgress;
|
||||
import static Common.Visual.Tables.TableRenderers.RendererStatusEnum;
|
||||
public class DVMRunTasksSet extends DataSet<Integer, DVMRunTask> {
|
||||
//todo обобщить бы наличие фильтров для всех таблиц.
|
||||
DVMPackage target;
|
||||
@Override
|
||||
protected void createFilters() {
|
||||
filters.add(new DataSetFilter<DVMRunTask>("Компиляция", this) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.compilation_state.equals(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
filters.add(new DataSetFilter<DVMRunTask>("Запуск", this) {
|
||||
@Override
|
||||
public void fill() {
|
||||
for (TaskState state : TaskState.values()) {
|
||||
if (state.isVisible()) {
|
||||
field_filters.add(new DBObjectFilter<DVMRunTask>(dataSet, state.getDescription()) {
|
||||
@Override
|
||||
protected boolean validate(DVMRunTask object) {
|
||||
return object.state.equals(state);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
public DVMRunTasksSet() {
|
||||
super(Integer.class, DVMRunTask.class);
|
||||
}
|
||||
@Override
|
||||
public String getSingleDescription() {
|
||||
return "задача";
|
||||
}
|
||||
@Override
|
||||
public String getPluralDescription() {
|
||||
return "задачи";
|
||||
}
|
||||
@Override
|
||||
protected DataSetControlForm createUI() {
|
||||
return new DataSetControlForm(this) {
|
||||
@Override
|
||||
public boolean hasCheckBox() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void AdditionalInitColumns() {
|
||||
columns.get(5).setRenderer(RendererStatusEnum);
|
||||
columns.get(6).setRenderer(RendererStatusEnum);
|
||||
columns.get(13).setRenderer(RendererProgress);
|
||||
}
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public String[] getUIColumnNames() {
|
||||
return new String[]{
|
||||
"Тест",
|
||||
"Язык",
|
||||
"Флаги",
|
||||
"Компиляция",
|
||||
"Запуск",
|
||||
"Матрица",
|
||||
"Окружение",
|
||||
"usr.par",
|
||||
"Время компиляции (с)",
|
||||
"Время запуска (с)",
|
||||
"Чистое время (с)",
|
||||
"Прогресс",
|
||||
};
|
||||
}
|
||||
@Override
|
||||
public Object getFieldAt(DVMRunTask object, int columnIndex) {
|
||||
switch (columnIndex) {
|
||||
case 2:
|
||||
return object.test_description;
|
||||
case 3:
|
||||
return object.language;
|
||||
case 4:
|
||||
return object.flags;
|
||||
case 5:
|
||||
return object.compilation_state;
|
||||
case 6:
|
||||
return object.state;
|
||||
case 7:
|
||||
return object.matrix;
|
||||
case 8:
|
||||
return object.getEnvironments();
|
||||
case 9:
|
||||
return object.getUsrPar();
|
||||
case 10:
|
||||
return object.compilation_time;
|
||||
case 11:
|
||||
return object.Time;
|
||||
case 12:
|
||||
return object.CleanTime;
|
||||
case 13:
|
||||
return object.progress;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public Current CurrentName() {
|
||||
return Current.DVMRunTask;
|
||||
}
|
||||
public void ShowDVMPackage(DVMPackage dvmPackage) {
|
||||
target = dvmPackage;
|
||||
ClearUI();
|
||||
Data.clear();
|
||||
if (dvmPackage.package_json == null) {
|
||||
if (dvmPackage.getJsonFile().exists()) {
|
||||
try {
|
||||
dvmPackage.readJson();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dvmPackage.package_json != null) {
|
||||
for (DVMCompilationTask compilationTask : dvmPackage.package_json.compilationTasks) {
|
||||
for (DVMRunTask runTask : compilationTask.runTasks) {
|
||||
Data.put(runTask.id, runTask);
|
||||
}
|
||||
}
|
||||
ShowUI();
|
||||
}
|
||||
}
|
||||
public void ShowNoPackage() {
|
||||
ClearUI();
|
||||
Data.clear();
|
||||
target = null;
|
||||
}
|
||||
@Override
|
||||
public Comparator<DVMRunTask> getComparator() {
|
||||
return new Comparator<DVMRunTask>() {
|
||||
@Override
|
||||
public int compare(DVMRunTask o1, DVMRunTask o2) {
|
||||
return o1.state.ordinal() - o2.state.ordinal();
|
||||
}
|
||||
};
|
||||
// return Comparator.comparingInt(o -> o.).reversed();
|
||||
}
|
||||
}
|
||||
107
src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMTask.java
Normal file
107
src/_VisualDVM/TestingSystem/DVM/DVMTasks/DVMTask.java
Normal file
@@ -0,0 +1,107 @@
|
||||
package _VisualDVM.TestingSystem.DVM.DVMTasks;
|
||||
import Common.CommonConstants;
|
||||
import _VisualDVM.Constants;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import Common.Database.Objects.iDBObject;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.GlobalData.Tasks.TaskState;
|
||||
import _VisualDVM.ProjectData.LanguageName;
|
||||
import _VisualDVM.TestingSystem.Common.Group.Group;
|
||||
import _VisualDVM.TestingSystem.Common.Test.Test;
|
||||
import _VisualDVM.TestingSystem.Common.Test.TestType;
|
||||
import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Vector;
|
||||
public class DVMTask extends iDBObject {
|
||||
@Expose
|
||||
public int dvm_package_id = CommonConstants.Nan;
|
||||
@Expose
|
||||
public int group_id = CommonConstants.Nan;
|
||||
@Expose
|
||||
public String group_description = "";
|
||||
@Expose
|
||||
public int test_id = CommonConstants.Nan;
|
||||
@Expose
|
||||
public String test_description = "";
|
||||
@Expose
|
||||
public LanguageName language = LanguageName.fortran;
|
||||
@Expose
|
||||
public String flags = "";
|
||||
@Expose
|
||||
public int kernels = 1;
|
||||
@Expose
|
||||
public TaskState state = TaskState.Inactive;
|
||||
@Expose
|
||||
public int maxtime = 40;
|
||||
@Expose
|
||||
public TestType test_type = TestType.Default;
|
||||
//результаты-------------------------------
|
||||
@Expose
|
||||
public double Time; //время выполнения.
|
||||
//------------------------------------------------------
|
||||
@Override
|
||||
public void SynchronizeFields(DBObject src) {
|
||||
super.SynchronizeFields(src);
|
||||
DVMTask t = (DVMTask) src;
|
||||
group_id = t.group_id;
|
||||
group_description = t.group_description;
|
||||
test_id = t.test_id;
|
||||
test_description = t.test_description;
|
||||
language = t.language;
|
||||
flags = t.flags;
|
||||
kernels = t.kernels;
|
||||
state = t.state;
|
||||
maxtime = t.maxtime;
|
||||
test_type = t.test_type;
|
||||
Time = t.Time;
|
||||
}
|
||||
public DVMTask(DVMTask src) {
|
||||
this.SynchronizeFields(src);
|
||||
}
|
||||
public DVMTask() {
|
||||
}
|
||||
public DVMTask(DVMConfiguration configuration,
|
||||
Group group, Test test, String flags_in) {
|
||||
group_id = group.id;
|
||||
test_id = test.id;
|
||||
group_description = group.description;
|
||||
test_description = test.description;
|
||||
test_type = group.type;
|
||||
language = group.language;
|
||||
flags = flags_in;
|
||||
}
|
||||
public File getLocalWorkspace() {
|
||||
return
|
||||
Paths.get(Global.DVMPackagesDirectory.getAbsolutePath(),
|
||||
String.valueOf(dvm_package_id),
|
||||
"results",
|
||||
String.valueOf(id)).toFile();
|
||||
}
|
||||
public Vector<String> pack(Object arg) {
|
||||
return null;
|
||||
}
|
||||
public String getResultFile(File resultFile) {
|
||||
String res = "";
|
||||
if (dvm_package_id == CommonConstants.Nan) res = "задача ещё не выполнялась";
|
||||
else {
|
||||
if (resultFile.exists()) {
|
||||
try {
|
||||
res = FileUtils.readFileToString(resultFile);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
} else res = "не существует";
|
||||
}
|
||||
return res;
|
||||
}
|
||||
public String getOutput() {
|
||||
return getResultFile(new File(getLocalWorkspace(), Constants.out_file));
|
||||
}
|
||||
public String getErrors() {
|
||||
return getResultFile(new File(getLocalWorkspace(), Constants.err_file));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user