Difference between revisions of "Access control scripts (admission rules)"
From Supercomputación y Cálculo Científico UIS
Line 5: | Line 5: | ||
1. Maximum walltime: passive 336 hours, interactive 12 hours. | 1. Maximum walltime: passive 336 hours, interactive 12 hours. | ||
− | {{Note|<nowiki>The following script works in oar version 2. | + | {{Note|<nowiki>The following script works in oar version 2.5 }} |
+ | |||
+ | my $max_interactive_walltime = OAR::IO::sql_to_duration("2:00:00"); | ||
+ | # 7 days = 168 hours | ||
+ | my $max_batch_walltime = OAR::IO::sql_to_duration("336:00:00"); | ||
+ | foreach my $mold (@{$ref_resource_list}){ | ||
+ | if (defined($mold->[1])){ | ||
+ | if (($jobType eq "INTERACTIVE") and ($reservationField eq "None") and ($max_interactive_walltime < $mold->[1])){ | ||
+ | print("[ADMISSION RULE] Walltime too big for an INTERACTIVE job so it is set to $max_interactive_walltime.\n"); | ||
+ | $mold->[1] = $max_interactive_walltime; | ||
+ | }elsif ($max_batch_walltime < $mold->[1]){ | ||
+ | print("[ADMISSION RULE] Walltime too big for a BATCH job so it is set to $max_batch_walltime.\n"); | ||
+ | $mold->[1] = $max_batch_walltime; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | {{Note|<nowiki>The following script works in oar version 2.4 }} | ||
update admission_rules set rule= | update admission_rules set rule= | ||
'my $max_interactive_walltime = iolib::sql_to_duration("12:00:00")\; | 'my $max_interactive_walltime = iolib::sql_to_duration("12:00:00")\; | ||
Line 35: | Line 52: | ||
'''To be continued. | '''To be continued. | ||
+ | |||
+ | source [[http://wiki-oar.imag.fr/index.php/Customization_tips#Walltime_limit]] |
Revision as of 21:35, 6 February 2015
Back to OAR
These scripts must be entered in the sql table called "admission_rules":
1. Maximum walltime: passive 336 hours, interactive 12 hours.
NOTE: The following script works in oar version 2.5 }}
my $max_interactive_walltime = OAR::IO::sql_to_duration("2:00:00");
# 7 days = 168 hours
my $max_batch_walltime = OAR::IO::sql_to_duration("336:00:00");
foreach my $mold (@{$ref_resource_list}){
if (defined($mold->[1])){
if (($jobType eq "INTERACTIVE") and ($reservationField eq "None") and ($max_interactive_walltime < $mold->[1])){
print("[ADMISSION RULE] Walltime too big for an INTERACTIVE job so it is set to $max_interactive_walltime.\n");
$mold->[1] = $max_interactive_walltime;
}elsif ($max_batch_walltime < $mold->[1]){
print("[ADMISSION RULE] Walltime too big for a BATCH job so it is set to $max_batch_walltime.\n");
$mold->[1] = $max_batch_walltime;
}
}
}
{{Note|<nowiki>The following script works in oar version 2.4 }}
update admission_rules set rule=
'my $max_interactive_walltime = iolib::sql_to_duration("12:00:00")\;
# 14 days = 336 hours
my $max_batch_walltime = iolib::sql_to_duration("336:00:00")\;
foreach my $mold (@{$ref_resource_list}){
if (defined($mold->[1])){
if (($jobType eq "INTERACTIVE") and ($reservationField eq "None") and ($max_interactive_walltime < $mold->[1])){
print("[ADMISSION RULE] Walltime too big for an INTERACTIVE job so it is set to $max_interactive_walltime.\n")\;
$mold->[1] = $max_interactive_walltime\;
}elsif ($max_batch_walltime < $mold->[1]){
print("[ADMISSION RULE] Walltime too big for a BATCH job so it is set to $max_batch_walltime.\n")\;
$mold->[1] = $max_batch_walltime\;
}
}
}' where id=11;
{{Note|<nowiki>The previous script replaces the original rule 11 (in the current guane setup) That original rule is presented below:
# Set the maximum walltime my $max_walltime = iolib::sql_to_duration("12:00:00"); if (($jobType eq "INTERACTIVE") and ($reservationField eq "None")){ foreach my $mold (@{$ref_resource_list}){ if ((defined($mold->[1])) and ($max_walltime < $mold->[1])){ print("[ADMISSION RULE] Walltime to big for an INTERACTIVE job so it is set to $max_walltime.\n"); $mold->[1] = $max_walltime; } } }
2. Limit jobs to allow at least one interactive job.
To be continued.
source [[1]]