Skip to content

Commit

Permalink
Finishing up recommended time control and interaction. Addresses #666.
Browse files Browse the repository at this point in the history
  • Loading branch information
alexsielicki committed Nov 10, 2016
1 parent f4e74d7 commit df4dbe0
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 30 deletions.
2 changes: 1 addition & 1 deletion packages/slycat/web/server/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2068,7 +2068,7 @@ def job_time(nodes, tasks, size):
:param size: size of data file used in the job
:return: json time in seconds as an integer {'time-seconds': 1800}
"""
time = (18 * float(size)) / (float(nodes) * float(tasks))
time = (1.8 * float(size)) / (float(nodes) * float(tasks))
return {
'time-seconds': int(time),
'nodes': nodes,
Expand Down
72 changes: 43 additions & 29 deletions web-server/js/slycat-remote-interface.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ define('slycat-remote-interface', ['knockout', 'knockout-mapping', 'slycat-serve
vm.batch = ko.observable('');

vm.wckey = ko.observable('');
vm.nnodes = ko.observable(5);
vm.nnodes = ko.observable(1);
vm.partition = ko.observable('');
vm.ntasks_per_node = ko.observable(1); // This is preset in wizard-ui.html with: suggestions: [{'ntasks_per_node': 8}]
vm.time_hours = ko.observable(11);
vm.time_minutes = ko.observable(6);
vm.time_seconds = ko.observable(3);
vm.time_hours = ko.observable(0);
vm.time_minutes = ko.observable(20);
vm.time_seconds = ko.observable(0);
vm.time_recommended = ko.observable(true);
vm.workdir = ko.observable('');
vm.retain_hdf5 = ko.observable(false);
Expand All @@ -46,17 +46,35 @@ define('slycat-remote-interface', ['knockout', 'knockout-mapping', 'slycat-serve
var modal_id = 'slycat-remote-interface-connect-modal';
var select_id = 'slycat-remote-interface-agent-functions';

var set_job_time = function() {
// Process suggestions if any
(function() {
var suggestions = params.suggestions === undefined ? [] : params.suggestions;
suggestions.forEach(function(s) {
var key = Object.keys(s)[0];
vm[key](s[key]);
});
})();

// Process restrictions if any
(function() {
var restrictions = params.restrictions === undefined ? [] : params.restrictions;
restrictions.forEach(function(r) {
var key = Object.keys(r)[0];
vm[key](r[key]);
vm[key + '_disabled'] = true;
});
})();

vm.set_job_time = function() {
client.job_time({
nodes: vm.nnodes(),
tasks: vm.ntasks_per_node(),
size: vm.job_size(),
success: function(result) {
console.log(result);
var nodes = parseInt(result.nodes);
var tasks = parseInt(result.tasks);
var size = parseInt(result.size);
if(nodes == vm.nnodes() && tasks == vm.ntasks_per_node && size = vm.job_size())
if(nodes == vm.nnodes() && tasks == vm.ntasks_per_node() && size == vm.job_size())
{
var total_seconds = parseInt(result['time-seconds']);
var hours = Math.floor(total_seconds / 3600);
Expand All @@ -68,34 +86,30 @@ define('slycat-remote-interface', ['knockout', 'knockout-mapping', 'slycat-serve
}
},
error: function(request, status, reason_phrase) {
// On error we should uncheck and disable the "Use recommended values" checkbox
// On error we should uncheck the "Use recommended values" checkbox
vm.time_recommended(false);
}
});
};
vm.conditionally_set_job_time = function() {
if(vm.time_recommended())
{
vm.set_job_time();
}
};
vm.time_recommended.subscribe(function() {
vm.conditionally_set_job_time();
});
vm.nnodes.subscribe(function() {
vm.conditionally_set_job_time();
});
vm.ntasks_per_node.subscribe(function() {
vm.conditionally_set_job_time();
});

// Set initial job time
(function() {
console.log("tesssssst");
set_job_time();
})();

// Process suggestions if any
(function() {
var suggestions = params.suggestions === undefined ? [] : params.suggestions;
suggestions.forEach(function(s) {
var key = Object.keys(s)[0];
vm[key](s[key]);
});
})();

// Process restrictions if any
(function() {
var restrictions = params.restrictions === undefined ? [] : params.restrictions;
restrictions.forEach(function(r) {
var key = Object.keys(r)[0];
vm[key](r[key]);
vm[key + '_disabled'] = true;
});
vm.set_job_time();
})();

vm.connect = function() {
Expand Down

0 comments on commit df4dbe0

Please sign in to comment.