Java Error When Trying to Run Netlogo Headlessly on a Cluster

Java error when trying to run NetLogo headlessly on a cluster

"main" should be capitalized: "Main". So the script should be:

#!/bin/bash
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -c 7
java -Xmx1024m -Dfile.encoding=UTF-8 -cp /opt/shared/netlogo/5.3.1-64/app/NetLogo.jar \
org.nlogo.headless.Main \
--model /cluster/home/rfuda01/UM_model.nlogo \
--experiment UM \
--table /cluster/home/rfuda01/UM_test.csv

NetLogo netlogo-headless.sh file location

netlogo-headless.sh was inadvertently removed from the Linux install in 5.3.0: https://github.com/NetLogo/NetLogo/issues/979

For now, you can use 5.2.1.

Actually, you can probably just take the netlogo-headless.sh from a 5.2.1 download and put it in 5.3.1 without problems, but I haven't tested this.

Edit: Taking the old netlogo-headless.sh should work if you put it in the app/ directory, under the main NetLogo directory. Thanks Nicolas!

Issues with supercomputer submission scripts to run NetLogo

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.

Running NetLogo headless on HPC, how to increase CPU usage?

In comments you link your related question where you're trying to use linux process priority to make jobs run faster / use more CPU

There you ask

CQLOAD (what does it mean too?)

The docs for this are hard to find, but you link to the spec of your cluster, which tells us that the scheduling engine for it is Sun's *Grid Engine". Man pages are here (you can access them locally too - in particular typing man qstat)

If you search through for qstat -g c, you will see the outputs described. In particular, the second column (CQLOAD) is described as:

OUTPUT FORMATS

...

an average of the normalized load average of all queue
hosts. In order to reflect each hosts different signifi-
cance the number of configured slots is used as a weight-
ing factor when determining cluster queue load. Please
note that only hosts with a np_load_value are considered
for this value. When queue selection is applied only data
about selected queues is considered in this formula. If
the load value is not available at any of the hosts '-
NA-' is printed instead of the value from the complex
attribute definition.

This means that CQLOAD gives an indication of how utilized the processors are in the queue. Your output shows 0.84: the average load on processors in all.q is 84%. This doesn't seem too low.

You state colleagues are complaining that your processes are not using enough CPU. I'm not sure what that's based on, but I wonder if it's just because you're using a lot of nodes (even if just for a short time).

You might want to experiment with using fewer nodes (unless your results are very slow) - that is achieved by altering the line #$ -pe mpi 30 - maybe take the number 30 down. You can work out how many nodes you need (roughly) by timing how long 1 model run takes on your computer and then use

N = (time to run 1 job) * number of runs in experiment) / time you want the run to take 


Related Topics



Leave a reply



Submit