@@ -489,9 +489,7 @@ public static String computeSlurmTimeLimit(int totalNumberOfJobs,
489489 int perTaskMinutes = (timeoutSeconds + 59 ) / 60 ; // ceiling(timeoutSeconds/60)
490490 int batches = (totalNumberOfJobs + numberOfConcurrentTasks - 1 ) / numberOfConcurrentTasks ;
491491 long workMinutes = (long ) batches * perTaskMinutes ;
492- long extraMinutes = 3L * perTaskMinutes ;
493- long totalMinutes = workMinutes + extraMinutes ;
494- long cushionedMinutes = (long ) Math .ceil (totalMinutes * 1.10 );
492+ long cushionedMinutes = (long ) Math .ceil (workMinutes * 1.20 );
495493
496494 long totalHours = cushionedMinutes / 60 ;
497495 long minutes = cushionedMinutes % 60 ;
@@ -500,6 +498,9 @@ public static String computeSlurmTimeLimit(int totalNumberOfJobs,
500498 return String .format ("%02d:%02d:00" , totalHours , minutes );
501499 } else {
502500 long days = totalHours / 24 ;
501+ if (days >= 21 ) {
502+ return ("20-23:59:00" ); // maxwall for vcell is 21-00:00:00
503+ }
503504 long hours = totalHours % 24 ;
504505 return String .format ("%d-%02d:%02d:00" , days , hours , minutes );
505506 }
@@ -665,9 +666,10 @@ String generateLangevinBatchScript(String jobName, ExecutableCommand.Container
665666 SolverDescription solverDescription = std .getSolverDescription ();
666667 MemLimitResults memoryMBAllowed = HtcProxy .getMemoryLimit (vcellUserid , simID , solverDescription , memSizeMB , simTask .isPowerUser ());
667668
668- String sTimeoutPerTaskSeconds = PropertyLoader .getProperty (PropertyLoader .slurm_langevin_timeoutPerTaskSeconds , "604800" ); // seconds. 7 days
669- String sHardbBtchMemoryLimitPerTask = PropertyLoader .getProperty (PropertyLoader .slurm_langevin_batchMemoryLimitPerTaskMB , "1024" );
670- String sBlockSizeMB = PropertyLoader .getProperty (PropertyLoader .slurm_langevin_memoryBlockSizeMB , "256" );
669+ // next 3 will fire exception if prop not set
670+ String sTimeoutPerTaskSeconds = PropertyLoader .getRequiredProperty (PropertyLoader .slurm_langevin_timeoutPerTaskSeconds ); // seconds. 7 days
671+ String sHardbBtchMemoryLimitPerTask = PropertyLoader .getRequiredProperty (PropertyLoader .slurm_langevin_batchMemoryLimitPerTaskMB );
672+ String sBlockSizeMB = PropertyLoader .getRequiredProperty (PropertyLoader .slurm_langevin_memoryBlockSizeMB );
671673 int timeoutPerTaskSeconds = Integer .parseInt (sTimeoutPerTaskSeconds ); // seconds. 24 hours
672674 long hardbBtchMemoryLimitPerTask = Long .parseLong (sHardbBtchMemoryLimitPerTask ); // MB. we hard limit mem to 2G for langevin batch jobs
673675 int blockSizeMB = Integer .parseInt (sBlockSizeMB ); // MB. SLURM memory allocation granularity
0 commit comments