MemReqType mem_req_type;
int nb_proc;
int nb_node;
+ int nb_proc_per_node;
bool exclusive;
// Parameters for COORM
BL::Job::BatchParam cpp_batch_params = job->getBatchParameters();
job_parameters->work_directory = CORBA::string_dup(cpp_batch_params.batch_directory.c_str());
+ // Unused parameters
+ job_parameters->resource_required.nb_proc_per_node = -1;
+ job_parameters->resource_required.cpu_clock = -1;
+
// Resource
job_parameters->maximum_duration = CORBA::string_dup(cpp_batch_params.maximum_duration.c_str());
job_parameters->resource_required.name = CORBA::string_dup(job->getResource().c_str());
job_parameters->resource_required.nb_proc = cpp_batch_params.nb_proc;
job_parameters->resource_required.nb_node = cpp_batch_params.nb_node;
+ job_parameters->resource_required.nb_proc_per_node = cpp_batch_params.nb_proc_per_node;
job_parameters->queue = CORBA::string_dup(job->getBatchQueue().c_str());
job_parameters->partition = CORBA::string_dup(job->getBatchPartition().c_str());
job_parameters->exclusive = cpp_batch_params.exclusive;
throw Exception("Unknown memory requirement, unable to create job");
}
- // Unused parameters
- job_parameters->resource_required.nb_proc_per_node = -1;
- job_parameters->resource_required.cpu_clock = -1;
// Parameters for COORM
job_parameters->launcher_file = CORBA::string_dup(cpp_batch_params.launcher_file.c_str());
batch_param.maximum_duration = job_parameters->maximum_duration.in();
batch_param.nb_proc = job_parameters->resource_required.nb_proc;
batch_param.nb_node = job_parameters->resource_required.nb_node;
+ batch_param.nb_proc_per_node = job_parameters->resource_required.nb_proc_per_node;
batch_param.exclusive = job_parameters->exclusive;
if (job_parameters->mem_per_cpu != 0)
mem_req_type = BL::Job::MEM_PER_NODE;
nb_proc = 1;
nb_node = 0;
+ nb_proc_per_node = 0;
// Parameters for COORM
launcher_file = "";
node_value.setNum(batch_params.nb_node);
setField("node_value", node_value);
+ QString proc_per_node_value;
+ proc_per_node_value.setNum(batch_params.nb_proc_per_node);
+ setField("proc_per_node_value", proc_per_node_value);
+
setField("exclusive", batch_params.exclusive);
if (batch_params.maximum_duration == "")
nb_proc = field("proc_value").toInt();
nb_node = field("node_value").toInt();
+ nb_proc_per_node = field("proc_per_node_value").toInt();
exclusive = field("exclusive").toBool();
// Files Panel
registerField("mem_value", ui->spin_memory);
registerField("proc_value", ui->spin_proc);
registerField("node_value", ui->spin_node);
+ registerField("proc_per_node_value", ui->spin_proc_per_node);
registerField("exclusive", ui->check_exclusive);
registerField("default_time", ui->rb_default_time);
registerField("user_time", ui->rb_user_time);
BL::Job::MemReqType mem_req_type;
int nb_proc;
int nb_node;
+ int nb_proc_per_node;
bool exclusive;
// Parameters for COORM
param.mem_req_type = wizard.mem_req_type;
param.nb_proc = wizard.nb_proc;
param.nb_node = wizard.nb_node;
+ param.nb_proc_per_node = wizard.nb_proc_per_node;
param.exclusive = wizard.exclusive;
// Parameters for COORM
</widget>
</item>
</layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="hl_proc_per_node">
+ <item>
+ <widget class="QLabel" name="label_proc_per_node">
+ <property name="text">
+ <string>Number proc per node (0 for unspecified) :</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spin_proc_per_node">
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>1000000000</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
<item>
<widget class="QCheckBox" name="check_exclusive">