GNU Octave is a high-level, interpreted, programming language for numerical computations. Octave is a structured language (similar to C) and mostly compatible with MATLAB. You may use Octave to avoid the need for a MATLAB license, both during development and as a deployed application. By doing so, you may be able to run your application on more systems or more easily distribute it to others.
This section illustrates how to submit a small Octave job to a PBS queue. This Octave example computes the inverse of a matrix.
Prepare an Octave script file with an appropriate filename, here named myjob.m:
% FILENAME: myjob.m % Invert matrix A. A = [1 2 3; 4 5 6; 7 8 0] inv(A) quit
Prepare a job submission file with an appropriate filename, here named myjob.sub:
#!/bin/sh -l # FILENAME: myjob.sub module load octave cd $PBS_O_WORKDIR unset DISPLAY # Use the -q option to suppress startup messages. # octave -q < myjob.m octave < myjob.m
The command octave myjob.m (without the redirection) also works in the preceding script.
Submit the job:
$ qsub -l nodes=1:ppn=20 myjob.sub
View job status:
$ qstat -u myusername
View results in the file for all standard output, myjob.sub.omyjobid:
A = 1 2 3 4 5 6 7 8 0 ans = -1.77778 0.88889 -0.11111 1.55556 -0.77778 0.22222 -0.11111 0.22222 -0.11111
Any output written to standard error will appear in myjob.sub.emyjobid.
For more information about Octave: