исправление опечатки в сообщении.
учет в конфигурациях распареллеливания на общую память, и двмh регионов. как и варианты. запрещено ставить больше одного. и не последними.
This commit is contained in:
4
.idea/workspace.xml
generated
4
.idea/workspace.xml
generated
@@ -8,7 +8,9 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/TestingServer.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/Common/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Constants.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/ProjectData/Messages/Message.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/ProjectData/Messages/Message.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartSapforTests.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package Common;
|
|||||||
import GlobalData.Machine.Machine;
|
import GlobalData.Machine.Machine;
|
||||||
import GlobalData.Machine.MachineType;
|
import GlobalData.Machine.MachineType;
|
||||||
import GlobalData.User.User;
|
import GlobalData.User.User;
|
||||||
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||||
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
public class Constants {
|
public class Constants {
|
||||||
@@ -29,7 +30,12 @@ public class Constants {
|
|||||||
public static final String MailAddress = "sapfor.tracker@internet.ru";
|
public static final String MailAddress = "sapfor.tracker@internet.ru";
|
||||||
// public static final String MailPassword = "3s4w9e5fs3c1a89AA"; основной пароль.
|
// public static final String MailPassword = "3s4w9e5fs3c1a89AA"; основной пароль.
|
||||||
public static final String MailPassword = "knKn2PpfrC348ZxHtMnT"; //пароль для сапфора как внешнего приложения.
|
public static final String MailPassword = "knKn2PpfrC348ZxHtMnT"; //пароль для сапфора как внешнего приложения.
|
||||||
|
//--
|
||||||
|
public static final PassCode_2021[] terminalSapforTestingCodes = new PassCode_2021[]{
|
||||||
|
PassCode_2021.CreateParallelVariants,
|
||||||
|
PassCode_2021.SPF_SharedMemoryParallelization,
|
||||||
|
PassCode_2021.SPF_InsertDvmhRegions
|
||||||
|
};
|
||||||
//--
|
//--
|
||||||
//https://losst.ru/komandy-terminala-linux
|
//https://losst.ru/komandy-terminala-linux
|
||||||
public static String[] linux_system_commands = new String[]{
|
public static String[] linux_system_commands = new String[]{
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ public class Message extends FileObject {
|
|||||||
codedMessages.put("R198", "Цикл на строке %d был удалён");
|
codedMessages.put("R198", "Цикл на строке %d был удалён");
|
||||||
codedMessages.put("R199", "Зависимость по скаляру с типом lastprivate препятствует распараллеливанию данного цикла");
|
codedMessages.put("R199", "Зависимость по скаляру с типом lastprivate препятствует распараллеливанию данного цикла");
|
||||||
codedMessages.put("R200", "Добавлена lastprivate переменная '%s' к циклу на строке %d");
|
codedMessages.put("R200", "Добавлена lastprivate переменная '%s' к циклу на строке %d");
|
||||||
codedMessages.put("R202", "Ссылка '%s' имеет размер отличный от оригинального массива размер");
|
codedMessages.put("R202", "Ссылка '%s' имеет отличный от оригинального массива размер");
|
||||||
//3002
|
//3002
|
||||||
//3001
|
//3001
|
||||||
codedMessages.put("R108", "Добавлена across-зависимость к массиву '%s' в цикле.");
|
codedMessages.put("R108", "Добавлена across-зависимость к массиву '%s' в цикле.");
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package Visual_DVM_2021.Passes.All;
|
package Visual_DVM_2021.Passes.All;
|
||||||
|
import Common.Constants;
|
||||||
import Common.Current;
|
import Common.Current;
|
||||||
import Common.Global;
|
import Common.Global;
|
||||||
import Common.UI.UI;
|
import Common.UI.UI;
|
||||||
|
import Common.Utils.Index;
|
||||||
import ProjectData.LanguageName;
|
import ProjectData.LanguageName;
|
||||||
import Repository.Server.ServerCode;
|
import Repository.Server.ServerCode;
|
||||||
import Repository.Server.ServerExchangeUnit_2021;
|
import Repository.Server.ServerExchangeUnit_2021;
|
||||||
@@ -83,15 +85,41 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
|
|||||||
//--
|
//--
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
boolean checkTerminalCode(SapforConfiguration sapforConfiguration, PassCode_2021 code, int count, Vector<PassCode_2021> codes) {
|
||||||
|
if (count > 2) {
|
||||||
|
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
|
||||||
|
code.getDescription() +
|
||||||
|
" возможно только один раз.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//--
|
||||||
|
if ((count == 1) && codes.size() > 1) {
|
||||||
|
if (!codes.lastElement().equals(code)) {
|
||||||
|
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": " +
|
||||||
|
code.getDescription() +
|
||||||
|
" может быть только завершающей командой!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
public boolean getConfigurationCommands(SapforConfiguration sapforConfiguration) {
|
public boolean getConfigurationCommands(SapforConfiguration sapforConfiguration) {
|
||||||
//1. получить список всех команд.
|
//1. получить список всех команд.
|
||||||
Vector<PassCode_2021> codes = new Vector<>();
|
Vector<PassCode_2021> codes = new Vector<>();
|
||||||
int v = 0;
|
//-- счетчик завершающих команд.
|
||||||
|
LinkedHashMap<PassCode_2021, Index> terminalCodesCount = new LinkedHashMap<>();
|
||||||
|
for (PassCode_2021 code : Constants.terminalSapforTestingCodes)
|
||||||
|
terminalCodesCount.put(code, new Index());
|
||||||
|
//--
|
||||||
for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) {
|
for (SapforConfigurationCommand command : Global.testingServer.db.sapforConfigurationCommands.Data.values()) {
|
||||||
if (command.sapforconfiguration_id.equals(sapforConfiguration.id)) {
|
if (command.sapforconfiguration_id.equals(sapforConfiguration.id)) {
|
||||||
codes.add(command.passCode);
|
codes.add(command.passCode);
|
||||||
if (command.passCode.equals(PassCode_2021.CreateParallelVariants))
|
//---
|
||||||
v++;
|
for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
|
||||||
|
if (command.passCode.equals(t_code))
|
||||||
|
terminalCodesCount.get(t_code).Inc();
|
||||||
|
}
|
||||||
|
//---
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
@@ -99,18 +127,13 @@ public class StartSapforTests extends TestingSystemPass<SapforTasksPackage> {
|
|||||||
Log.Writeln_("Пустая конфигурация:" + sapforConfiguration.id);
|
Log.Writeln_("Пустая конфигурация:" + sapforConfiguration.id);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//--
|
for (PassCode_2021 t_code : Constants.terminalSapforTestingCodes) {
|
||||||
if (v > 2) {
|
if (!checkTerminalCode(sapforConfiguration, t_code,
|
||||||
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": построение параллельных вариантов возможно единожды.");
|
terminalCodesCount.get(t_code).getValue(), codes
|
||||||
|
))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
if ((v == 1) && codes.size() > 1) {
|
|
||||||
if (!codes.lastElement().equals(PassCode_2021.CreateParallelVariants)) {
|
|
||||||
Log.Writeln_("Неверная конфигурация:" + sapforConfiguration.id + ": построение параллельных вариантов может быть только завершающей командой!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//--
|
//--
|
||||||
|
|||||||
Reference in New Issue
Block a user