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.4.  For oar 2.5 look the official oar documentation at</nowiki> [http://wiki.oar-imag.fr/]}}
+
{{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]]