@@ -523,38 +523,23 @@ private void writeSingularitySetup(LineStringBuilder lsb) {
523523 String singularityPullfolder = PropertyLoader .getRequiredProperty (PropertyLoader .slurm_singularity_pullfolder );
524524 String singularityModuleName = PropertyLoader .getRequiredProperty (PropertyLoader .slurm_singularity_module_name );
525525
526- lsb .write ("echo \" === Singularity check BEFORE module load ===\" " );
526+ lsb .write ("echo \" === Singularity check ===\" " );
527527 lsb .write ("if command -v singularity >/dev/null 2>&1; then" );
528528 lsb .write (" echo \" Singularity found at: $(command -v singularity)\" " );
529529 lsb .write (" singularity --version" );
530530 lsb .write ("else" );
531- lsb .write (" echo \" Singularity not found before module load\" " );
531+ lsb .write (" echo \" Singularity not found\" " );
532+ lsb .write (" exit 127" );
532533 lsb .write ("fi" );
533534 lsb .write ("" );
534535
535536 lsb .write ("TMPDIR=" + slurmTmpDir );
536537 lsb .write ("if [ ! -e $TMPDIR ]; then mkdir -p $TMPDIR ; fi" );
537538 lsb .write ("echo `hostname`" );
538539 lsb .write ("export MODULEPATH=/isg/shared/modulefiles:/tgcapps/modulefiles" );
539- lsb .write ("if [ -f /usr/share/modules/init/bash ]; then" );
540- lsb .write (" source /usr/share/modules/init/bash" );
541- lsb .write (" module load " + singularityModuleName );
542- lsb .write ("else" );
543- lsb .write (" echo \" [Warning] Module init script not found - skipping module setup\" " );
544- lsb .write ("fi" );
545540 lsb .write ("export SINGULARITY_CACHEDIR=" + singularityCachedir );
546541 lsb .write ("export SINGULARITY_PULLFOLDER=" + singularityPullfolder );
547542 lsb .write ("" );
548-
549- lsb .write ("echo \" === Singularity check AFTER module load ===\" " );
550- lsb .write ("if command -v singularity >/dev/null 2>&1; then" );
551- lsb .write (" echo \" Singularity found at: $(command -v singularity)\" " );
552- lsb .write (" singularity --version" );
553- lsb .write ("else" );
554- lsb .write (" echo \" Singularity not found after module load\" " );
555- lsb .write (" exit 127" );
556- lsb .write ("fi" );
557- lsb .write ("" );
558543 }
559544 private void writeSlurmJobMetadata (LineStringBuilder lsb ) {
560545 lsb .write ("# Compute memory per task and per job" );
@@ -661,10 +646,12 @@ String generateLangevinBatchScript(String jobName, ExecutableCommand.Container
661646 SolverDescription solverDescription = std .getSolverDescription ();
662647 MemLimitResults memoryMBAllowed = HtcProxy .getMemoryLimit (vcellUserid , simID , solverDescription , memSizeMB , simTask .isPowerUser ());
663648
664- // TODO: do we hardcode these? Should it be part of LangevinSimulationOptions? Or, even better, properties?
665- int timeoutPerTaskSeconds = 86400 ; // seconds. 24 hours
666- long hardbBtchMemoryLimitPerTask = 1024 ; // MB. we hard limit mem to 1G for langevin batch jobs
667- int blockSizeMB = 256 ; // MB. SLURM memory allocation granularity
649+ String sTimeoutPerTaskSeconds = PropertyLoader .getProperty (PropertyLoader .slurm_langevin_timeoutPerTaskSeconds , "86400" );
650+ String sHardbBtchMemoryLimitPerTask = PropertyLoader .getProperty (PropertyLoader .slurm_langevin_batchMemoryLimitPerTaskMB , "1024" );
651+ String sBlockSizeMB = PropertyLoader .getProperty (PropertyLoader .slurm_langevin_memoryBlockSizeMB , "256" );
652+ int timeoutPerTaskSeconds = Integer .parseInt (sTimeoutPerTaskSeconds ); // seconds. 24 hours
653+ long hardbBtchMemoryLimitPerTask = Long .parseLong (sHardbBtchMemoryLimitPerTask ); // MB. we hard limit mem to 2G for langevin batch jobs
654+ int blockSizeMB = Integer .parseInt (sBlockSizeMB ); // MB. SLURM memory allocation granularity
668655 String slurmJobTimeout = computeSlurmTimeLimit (totalNumberOfJobs , numberOfConcurrentTasks , timeoutPerTaskSeconds );
669656 long batchMemoryLimitPerTask = memoryMBAllowed .getMemLimit ();
670657 batchMemoryLimitPerTask = Math .min (batchMemoryLimitPerTask , hardbBtchMemoryLimitPerTask );
0 commit comments