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
Too Many Open Files Error But Lsof Shows a Legal Number of Open Files
Problems Installing Java Ee Sdk on Linux
Wireless API for Linux in C or Java
Best Way to Daemonize Java Application on Linux
Linux Launch Java Program on Startup (Ec2 Instance)
Windows: Moving a File That Was Previously Mapped in Memory Fails
Seeing Too Many Lsof Can't Identify Protocol
What Determines the Current Working Directory of Tomcat Java Process
Itext Get Field Coordinates from Existing PDF
Javafx: Could Not Find or Load Main Class Only on Linux
How to Open a Unc Path from Linux in Java
Reading Remote Hdfs File with Java
Is the Order of Values Retrieved from a Hashmap the Insertion Order
Maven Dependencies Are Failing With a 501 Error
Android Studio 3.1.3 Gradle Sync Error. Could Not Download Gradle-Core.Jar