javalinuxnetlogosupercomputers

Issues with supercomputer submission scripts to run NetLogo


I'm having some difficulty getting the supercomputer to run my netlogo model. I'm attempting to follow the advice given here and here. But no luck. I think it's not finding some of the needed jars? The entirety of the v5.3.1 folder is located at:

/users/PAS1038/xxmyusernamexx/netlogo/netlogo-5.3.1/ and I've added the rnd extension in the app/ folder.

This is my submission script:

#PBS -N testjob
#PBS -l walltime=00:30:00
#PBS -l nodes=1:ppn=1
#PBS -j oe
cd /users/PAS1038/xxmyusernamexx/netlogo/netlogo-5.3.1/
java -Xmx1024m -Dfile.encoding=UTF-8 -cp /users/PAS1038/xxmyusernamexx/netlogo/netlogo-5.3.1/app/NetLogo.jar \
org.nlogo.headless.Main \
--model /users/PAS1038/xxmyusername/netlogo/netlogo-5.3.1/MyModel.nlogo \
--experiment test \
--table  testoutput.csv \
--threads 8

but it is giving me the following error:

java.lang.IllegalStateException: Can't find extension: profiler/profiler.jar
    at org.nlogo.workspace.ExtensionManager.resolvePathAsURL(ExtensionManager.java:315)
    at org.nlogo.workspace.ExtensionManager.importExtension(ExtensionManager.java:153)
    at org.nlogo.compiler.StructureParser.parseImport(StructureParser.scala:459)
    at org.nlogo.compiler.StructureParser.parse(StructureParser.scala:196)
    at org.nlogo.compiler.CompilerMain$.compile(CompilerMain.scala:25)
    at org.nlogo.compiler.Compiler$.compileProgram(Compiler.scala:28)
    at org.nlogo.headless.HeadlessModelOpener.openFromMap(HeadlessModelOpener.scala:53)
    at org.nlogo.headless.HeadlessWorkspace.openString(HeadlessWorkspace.scala:531)
    at org.nlogo.headless.HeadlessWorkspace.open(HeadlessWorkspace.scala:513)
    at org.nlogo.headless.Main$.newWorkspace$1(Main.scala:19)
    at org.nlogo.headless.Main$$anonfun$runExperiment$1.apply(Main.scala:24)
    at org.nlogo.headless.Main$$anonfun$runExperiment$1.apply(Main.scala:24)
    at org.nlogo.lab.Lab$$anonfun$1.apply(Lab.scala:33)
    at org.nlogo.lab.Lab$$anonfun$1.apply(Lab.scala:33)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    at scala.collection.immutable.Range.foreach(Range.scala:78)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    at scala.collection.immutable.Range.map(Range.scala:46)
    at org.nlogo.lab.Lab.run(Lab.scala:33)
    at org.nlogo.headless.Main$.runExperiment(Main.scala:24)
    at org.nlogo.headless.Main$$anonfun$main$1.apply(Main.scala:14)
    at org.nlogo.headless.Main$$anonfun$main$1.apply(Main.scala:14)
    at scala.Option.foreach(Option.scala:197)
    at org.nlogo.headless.Main$.main(Main.scala:14)
    at org.nlogo.headless.Main.main(Main.scala)
Exception in thread "main" Can't find extension: profiler at position 165 in 
    at org.nlogo.api.ErrorSource.signalError(ErrorSource.scala:12)
    at org.nlogo.workspace.ExtensionManager.importExtension(ExtensionManager.java:162)
    at org.nlogo.compiler.StructureParser.parseImport(StructureParser.scala:459)
    at org.nlogo.compiler.StructureParser.parse(StructureParser.scala:196)
    at org.nlogo.compiler.CompilerMain$.compile(CompilerMain.scala:25)
    at org.nlogo.compiler.Compiler$.compileProgram(Compiler.scala:28)
    at org.nlogo.headless.HeadlessModelOpener.openFromMap(HeadlessModelOpener.scala:53)
    at org.nlogo.headless.HeadlessWorkspace.openString(HeadlessWorkspace.scala:531)
    at org.nlogo.headless.HeadlessWorkspace.open(HeadlessWorkspace.scala:513)
    at org.nlogo.headless.Main$.newWorkspace$1(Main.scala:19)
    at org.nlogo.headless.Main$$anonfun$runExperiment$1.apply(Main.scala:24)
    at org.nlogo.headless.Main$$anonfun$runExperiment$1.apply(Main.scala:24)
    at org.nlogo.lab.Lab$$anonfun$1.apply(Lab.scala:33)
    at org.nlogo.lab.Lab$$anonfun$1.apply(Lab.scala:33)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
    at scala.collection.immutable.Range.foreach(Range.scala:78)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
    at scala.collection.immutable.Range.map(Range.scala:46)
    at org.nlogo.lab.Lab.run(Lab.scala:33)
    at org.nlogo.headless.Main$.runExperiment(Main.scala:24)
    at org.nlogo.headless.Main$$anonfun$main$1.apply(Main.scala:14)
    at org.nlogo.headless.Main$$anonfun$main$1.apply(Main.scala:14)
    at scala.Option.foreach(Option.scala:197)
    at org.nlogo.headless.Main$.main(Main.scala:14)
    at org.nlogo.headless.Main.main(Main.scala)
=>> PBS: job killed: walltime 1841 exceeded limit 1800

Solution

  • I've run down the issue's answer. I need to have all the input files, .nlogo file, and headless.sh in the App folder. When that is the case, using this code:

    #PBS -N runone
    #PBS -l walltime=12:00:00
    #PBS -l nodes=1:ppn=8
    module load java/1.8.0_60
    cd /users/PAS1038/myusername/netlogo/netlogo-5.3.1/app
    ./netlogo-headless.sh --model modelname.nlogo --experiment g --table output.csv --threads 8
    

    Note: ppn=X and --threads x will need to be changed to whatever the number of processors per node is.