diff --git a/nebula/frontend/app.py b/nebula/frontend/app.py
index 6afd682..fce2cf5 100755
--- a/nebula/frontend/app.py
+++ b/nebula/frontend/app.py
@@ -1279,12 +1279,11 @@ async def node_stopped(scenario_name: str, request: Request):
async def assign_available_gpu(scenario_data, role):
available_gpus = []
- if scenario_data["accelerator"] == "cpu":
- scenario_data["gpu_id"] = []
- else:
- response = await get_available_gpus()
- # Obtain available system_gpus
- available_system_gpus = response.get("available_gpus")
+ response = await get_available_gpus()
+ # Obtain available system_gpus
+ available_system_gpus = response.get("available_gpus", None) if response is not None else None
+
+ if available_system_gpus:
running_scenarios = get_running_scenario(get_all=True)
# Obtain currently used gpus
if running_scenarios:
@@ -1307,12 +1306,16 @@ async def assign_available_gpu(scenario_data, role):
# Assign gpus based in user role
if len(available_gpus) > 0:
if role == "user":
+ scenario_data["accelerator"] = "gpu"
scenario_data["gpu_id"] = [available_gpus.pop()]
elif role == "admin":
+ scenario_data["accelerator"] = "gpu"
scenario_data["gpu_id"] = available_gpus
else:
+ scenario_data["accelerator"] = "cpu"
scenario_data["gpu_id"] = []
else:
+ scenario_data["accelerator"] = "cpu"
scenario_data["gpu_id"] = []
return scenario_data
diff --git a/nebula/frontend/templates/deployment.html b/nebula/frontend/templates/deployment.html
index 2d58391..f105813 100755
--- a/nebula/frontend/templates/deployment.html
+++ b/nebula/frontend/templates/deployment.html
@@ -452,27 +452,6 @@
Reporting
Individual participants
-
-
Advanced Topology
@@ -1048,7 +1027,7 @@ Schema of deployment
data["logginglevel"] = document.getElementById("loggingLevel").value === "true"
data["report_status_data_queue"] = document.getElementById("reportingSwitch").checked
// Step 9
- data["accelerator"] = document.getElementById("resourceUsage").value
+ data["accelerator"] = ""
// Step 10
data["network_subnet"] = "192.168.50.0/24"
data["network_gateway"] = "192.168.50.1"
@@ -1149,11 +1128,9 @@ Schema of deployment
} else {
document.getElementById("reportingSwitch").disabled = false;
}
- // Step 9
- document.getElementById("resourceUsage").value = data["accelerator"];
- // Step 11
+ // Step 10
document.getElementById("epochs").value = data["epochs"];
- // Step 12
+ // Step 11
var selectElement = document.getElementById("poisoning-attack-select");
selectElement.value = data["attacks"];
selectElement.dispatchEvent(new Event('change'));
@@ -1171,7 +1148,7 @@ Schema of deployment
}
document.getElementById("poisoned-sample-percent").value = data["poisoned_sample_percent"];
document.getElementById("poisoned-noise-percent").value = data["poisoned_noise_percent"];
- // Step 13
+ // Step 12
document.getElementById("with-reputation-btn").checked = data["with_reputation"];
if (data["with_reputation"]) {
document.getElementById("mtd-strategy").style.display = "block";
@@ -1179,7 +1156,7 @@ Schema of deployment
document.getElementById("dynamic-topology-btn").checked = data["is_dynamic_topology"];
document.getElementById("dynamic-aggregation-btn").checked = data["is_dynamic_aggregation"];
document.getElementById("targetAggregationSelect").value = data["target_aggregation"];
- // Step 14
+ // Step 13
document.getElementById("random-geo-btn").checked = data["random_geo"];
document.getElementById("latitude").value = data["latitude"];
document.getElementById("longitude").value = data["longitude"];
@@ -1718,19 +1695,15 @@ Schema of deployment
document.getElementById("loggingLevel").value = false;
}
// Step 9
- if(!document.getElementById("accelerator-lock").checked){
- document.getElementById("resourceUsage").value = "cpu";
- }
- // Step 10
if(!document.getElementById("distance-lock").checked){
document.getElementById("distanceInput").value = document.getElementById("distanceInput").defaultValue;
document.getElementById("distanceValue").value = document.getElementById("distanceValue").defaultValue;
}
- // Step 11
+ // Step 10
if(!document.getElementById("epochs-lock").checked){
document.getElementById("epochs").value = document.getElementById("epochs").defaultValue;
}
- // Step 12
+ // Step 11
if(!document.getElementById("robustness-lock").checked){
var selectElement = document.getElementById("poisoning-attack-select");
selectElement.value = "No Attack";
@@ -1739,7 +1712,7 @@ Schema of deployment
document.getElementById("poisoned-noise-percent").value = document.getElementById("poisoned-noise-percent").defaultValue;
document.getElementById("poisoned-node-percent").value = document.getElementById("poisoned-node-percent").defaultValue;
}
- // Step 13
+ // Step 12
if(!document.getElementById("defense-lock").checked){
document.getElementById("without-reputation-btn").checked = true;
document.getElementById("dynamic-aggregation-btn").checked = false;
@@ -1748,7 +1721,7 @@ Schema of deployment
document.getElementById("without-reputation-btn").click();
document.getElementById("dynamic-topology-btn").checked = false;
}
- // Step 14
+ // Step 13
if(!document.getElementById("mobility-lock").checked){
document.getElementById("random-geo-btn").checked = true;
document.getElementById("longitude").value = document.getElementById("longitude").defaultValue;
@@ -1931,15 +1904,6 @@ Schema of deployment
//Generate a scenario
function generateScenarios(){
-
- //selected accelerator
- if(document.getElementById("mod-cpu").checked){
- document.getElementById("resourceUsage").value = "cpu";
- }
- else{
- document.getElementById("resourceUsage").value = "gpu";
- }
-
//One or more options selected in every case
var aggregation_methods = ['mod-fedavg', 'mod-krum', 'mod-trimmed', 'mod-median'];
if (!atLeastOneChecked(aggregation_methods)) {