Iceberg reaches end-of-life on 30th November 2020. If you are running jobs on Iceberg then you need to take urgent action to ensure that your jobs/scripts will run on ShARC or Bessemer. If you have never used ShARC or Bessemer then now is the time to test your scripts. Not all software on Iceberg is available on ShARC/Bessemer.
GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to MATLAB so that most programs are easily portable.
After connecting to iceberg (see Establishing a SSH connection), start an interactive session with either the qsh or qrsh commands.
The latest version of Octave (currently 4.0.0) is made available with the command
module load apps/gcc/5.2/octave
Alternatively, you can load a specific version with
module load apps/gcc/5.2/octave/4.0
This adds Octave to your PATH and also loads all of the supporting libraries and compilers required by the system.
Start Octave by executing the command
If you are using a qsh session, the graphical user interface version will begin. If you are using a qrsh session, you will only be able to use the text-only terminal version.
Here is an example batch submission script that will run an Octave program called foo.m
#!/bin/bash # Request 5 gigabytes of real memory #$ -l rmem=5G # Request 64 hours of run time #$ -l h_rt=64:00:00 module load apps/gcc/5.2/octave/4.0 octave foo.m
Octave toolboxes are referred to as packages. To see which ones are installed, use the command ver from within Octave.
Unlike MATLAB, Octave does not load all of its packages at startup. It is necessary to load the package before its commands are available to your session. For example, as with MATLAB, the pdist command is part of the statistics package. Unlike MATLAB, pdist is not immediately available to you
octave:1> pdist([1 2 3; 2 3 4; 1 1 1]) warning: the 'pdist' function belongs to the statistics package from Octave Forge which you have installed but not loaded. To load the package, run `pkg load statistics' from the Octave prompt. Please read `http://www.octave.org/missing.html' to learn how you can contribute missing functionality. warning: called from __unimplemented__ at line 524 column 5 error: 'pdist' undefined near line 1 column 1
As the error message suggests, you need to load the statistics package
octave:1> pkg load statistics octave:2> pdist([1 2 3; 2 3 4; 1 1 1]) ans = 1.7321 2.2361 3.7417
These are primarily for administrators of the system.
Octave was installed using gcc 5.2 and the following libraries:
Octave was installed using a SGE batch job. The install script is on
The make log is on the system at
The configure log is on the system at /usr/local/packages6/apps/gcc/5.2/octave/4.0/configure_octave4.0.0.log
For full functionality, Octave requires a large number of additional libraries to be installed. We have currently not installed all of these but will do so should they be required.
For information, here is the relevant part of the Configure log that describes how Octave was configured
Source directory: . Installation prefix: /usr/local/packages6/apps/gcc/5.2/octave/4.0 C compiler: gcc -pthread -fopenmp -Wall -W -Wshadow -Wforma t -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wcas t-align -Wcast-qual -I/usr/local/packages6/compilers/gcc/5.2.0/include C++ compiler: g++ -pthread -fopenmp -Wall -W -Wshadow -Wold-s tyle-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g - O2 Fortran compiler: gfortran -O Fortran libraries: -L/usr/local/packages6/compilers/gcc/5.2.0/lib - L/usr/local/packages6/compilers/gcc/5.2.0/lib64 -L/usr/local/packages6/compilers /gcc/5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0 -L/usr/local/packages6/compile rs/gcc/5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../../../lib64 -L/lib/../ lib64 -L/usr/lib/../lib64 -L/usr/local/packages6/libs/gcc/5.2/fftw/3.3.4/lib -L/ usr/local/packages6/libs/gcc/5.2/fltk/1.3.3/lib -L/usr/local/packages6/compilers /gcc/5.2.0/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../.. -lgfortran -lm -lquad math Lex libraries: LIBS: -lutil -lm AMD CPPFLAGS: AMD LDFLAGS: AMD libraries: ARPACK CPPFLAGS: ARPACK LDFLAGS: ARPACK libraries: BLAS libraries: -lblas CAMD CPPFLAGS: CAMD LDFLAGS: CAMD libraries: CARBON libraries: CCOLAMD CPPFLAGS: CCOLAMD LDFLAGS: CCOLAMD libraries: CHOLMOD CPPFLAGS: CHOLMOD LDFLAGS: CHOLMOD libraries: COLAMD CPPFLAGS: COLAMD LDFLAGS: COLAMD libraries: CURL CPPFLAGS: CURL LDFLAGS: CURL libraries: -lcurl CXSPARSE CPPFLAGS: CXSPARSE LDFLAGS: CXSPARSE libraries: DL libraries: FFTW3 CPPFLAGS: FFTW3 LDFLAGS: FFTW3 libraries: -lfftw3_threads -lfftw3 FFTW3F CPPFLAGS: FFTW3F LDFLAGS: FFTW3F libraries: -lfftw3f_threads -lfftw3f FLTK CPPFLAGS: -I/usr/local/packages6/libs/gcc/5.2/fltk/1.3.3/in clude -I/usr/include/freetype2 -I/usr/local/packages6/compilers/gcc/5.2.0/includ e -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT FLTK LDFLAGS: -L/usr/local/packages6/libs/gcc/5.2/fltk/1.3.3/li b -Wl,-rpath,/usr/local/packages6/libs/gcc/5.2/fltk/1.3.3/lib -L/usr/local/packa ges6/compilers/gcc/5.2.0/lib -L/usr/local/packages6/compilers/gcc/5.2.0/lib64 -l fltk_gl -lGLU -lGL -lfltk -lXcursor -lXfixes -lXext -lXft -lfontconfig -lXineram a -lpthread -ldl -lm -lX11 FLTK libraries: fontconfig CPPFLAGS: fontconfig libraries: -lfontconfig FreeType2 CPPFLAGS: -I/usr/include/freetype2 FreeType2 libraries: -lfreetype GLPK CPPFLAGS: GLPK LDFLAGS: GLPK libraries: HDF5 CPPFLAGS: HDF5 LDFLAGS: HDF5 libraries: -lhdf5 Java home: /usr/local/packages6/apps/binapps/java/jre1.8.0_6 0/ Java JVM path: /usr/local/packages6/apps/binapps/java/jre1.8.0_6 0/lib/amd64/server Java CPPFLAGS: -I/usr/local/packages6/apps/binapps/java/jre1.8.0 _60//include -I/usr/local/packages6/apps/binapps/java/jre1.8.0_60//include/linux Java libraries: LAPACK libraries: -llapack LLVM CPPFLAGS: LLVM LDFLAGS: LLVM libraries: Magick++ CPPFLAGS: Magick++ LDFLAGS: Magick++ libraries: OPENGL libraries: -lfontconfig -lGL -lGLU OSMesa CPPFLAGS: OSMesa LDFLAGS: OSMesa libraries: PCRE CPPFLAGS: PCRE libraries: -lpcre PortAudio CPPFLAGS: PortAudio LDFLAGS: PortAudio libraries: PTHREAD flags: -pthread PTHREAD libraries: QHULL CPPFLAGS: QHULL LDFLAGS: QHULL libraries: QRUPDATE CPPFLAGS: QRUPDATE LDFLAGS: QRUPDATE libraries: Qt CPPFLAGS: -I/usr/include/QtCore -I/usr/include/QtGui -I/usr /include/QtNetwork -I/usr/include/QtOpenGL Qt LDFLAGS: Qt libraries: -lQtNetwork -lQtOpenGL -lQtGui -lQtCore READLINE libraries: -lreadline Sndfile CPPFLAGS: Sndfile LDFLAGS: Sndfile libraries: TERM libraries: -lncurses UMFPACK CPPFLAGS: UMFPACK LDFLAGS: UMFPACK libraries: X11 include flags: X11 libraries: -lX11 Z CPPFLAGS: Z LDFLAGS: Z libraries: -lz Default pager: less gnuplot: gnuplot Build Octave GUI: yes JIT compiler for loops: no Build Java interface: no Do internal array bounds checking: no Build static libraries: no Build shared libraries: yes Dynamic Linking: yes (dlopen) Include support for GNU readline: yes 64-bit array dims and indexing: no OpenMP SMP multithreading: yes Build cross tools: no configure: WARNING: I didn't find gperf, but it's only a problem if you need to reconstruct oct-gperf.h configure: WARNING: I didn't find icotool, but it's only a problem if you need to reconstruct octave-logo.ico, which is the case if you're building from VCS sources. configure: WARNING: Qhull library not found. This will result in loss of functi onality of some geometry functions. configure: WARNING: GLPK library not found. The glpk function for solving linea r programs will be disabled. configure: WARNING: gl2ps library not found. OpenGL printing is disabled. configure: WARNING: OSMesa library not found. Offscreen rendering with OpenGL w ill be disabled. configure: WARNING: qrupdate not found. The QR & Cholesky updating functions wi ll be slow. configure: WARNING: AMD library not found. This will result in some lack of fun ctionality for sparse matrices. configure: WARNING: CAMD library not found. This will result in some lack of fu nctionality for sparse matrices. configure: WARNING: COLAMD library not found. This will result in some lack of functionality for sparse matrices. configure: WARNING: CCOLAMD library not found. This will result in some lack of functionality for sparse matrices. configure: WARNING: CHOLMOD library not found. This will result in some lack of functionality for sparse matrices. configure: WARNING: CXSparse library not found. This will result in some lack o f functionality for sparse matrices. configure: WARNING: UMFPACK not found. This will result in some lack of functio nality for sparse matrices. configure: WARNING: ARPACK not found. The eigs function will be disabled. configure: WARNING: Include file <jni.h> not found. Octave will not be able to call Java methods. configure: WARNING: Qscintilla library not found -- disabling built-in GUI editor configure:
Some commonly-used packages were additionally installed from Octave Forge using the following commands from within Octave
pkg install -global -forge io pkg install -global -forge statistics pkg install -global -forge mapping pkg install -global -forge image pkg install -global -forge struct pkg install -global -forge optim