<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.sharcnet.ca/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ppomorsk</id>
		<title>Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.sharcnet.ca/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ppomorsk"/>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php/Special:Contributions/Ppomorsk"/>
		<updated>2026-04-09T19:04:40Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=18018</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=18018"/>
				<updated>2019-11-06T20:48:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Software which I help maintain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 ...&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OpenSees'''  (Open System for Earthquake Engineering Simulation) is a software framework for simulating the seismic response of structural and geotechnical systems.  It has advanced capabilities for modeling and analyzing the nonlinear response of systems using a wide range of material models, elements, and solution algorithms.  Website: [http://opensees.berkeley.edu/ opensees.berkeley.edu]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;svn&amp;quot; and &amp;quot;make&amp;quot; steps are likely to take a long time.  To avoid having to stay logged in for many hours while these steps run, you can use the &amp;quot;screen&amp;quot; utility.  Please see this page for instructions: [[FAQ:_Logging_in_to_Systems,_Transferring_and_Editing_Files#How_can_I_suspend_and_resume_my_session.3F]].&lt;br /&gt;
&lt;br /&gt;
'''Trunk (24mar2017)''' tested on orca running centos6 by preney@sharcnet.ca March 24, 2017.  The compile is done with the GCC compiler and system TCL library.&lt;br /&gt;
&lt;br /&gt;
=== Serial version ===&lt;br /&gt;
&lt;br /&gt;
Starting in your home directory, run the following commands.&lt;br /&gt;
&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 mkdir lib&lt;br /&gt;
 svn co svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk OpenSees&lt;br /&gt;
 cd OpenSees&lt;br /&gt;
 cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def&lt;br /&gt;
&lt;br /&gt;
Now edit Makefile.def so it has:&lt;br /&gt;
 LINKFLAGS       = -rdynamic&lt;br /&gt;
instead of&lt;br /&gt;
 LINKFLAGS       = -rdynamic -Wl&lt;br /&gt;
and also have&lt;br /&gt;
 CC++    = g++&lt;br /&gt;
 CC      = gcc&lt;br /&gt;
 FC      = gfortran&lt;br /&gt;
&lt;br /&gt;
Then compile with:&lt;br /&gt;
 module purge &lt;br /&gt;
 module load gcc/5.1.0&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
=== Parallel MPI version ===&lt;br /&gt;
&lt;br /&gt;
Starting in your home directory, run the following commands.&lt;br /&gt;
&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 mkdir lib&lt;br /&gt;
 svn co svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk OpenSees&lt;br /&gt;
 cd OpenSees&lt;br /&gt;
 cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def&lt;br /&gt;
&lt;br /&gt;
Now edit Makefile.def so it has:&lt;br /&gt;
&lt;br /&gt;
 PROGRAMMING_MODE = DISTRIBUTED_MPI&lt;br /&gt;
 CC++            =  mpiCC&lt;br /&gt;
 CC              =  mpicc&lt;br /&gt;
 FC              =  gfortran&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
 LINKFLAGS       = -rdynamic&lt;br /&gt;
instead of&lt;br /&gt;
 LINKFLAGS       = -rdynamic -Wl&lt;br /&gt;
&lt;br /&gt;
Then compile with:&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load gcc/5.1.0&lt;br /&gt;
 module load  openmpi/gcc510-std/1.8.7&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
You need to perform the same module operations before running the program with MPI.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=18017</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=18017"/>
				<updated>2019-11-06T20:47:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Important Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 ...&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OpenSees'''  (Open System for Earthquake Engineering Simulation) is a software framework for simulating the seismic response of structural and geotechnical systems.  It has advanced capabilities for modeling and analyzing the nonlinear response of systems using a wide range of material models, elements, and solution algorithms.  Website: [http://opensees.berkeley.edu/ opensees.berkeley.edu]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;svn&amp;quot; and &amp;quot;make&amp;quot; steps are likely to take a long time.  To avoid having to stay logged in for many hours while these steps run, you can use the &amp;quot;screen&amp;quot; utility.  Please see this page for instructions: [[FAQ:_Logging_in_to_Systems,_Transferring_and_Editing_Files#How_can_I_suspend_and_resume_my_session.3F]].&lt;br /&gt;
&lt;br /&gt;
'''Trunk (24mar2017)''' tested on orca running centos6 by preney@sharcnet.ca March 24, 2017.  The compile is done with the GCC compiler and system TCL library.&lt;br /&gt;
&lt;br /&gt;
=== Serial version ===&lt;br /&gt;
&lt;br /&gt;
Starting in your home directory, run the following commands.&lt;br /&gt;
&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 mkdir lib&lt;br /&gt;
 svn co svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk OpenSees&lt;br /&gt;
 cd OpenSees&lt;br /&gt;
 cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def&lt;br /&gt;
&lt;br /&gt;
Now edit Makefile.def so it has:&lt;br /&gt;
 LINKFLAGS       = -rdynamic&lt;br /&gt;
instead of&lt;br /&gt;
 LINKFLAGS       = -rdynamic -Wl&lt;br /&gt;
and also have&lt;br /&gt;
 CC++    = g++&lt;br /&gt;
 CC      = gcc&lt;br /&gt;
 FC      = gfortran&lt;br /&gt;
&lt;br /&gt;
Then compile with:&lt;br /&gt;
 module purge &lt;br /&gt;
 module load gcc/5.1.0&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
=== Parallel MPI version ===&lt;br /&gt;
&lt;br /&gt;
Starting in your home directory, run the following commands.&lt;br /&gt;
&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 mkdir lib&lt;br /&gt;
 svn co svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk OpenSees&lt;br /&gt;
 cd OpenSees&lt;br /&gt;
 cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def&lt;br /&gt;
&lt;br /&gt;
Now edit Makefile.def so it has:&lt;br /&gt;
&lt;br /&gt;
 PROGRAMMING_MODE = DISTRIBUTED_MPI&lt;br /&gt;
 CC++            =  mpiCC&lt;br /&gt;
 CC              =  mpicc&lt;br /&gt;
 FC              =  gfortran&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
 LINKFLAGS       = -rdynamic&lt;br /&gt;
instead of&lt;br /&gt;
 LINKFLAGS       = -rdynamic -Wl&lt;br /&gt;
&lt;br /&gt;
Then compile with:&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load gcc/5.1.0&lt;br /&gt;
 module load  openmpi/gcc510-std/1.8.7&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
You need to perform the same module operations before running the program with MPI.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17899</id>
		<title>OCTAVE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17899"/>
				<updated>2019-05-15T17:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Job Submission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--checked2016--&amp;gt;&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=OCTAVE&lt;br /&gt;
|package_description=Mostly compatible language with Matlab primarily intended for numerical computations&lt;br /&gt;
|package_idnumber=28&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Octave is provided on SHARCNET clusters  to allow serial or threaded jobs to be run in the queue as described below.&lt;br /&gt;
&lt;br /&gt;
==OCTAVE on the Graham national system==&lt;br /&gt;
&lt;br /&gt;
On the Graham system the user simply needs to call the &amp;quot;module load&amp;quot; command without manually unloading conflicting packages.&lt;br /&gt;
&lt;br /&gt;
 $ module load octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
To obtain information about the package's dependencies the &amp;quot;spider&amp;quot; action can be included in the call to &amp;quot;module&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module spider octave&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave:&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
     Versions:&lt;br /&gt;
        octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  For detailed information about a specific &amp;quot;octave&amp;quot; module (including how to load the modules) use the module's full name.&lt;br /&gt;
  For example:&lt;br /&gt;
&lt;br /&gt;
     $ module spider octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[jdesjard@gra-login1 ~]$ module spider octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave: octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
    Properties:&lt;br /&gt;
      Tools for development / Outils de développement&lt;br /&gt;
&lt;br /&gt;
    You will need to load all module(s) on any one of the lines below before the &amp;quot;octave/4.2.1&amp;quot; module is available to load.&lt;br /&gt;
&lt;br /&gt;
      nixpkgs/16.09  gcc/5.4.0&lt;br /&gt;
      nixpkgs/16.09  intel/2016.4&lt;br /&gt;
      nixpkgs/16.09  intel/2017.1&lt;br /&gt;
 &lt;br /&gt;
    Help:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Job Submission=&lt;br /&gt;
&lt;br /&gt;
The Graham national system uses the Slurm scheduler which is different from the Torque Moab scheduler that is typical to the majority of other SHARCNET systems. In order to submit a simple &amp;quot;Hello World!&amp;quot; process to Graham the user would first need to create a submit script as follows.&lt;br /&gt;
&lt;br /&gt;
 $ cat oct_serial.sh &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -t 0-00:01&lt;br /&gt;
 #SBATCH --mem=400&lt;br /&gt;
 octave --eval 'disp(&amp;quot;Hello World! from Octave&amp;quot;)'&lt;br /&gt;
&lt;br /&gt;
Then pass this submit script to &amp;quot;sbatch&amp;quot; to be entered into the queue:&lt;br /&gt;
&lt;br /&gt;
 $ sbatch --account=accountname oct_serial.sh&lt;br /&gt;
&lt;br /&gt;
... where &amp;quot;accountname&amp;quot; is the name of the accounting group to submit to (e.g. def-groupname, rgg-projectname).&lt;br /&gt;
&lt;br /&gt;
=Example Job=&lt;br /&gt;
&lt;br /&gt;
This section shows howto submit a  [http://www.gnu.org/software/octave/doc/interpreter/Executable-Octave-Programs.html sample.m] file to the serial queue that accepts  [http://www.gnu.org/software/octave/doc/interpreter/Command-Line-Options.html#Command-Line-Options command line] arguments. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat sample.m &lt;br /&gt;
#! /bin/octave -qf&lt;br /&gt;
printf (&amp;quot;%s&amp;quot;, program_name ());&lt;br /&gt;
arg_list = argv ();&lt;br /&gt;
for i = 1:nargin&lt;br /&gt;
    printf (&amp;quot; %s&amp;quot;, arg_list{i});&lt;br /&gt;
endfor&lt;br /&gt;
printf (&amp;quot;\n&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate exatraneous verbosity in the output file two switches are passed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] sqsub -r 60m -o ofile.%J octave -qf --no-window-system sample.m arg1 arg2 arg3 etc&lt;br /&gt;
WARNING: no memory requirement defined; assuming 2GB per process.&lt;br /&gt;
submitted as jobid 6937872&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file from the job appears as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat ofile.6937872.hnd50&lt;br /&gt;
sample.m arg1 arg2 arg3 etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One the Graham national system==&lt;br /&gt;
&lt;br /&gt;
Rather than dedicated development as it typical on some of the other SHARCNET systems the national systems have nodes that prioritize interactive jobs allocated by call to &amp;quot;salloc&amp;quot; of the Slurm scheduler.&lt;br /&gt;
&lt;br /&gt;
To use Octave interactively on Graham you can do the following:&lt;br /&gt;
&lt;br /&gt;
Use salloc to request a single task for one hour:&lt;br /&gt;
&lt;br /&gt;
 $ salloc --account=def-roxa88 --time=1:0:0 --ntasks=1&lt;br /&gt;
&lt;br /&gt;
Then you will receive notification when the reservation is granted (including jobid), for&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
 salloc: Granted job allocation 12345&lt;br /&gt;
&lt;br /&gt;
Then use srun to start a terminal to work in on the reservation:&lt;br /&gt;
&lt;br /&gt;
 $ srun --wait 0 --pty bash&lt;br /&gt;
&lt;br /&gt;
Once running the terminal in the allocation you can start your work with Octave by loading&lt;br /&gt;
the module and starting the program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load octave&lt;br /&gt;
$ octave&lt;br /&gt;
octave: X11 DISPLAY environment variable not set&lt;br /&gt;
octave: disabling GUI features&lt;br /&gt;
GNU Octave, version 4.2.1&lt;br /&gt;
Copyright (C) 2017 John W. Eaton and others.&lt;br /&gt;
This is free software; see the source code for copying conditions.&lt;br /&gt;
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.&lt;br /&gt;
&lt;br /&gt;
Octave was configured for &amp;quot;x86_64-pc-linux-gnu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Additional information about Octave is available at http://www.octave.org.&lt;br /&gt;
&lt;br /&gt;
Please contribute if you find this software useful.&lt;br /&gt;
For more information, visit http://www.octave.org/get-involved.html&lt;br /&gt;
&lt;br /&gt;
Read http://www.octave.org/bugs.html to learn how to submit bug reports.&lt;br /&gt;
For information about changes from previous versions, type 'news'.&lt;br /&gt;
&lt;br /&gt;
octave:1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Then once you have the &amp;quot;octave:#&amp;gt;&amp;quot; prompt the terminal will behave like the Matlab&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
Once you are finished with Octave use &amp;quot;quit&amp;quot; to exit the program, then &amp;quot;exit&amp;quot; to logout of&lt;br /&gt;
the compute node (terminate srun), then &amp;quot;exit&amp;quot; again to terminate the allocation&lt;br /&gt;
(relinquishing the allocate resources).&lt;br /&gt;
&lt;br /&gt;
=Running on a visualization system=&lt;br /&gt;
&lt;br /&gt;
Once logged in to a visualization system an instance of Octave can be launched from Applications Menu &amp;gt; Eduction &amp;gt; GNU Octave.&lt;br /&gt;
&lt;br /&gt;
=General notes=&lt;br /&gt;
&lt;br /&gt;
==Matlab Compatibility==&lt;br /&gt;
&lt;br /&gt;
The online wiki resources &amp;quot;Octave Wiki&amp;quot;:&lt;br /&gt;
 http://wiki.octave.org/  &lt;br /&gt;
or &amp;quot;Wikibook&amp;quot;:&lt;br /&gt;
 http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB &lt;br /&gt;
provide good introductory explanations of code compatibility between Octave and Matlab.&lt;br /&gt;
&lt;br /&gt;
In order to run Octave so that it interprets scripts as closely as possible to Matlab, use the --traditional flag. Taking from the above sqsub example the maximum Matlab compatible submission would be:&lt;br /&gt;
&lt;br /&gt;
 sqsub -r 60m -o ofile.%J octave --traditional mycode.m&lt;br /&gt;
&lt;br /&gt;
==Reading/Writing Files==&lt;br /&gt;
&lt;br /&gt;
There are two strategies for handling file &amp;lt;i&amp;gt;input and output&amp;lt;/i&amp;gt; described in the &amp;quot;Octave manual&amp;quot; viz ...&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Input-and-Output.html#Input-and-Output&amp;lt;br&amp;gt; http://www.gnu.org/software/octave/docs.html.&lt;br /&gt;
&lt;br /&gt;
The following stanza demonstrates the &amp;quot;simple file I/O&amp;quot; approach:&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Simple-File-I_002fO.html#Simple-File-I_002fO &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
save myiofile.dat A B C&lt;br /&gt;
save (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
save (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load myiofile.dat&lt;br /&gt;
load (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where A, B and C are a potential mix of entities such as scalars, vectors or matrices.  Note that for large files the binary format is strongly recommended to both minimize disk space and file read/write wallclock times.&lt;br /&gt;
&lt;br /&gt;
==Octave-Forge==&lt;br /&gt;
&lt;br /&gt;
Octave-forge packages are not pre-installed on SHARCNET clusters since none are available at this time for the operating system.  Therefore any required packages must be downloaded, manually installed from source and then managed in local user accounts (as described below).&lt;br /&gt;
&lt;br /&gt;
However 16 of approximately 95 octave-forge packages are installed on some sharcnet visualization workstations including viz1,2,3-uwaterloo, viz2-uwo, viz6-uoguelph under /usr/share/octave/packages. As a word of caution however, all package versions will likely be significantly old since they are tied to the operating system fedora /etc/redhat-release major version and hence not contain recent critical bug fixes (which could be numerical in nature).  Users are therefore strongly recommended to likewise download and install the latest version similarly as would be done on the clusters.&lt;br /&gt;
&lt;br /&gt;
===Sharing Packages===&lt;br /&gt;
&lt;br /&gt;
Note that packages installed by a single sharcnet user in their home account can be shared out to other research group members or even among general SHARCNET users.  To do this simply set access permissions for group or global read access accordingly. For details on how to change &lt;br /&gt;
the permissions see:   https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_do_I_give_other_users_access_to_my_files_.3F&lt;br /&gt;
&lt;br /&gt;
===Managing Packages===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Octave Forge&amp;quot; http://octave.sourceforge.net/ project provides extra packages for use with octave that can be downloaded into a directory such as &amp;lt;i&amp;gt;~/my_octave_sources&amp;lt;/i&amp;gt; then manually installed into your own sharcnet account as will be shown in the follow example.  A current list of packages available for download that notable are generally only compatible with the latest major release of octave cat be found here http://octave.sourceforge.net/packages.php. &lt;br /&gt;
&lt;br /&gt;
In the event where the major version of octave on sharcnet you are using (for instance 3.4.x) is not the same as latest major version (at the time of writing 3.6.x) and there were programming api changes between the two versions that effect the package you want to use, then you probably will need to download an older version of a package from http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/. for it to work.&lt;br /&gt;
 &lt;br /&gt;
To help estimate the package version required as a starting point, consider the major release dates of recent which are octave-3.4.3 (10/10/11), octave-3.6.0 (01/15/12), octave-3.6.1 (02/22/12) and finally octave-3.6.2 (05/31/12).  Next consider you want to download the latest geometry package that was compatible with  octave-3.4.3 at the time of its release, then simply display all the archived versions as shown in the following stanza and pick the last available geometry release date before the next major release octave-3.6.0 (01/15/12).   To show a list of all archived geometry versions, do the following steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/&lt;br /&gt;
Click Packages on top menu menu bar&lt;br /&gt;
Scroll down to the miscellaneous package row and click details&lt;br /&gt;
Click (older versions) located below &amp;quot;Download Package&amp;quot;&lt;br /&gt;
Click Octave Forge Packages&lt;br /&gt;
Click  Individual Package Releases&lt;br /&gt;
Please wait for the page to load ...&lt;br /&gt;
Click &amp;quot;Name&amp;quot; at the top of first colum to sort packages alphabetically&lt;br /&gt;
Scroll down you will find all available archived geometry packages:&lt;br /&gt;
 geometry-1.0.1.tar.gz  2011-09-27&lt;br /&gt;
 geometry-1.1.1.tar.gz  2011-10-06&lt;br /&gt;
 geometry-1.1.2.tar.gz  2011-10-09&lt;br /&gt;
 geometry-1.1.3.tar.gz  2011-10-13&lt;br /&gt;
 geometry-1.1.tar.gz    2011-10-04&lt;br /&gt;
 geometry-1.2.0.tar.gz  2011-10-22&lt;br /&gt;
 geometry-1.2.1.tar.gz  2011-11-02&lt;br /&gt;
 geometry-1.2.2.tar.gz  2011-11-04&lt;br /&gt;
 geometry-1.4.0.tar.gz  2012-01-25&lt;br /&gt;
 geometry-1.4.1.tar.gz  2012-03-24&lt;br /&gt;
 geometry-1.5.0.tar.gz  2012-06-05&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore you will download geometry-1.2.2.tar.gz (2011-11-04) since the next&lt;br /&gt;
release geometry-1.4.0.tar.gz (2012-01-25) and then install it into octave&lt;br /&gt;
3.4.3 as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@tope:~/my_octave_sources] octave&lt;br /&gt;
GNU Octave, version 3.4.3&lt;br /&gt;
octave:1&amp;gt; pkg install geometry-1.2.2.tar.gz&lt;br /&gt;
octave:2&amp;gt; pkg list&lt;br /&gt;
Package Name   | Version | Installation directory&lt;br /&gt;
---------------+---------+-----------------------&lt;br /&gt;
     geometry  |   1.2.2 | /home/roberpj/octave/geometry-1.2.2&lt;br /&gt;
octave:15&amp;gt; pkg load geometry&lt;br /&gt;
octave:16&amp;gt; pkg describe geometry&lt;br /&gt;
---&lt;br /&gt;
Package name:&lt;br /&gt;
        geometry&lt;br /&gt;
Version:&lt;br /&gt;
        1.2.2&lt;br /&gt;
Short description:&lt;br /&gt;
        Library for geometric computing extending MatGeom functions. Useful to create,&lt;br /&gt;
transform, manipulate and display geometric primitives.&lt;br /&gt;
Status:&lt;br /&gt;
        Loaded&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Any questions regarding package version compatibility with major or minor octave release should be referred to the developers.&lt;br /&gt;
&lt;br /&gt;
===Package Commands===&lt;br /&gt;
&lt;br /&gt;
Additional examples of package commands are shown in this section.  For demonstration purpose linear-algebra will first be downloaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@iqaluk:~] mkdir my_octave_sources&lt;br /&gt;
[roberpj@iqaluk:~] cd my_octave_sources&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/general-1.3.2.tar.gz&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[myusername@orc-login1:~]octave&lt;br /&gt;
octave:1&amp;gt;  help pkg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a package such as linear-algebra do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
octave:2&amp;gt;  cd ~/my_octave_sources&lt;br /&gt;
octave:3&amp;gt;  pkg install  general-1.3.2.tar.gz&lt;br /&gt;
octave:4&amp;gt;  pkg install linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a package, from a terminal first do:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/octave&lt;br /&gt;
rm -rf linear-algebra-2.2.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... then from within octave do:&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:5&amp;gt;  pkg uninstall linear-algebra&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all installed packages do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:6&amp;gt;  pkg list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a named packages to your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:7&amp;gt;  pkg load name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a named package from your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:8&amp;gt;   pkg unload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all functions provided by a package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:9&amp;gt;  pkg describe -verbose all&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions provide by extra odepkg package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:10&amp;gt;  pkg describe odepkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions details for extra financial package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:11&amp;gt;  pkg describe financial -verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as sin do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:12&amp;gt;   doc sin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get help using the doc command do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:13&amp;gt;   help doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as matrix do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:14&amp;gt;  doc matrix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for any topic run the doc command alone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:15&amp;gt;  doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package Example===&lt;br /&gt;
&lt;br /&gt;
This example assumes you first create two directories in your home account one being named&lt;br /&gt;
  ~/my_octave_packages  &lt;br /&gt;
and the other &lt;br /&gt;
  ~/my_octave_sources &lt;br /&gt;
then download the required three tar.gz files into the latter from &lt;br /&gt;
 http://octave.sourceforge.net/packages.php ...&lt;br /&gt;
&lt;br /&gt;
 [roberpj@orc-login1:~] module unload octave&lt;br /&gt;
 [roberpj@orc-login1:~] module load octave&lt;br /&gt;
 [roberpj@orc-login1:~] octave&lt;br /&gt;
 GNU Octave, version 3.4.3&lt;br /&gt;
 octave:1&amp;gt; pkg prefix ~/my_octave_packages&lt;br /&gt;
 ans = /home/roberpj/my_octave_packages&lt;br /&gt;
 octave:2&amp;gt; cd my_octave_sources&lt;br /&gt;
 octave:3&amp;gt; ls&lt;br /&gt;
 miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz   struct-1.0.9.tar.gz&lt;br /&gt;
 octave:4&amp;gt; pkg install miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz struct-1.0.9.tar.gz&lt;br /&gt;
 octave:5&amp;gt; pkg list&lt;br /&gt;
 Package Name   | Version | Installation directory&lt;br /&gt;
 ---------------|---------|-----------------------&lt;br /&gt;
 miscellaneous *|  1.0.11 |  /home/roberpj/my_octave_packages/miscellaneous-1.0.11&lt;br /&gt;
        optim *|  1.0.17 |  /home/roberpj/my_octave_packages/optim-1.0.17&lt;br /&gt;
       struct *|   1.0.9 |  /home/roberpj/my_octave_packages/struct-1.0.9&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Octave Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
o Octave 725 Page Manual (Version 3.4.0)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/&lt;br /&gt;
&lt;br /&gt;
o Statistic Package Function Reference&amp;lt;br&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/doc/funref_statistics.html&lt;br /&gt;
&lt;br /&gt;
o GNU Octave Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.octave.org/&lt;br /&gt;
&lt;br /&gt;
o Matlab-Like Tools for HPC (article)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.admin-magazine.com/HPC/Articles/Matlab-Like-Tools-for-HPC&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17898</id>
		<title>OCTAVE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17898"/>
				<updated>2019-05-15T17:21:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* OCTAVE on the Graham national system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--checked2016--&amp;gt;&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=OCTAVE&lt;br /&gt;
|package_description=Mostly compatible language with Matlab primarily intended for numerical computations&lt;br /&gt;
|package_idnumber=28&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Octave is provided on SHARCNET clusters  to allow serial or threaded jobs to be run in the queue as described below.&lt;br /&gt;
&lt;br /&gt;
==OCTAVE on the Graham national system==&lt;br /&gt;
&lt;br /&gt;
On the Graham system the user simply needs to call the &amp;quot;module load&amp;quot; command without manually unloading conflicting packages.&lt;br /&gt;
&lt;br /&gt;
 $ module load octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
To obtain information about the package's dependencies the &amp;quot;spider&amp;quot; action can be included in the call to &amp;quot;module&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module spider octave&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave:&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
     Versions:&lt;br /&gt;
        octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  For detailed information about a specific &amp;quot;octave&amp;quot; module (including how to load the modules) use the module's full name.&lt;br /&gt;
  For example:&lt;br /&gt;
&lt;br /&gt;
     $ module spider octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[jdesjard@gra-login1 ~]$ module spider octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave: octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
    Properties:&lt;br /&gt;
      Tools for development / Outils de développement&lt;br /&gt;
&lt;br /&gt;
    You will need to load all module(s) on any one of the lines below before the &amp;quot;octave/4.2.1&amp;quot; module is available to load.&lt;br /&gt;
&lt;br /&gt;
      nixpkgs/16.09  gcc/5.4.0&lt;br /&gt;
      nixpkgs/16.09  intel/2016.4&lt;br /&gt;
      nixpkgs/16.09  intel/2017.1&lt;br /&gt;
 &lt;br /&gt;
    Help:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Job Submission=&lt;br /&gt;
&lt;br /&gt;
On SHARCNET clusters for production work Octave should only be run via the queuing system.  Octave serial jobs can be submitted to the serial queue using following sqsub command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sqsub -r 60m -o ofile.%J octave mycode.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of version 3.4.3 the sharcnet octave installation supports multi-threading which based on initial testing lapack/blas intensive octave jobs run in the threaded queue achieve an order of magnitude speedup compared to running single core jobs in the serial queue, without making any changes to your code.  Once the optimal number of processors is determined by scaling tests submit the job to the threaded queue for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sqsub -r 60m -n 8 -q threaded --mpp=1G -o  ofile.%J time octave mycode.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==On the Graham national system==&lt;br /&gt;
&lt;br /&gt;
The Graham national system uses the Slurm scheduler which is different from the Torque Moab scheduler that is typical to the majority of other SHARCNET systems. In order to submit a simple &amp;quot;Hello World!&amp;quot; process to Graham the user would first need to create a submit script as follows.&lt;br /&gt;
&lt;br /&gt;
 $ cat oct_serial.sh &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -t 0-00:01&lt;br /&gt;
 #SBATCH --mem=400&lt;br /&gt;
 octave --eval 'disp(&amp;quot;Hello World! from Octave&amp;quot;)'&lt;br /&gt;
&lt;br /&gt;
Then pass this submit script to &amp;quot;sbatch&amp;quot; to be entered into the queue:&lt;br /&gt;
&lt;br /&gt;
 $ sbatch --account=accountname oct_serial.sh&lt;br /&gt;
&lt;br /&gt;
... where &amp;quot;accountname&amp;quot; is the name of the accounting group to submit to (e.g. def-groupname, rgg-projectname).&lt;br /&gt;
&lt;br /&gt;
=Example Job=&lt;br /&gt;
&lt;br /&gt;
This section shows howto submit a  [http://www.gnu.org/software/octave/doc/interpreter/Executable-Octave-Programs.html sample.m] file to the serial queue that accepts  [http://www.gnu.org/software/octave/doc/interpreter/Command-Line-Options.html#Command-Line-Options command line] arguments. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat sample.m &lt;br /&gt;
#! /bin/octave -qf&lt;br /&gt;
printf (&amp;quot;%s&amp;quot;, program_name ());&lt;br /&gt;
arg_list = argv ();&lt;br /&gt;
for i = 1:nargin&lt;br /&gt;
    printf (&amp;quot; %s&amp;quot;, arg_list{i});&lt;br /&gt;
endfor&lt;br /&gt;
printf (&amp;quot;\n&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate exatraneous verbosity in the output file two switches are passed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] sqsub -r 60m -o ofile.%J octave -qf --no-window-system sample.m arg1 arg2 arg3 etc&lt;br /&gt;
WARNING: no memory requirement defined; assuming 2GB per process.&lt;br /&gt;
submitted as jobid 6937872&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file from the job appears as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat ofile.6937872.hnd50&lt;br /&gt;
sample.m arg1 arg2 arg3 etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One the Graham national system==&lt;br /&gt;
&lt;br /&gt;
Rather than dedicated development as it typical on some of the other SHARCNET systems the national systems have nodes that prioritize interactive jobs allocated by call to &amp;quot;salloc&amp;quot; of the Slurm scheduler.&lt;br /&gt;
&lt;br /&gt;
To use Octave interactively on Graham you can do the following:&lt;br /&gt;
&lt;br /&gt;
Use salloc to request a single task for one hour:&lt;br /&gt;
&lt;br /&gt;
 $ salloc --account=def-roxa88 --time=1:0:0 --ntasks=1&lt;br /&gt;
&lt;br /&gt;
Then you will receive notification when the reservation is granted (including jobid), for&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
 salloc: Granted job allocation 12345&lt;br /&gt;
&lt;br /&gt;
Then use srun to start a terminal to work in on the reservation:&lt;br /&gt;
&lt;br /&gt;
 $ srun --wait 0 --pty bash&lt;br /&gt;
&lt;br /&gt;
Once running the terminal in the allocation you can start your work with Octave by loading&lt;br /&gt;
the module and starting the program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load octave&lt;br /&gt;
$ octave&lt;br /&gt;
octave: X11 DISPLAY environment variable not set&lt;br /&gt;
octave: disabling GUI features&lt;br /&gt;
GNU Octave, version 4.2.1&lt;br /&gt;
Copyright (C) 2017 John W. Eaton and others.&lt;br /&gt;
This is free software; see the source code for copying conditions.&lt;br /&gt;
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.&lt;br /&gt;
&lt;br /&gt;
Octave was configured for &amp;quot;x86_64-pc-linux-gnu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Additional information about Octave is available at http://www.octave.org.&lt;br /&gt;
&lt;br /&gt;
Please contribute if you find this software useful.&lt;br /&gt;
For more information, visit http://www.octave.org/get-involved.html&lt;br /&gt;
&lt;br /&gt;
Read http://www.octave.org/bugs.html to learn how to submit bug reports.&lt;br /&gt;
For information about changes from previous versions, type 'news'.&lt;br /&gt;
&lt;br /&gt;
octave:1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Then once you have the &amp;quot;octave:#&amp;gt;&amp;quot; prompt the terminal will behave like the Matlab&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
Once you are finished with Octave use &amp;quot;quit&amp;quot; to exit the program, then &amp;quot;exit&amp;quot; to logout of&lt;br /&gt;
the compute node (terminate srun), then &amp;quot;exit&amp;quot; again to terminate the allocation&lt;br /&gt;
(relinquishing the allocate resources).&lt;br /&gt;
&lt;br /&gt;
=Running on a visualization system=&lt;br /&gt;
&lt;br /&gt;
Once logged in to a visualization system an instance of Octave can be launched from Applications Menu &amp;gt; Eduction &amp;gt; GNU Octave.&lt;br /&gt;
&lt;br /&gt;
=General notes=&lt;br /&gt;
&lt;br /&gt;
==Matlab Compatibility==&lt;br /&gt;
&lt;br /&gt;
The online wiki resources &amp;quot;Octave Wiki&amp;quot;:&lt;br /&gt;
 http://wiki.octave.org/  &lt;br /&gt;
or &amp;quot;Wikibook&amp;quot;:&lt;br /&gt;
 http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB &lt;br /&gt;
provide good introductory explanations of code compatibility between Octave and Matlab.&lt;br /&gt;
&lt;br /&gt;
In order to run Octave so that it interprets scripts as closely as possible to Matlab, use the --traditional flag. Taking from the above sqsub example the maximum Matlab compatible submission would be:&lt;br /&gt;
&lt;br /&gt;
 sqsub -r 60m -o ofile.%J octave --traditional mycode.m&lt;br /&gt;
&lt;br /&gt;
==Reading/Writing Files==&lt;br /&gt;
&lt;br /&gt;
There are two strategies for handling file &amp;lt;i&amp;gt;input and output&amp;lt;/i&amp;gt; described in the &amp;quot;Octave manual&amp;quot; viz ...&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Input-and-Output.html#Input-and-Output&amp;lt;br&amp;gt; http://www.gnu.org/software/octave/docs.html.&lt;br /&gt;
&lt;br /&gt;
The following stanza demonstrates the &amp;quot;simple file I/O&amp;quot; approach:&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Simple-File-I_002fO.html#Simple-File-I_002fO &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
save myiofile.dat A B C&lt;br /&gt;
save (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
save (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load myiofile.dat&lt;br /&gt;
load (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where A, B and C are a potential mix of entities such as scalars, vectors or matrices.  Note that for large files the binary format is strongly recommended to both minimize disk space and file read/write wallclock times.&lt;br /&gt;
&lt;br /&gt;
==Octave-Forge==&lt;br /&gt;
&lt;br /&gt;
Octave-forge packages are not pre-installed on SHARCNET clusters since none are available at this time for the operating system.  Therefore any required packages must be downloaded, manually installed from source and then managed in local user accounts (as described below).&lt;br /&gt;
&lt;br /&gt;
However 16 of approximately 95 octave-forge packages are installed on some sharcnet visualization workstations including viz1,2,3-uwaterloo, viz2-uwo, viz6-uoguelph under /usr/share/octave/packages. As a word of caution however, all package versions will likely be significantly old since they are tied to the operating system fedora /etc/redhat-release major version and hence not contain recent critical bug fixes (which could be numerical in nature).  Users are therefore strongly recommended to likewise download and install the latest version similarly as would be done on the clusters.&lt;br /&gt;
&lt;br /&gt;
===Sharing Packages===&lt;br /&gt;
&lt;br /&gt;
Note that packages installed by a single sharcnet user in their home account can be shared out to other research group members or even among general SHARCNET users.  To do this simply set access permissions for group or global read access accordingly. For details on how to change &lt;br /&gt;
the permissions see:   https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_do_I_give_other_users_access_to_my_files_.3F&lt;br /&gt;
&lt;br /&gt;
===Managing Packages===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Octave Forge&amp;quot; http://octave.sourceforge.net/ project provides extra packages for use with octave that can be downloaded into a directory such as &amp;lt;i&amp;gt;~/my_octave_sources&amp;lt;/i&amp;gt; then manually installed into your own sharcnet account as will be shown in the follow example.  A current list of packages available for download that notable are generally only compatible with the latest major release of octave cat be found here http://octave.sourceforge.net/packages.php. &lt;br /&gt;
&lt;br /&gt;
In the event where the major version of octave on sharcnet you are using (for instance 3.4.x) is not the same as latest major version (at the time of writing 3.6.x) and there were programming api changes between the two versions that effect the package you want to use, then you probably will need to download an older version of a package from http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/. for it to work.&lt;br /&gt;
 &lt;br /&gt;
To help estimate the package version required as a starting point, consider the major release dates of recent which are octave-3.4.3 (10/10/11), octave-3.6.0 (01/15/12), octave-3.6.1 (02/22/12) and finally octave-3.6.2 (05/31/12).  Next consider you want to download the latest geometry package that was compatible with  octave-3.4.3 at the time of its release, then simply display all the archived versions as shown in the following stanza and pick the last available geometry release date before the next major release octave-3.6.0 (01/15/12).   To show a list of all archived geometry versions, do the following steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/&lt;br /&gt;
Click Packages on top menu menu bar&lt;br /&gt;
Scroll down to the miscellaneous package row and click details&lt;br /&gt;
Click (older versions) located below &amp;quot;Download Package&amp;quot;&lt;br /&gt;
Click Octave Forge Packages&lt;br /&gt;
Click  Individual Package Releases&lt;br /&gt;
Please wait for the page to load ...&lt;br /&gt;
Click &amp;quot;Name&amp;quot; at the top of first colum to sort packages alphabetically&lt;br /&gt;
Scroll down you will find all available archived geometry packages:&lt;br /&gt;
 geometry-1.0.1.tar.gz  2011-09-27&lt;br /&gt;
 geometry-1.1.1.tar.gz  2011-10-06&lt;br /&gt;
 geometry-1.1.2.tar.gz  2011-10-09&lt;br /&gt;
 geometry-1.1.3.tar.gz  2011-10-13&lt;br /&gt;
 geometry-1.1.tar.gz    2011-10-04&lt;br /&gt;
 geometry-1.2.0.tar.gz  2011-10-22&lt;br /&gt;
 geometry-1.2.1.tar.gz  2011-11-02&lt;br /&gt;
 geometry-1.2.2.tar.gz  2011-11-04&lt;br /&gt;
 geometry-1.4.0.tar.gz  2012-01-25&lt;br /&gt;
 geometry-1.4.1.tar.gz  2012-03-24&lt;br /&gt;
 geometry-1.5.0.tar.gz  2012-06-05&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore you will download geometry-1.2.2.tar.gz (2011-11-04) since the next&lt;br /&gt;
release geometry-1.4.0.tar.gz (2012-01-25) and then install it into octave&lt;br /&gt;
3.4.3 as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@tope:~/my_octave_sources] octave&lt;br /&gt;
GNU Octave, version 3.4.3&lt;br /&gt;
octave:1&amp;gt; pkg install geometry-1.2.2.tar.gz&lt;br /&gt;
octave:2&amp;gt; pkg list&lt;br /&gt;
Package Name   | Version | Installation directory&lt;br /&gt;
---------------+---------+-----------------------&lt;br /&gt;
     geometry  |   1.2.2 | /home/roberpj/octave/geometry-1.2.2&lt;br /&gt;
octave:15&amp;gt; pkg load geometry&lt;br /&gt;
octave:16&amp;gt; pkg describe geometry&lt;br /&gt;
---&lt;br /&gt;
Package name:&lt;br /&gt;
        geometry&lt;br /&gt;
Version:&lt;br /&gt;
        1.2.2&lt;br /&gt;
Short description:&lt;br /&gt;
        Library for geometric computing extending MatGeom functions. Useful to create,&lt;br /&gt;
transform, manipulate and display geometric primitives.&lt;br /&gt;
Status:&lt;br /&gt;
        Loaded&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Any questions regarding package version compatibility with major or minor octave release should be referred to the developers.&lt;br /&gt;
&lt;br /&gt;
===Package Commands===&lt;br /&gt;
&lt;br /&gt;
Additional examples of package commands are shown in this section.  For demonstration purpose linear-algebra will first be downloaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@iqaluk:~] mkdir my_octave_sources&lt;br /&gt;
[roberpj@iqaluk:~] cd my_octave_sources&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/general-1.3.2.tar.gz&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[myusername@orc-login1:~]octave&lt;br /&gt;
octave:1&amp;gt;  help pkg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a package such as linear-algebra do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
octave:2&amp;gt;  cd ~/my_octave_sources&lt;br /&gt;
octave:3&amp;gt;  pkg install  general-1.3.2.tar.gz&lt;br /&gt;
octave:4&amp;gt;  pkg install linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a package, from a terminal first do:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/octave&lt;br /&gt;
rm -rf linear-algebra-2.2.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... then from within octave do:&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:5&amp;gt;  pkg uninstall linear-algebra&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all installed packages do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:6&amp;gt;  pkg list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a named packages to your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:7&amp;gt;  pkg load name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a named package from your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:8&amp;gt;   pkg unload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all functions provided by a package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:9&amp;gt;  pkg describe -verbose all&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions provide by extra odepkg package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:10&amp;gt;  pkg describe odepkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions details for extra financial package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:11&amp;gt;  pkg describe financial -verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as sin do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:12&amp;gt;   doc sin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get help using the doc command do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:13&amp;gt;   help doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as matrix do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:14&amp;gt;  doc matrix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for any topic run the doc command alone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:15&amp;gt;  doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package Example===&lt;br /&gt;
&lt;br /&gt;
This example assumes you first create two directories in your home account one being named&lt;br /&gt;
  ~/my_octave_packages  &lt;br /&gt;
and the other &lt;br /&gt;
  ~/my_octave_sources &lt;br /&gt;
then download the required three tar.gz files into the latter from &lt;br /&gt;
 http://octave.sourceforge.net/packages.php ...&lt;br /&gt;
&lt;br /&gt;
 [roberpj@orc-login1:~] module unload octave&lt;br /&gt;
 [roberpj@orc-login1:~] module load octave&lt;br /&gt;
 [roberpj@orc-login1:~] octave&lt;br /&gt;
 GNU Octave, version 3.4.3&lt;br /&gt;
 octave:1&amp;gt; pkg prefix ~/my_octave_packages&lt;br /&gt;
 ans = /home/roberpj/my_octave_packages&lt;br /&gt;
 octave:2&amp;gt; cd my_octave_sources&lt;br /&gt;
 octave:3&amp;gt; ls&lt;br /&gt;
 miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz   struct-1.0.9.tar.gz&lt;br /&gt;
 octave:4&amp;gt; pkg install miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz struct-1.0.9.tar.gz&lt;br /&gt;
 octave:5&amp;gt; pkg list&lt;br /&gt;
 Package Name   | Version | Installation directory&lt;br /&gt;
 ---------------|---------|-----------------------&lt;br /&gt;
 miscellaneous *|  1.0.11 |  /home/roberpj/my_octave_packages/miscellaneous-1.0.11&lt;br /&gt;
        optim *|  1.0.17 |  /home/roberpj/my_octave_packages/optim-1.0.17&lt;br /&gt;
       struct *|   1.0.9 |  /home/roberpj/my_octave_packages/struct-1.0.9&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Octave Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
o Octave 725 Page Manual (Version 3.4.0)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/&lt;br /&gt;
&lt;br /&gt;
o Statistic Package Function Reference&amp;lt;br&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/doc/funref_statistics.html&lt;br /&gt;
&lt;br /&gt;
o GNU Octave Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.octave.org/&lt;br /&gt;
&lt;br /&gt;
o Matlab-Like Tools for HPC (article)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.admin-magazine.com/HPC/Articles/Matlab-Like-Tools-for-HPC&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17897</id>
		<title>OCTAVE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17897"/>
				<updated>2019-05-15T17:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Version Selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--checked2016--&amp;gt;&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=OCTAVE&lt;br /&gt;
|package_description=Mostly compatible language with Matlab primarily intended for numerical computations&lt;br /&gt;
|package_idnumber=28&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Octave is provided on SHARCNET clusters  to allow serial or threaded jobs to be run in the queue as described below.&lt;br /&gt;
&lt;br /&gt;
==OCTAVE on the Graham national system==&lt;br /&gt;
The module setup on the new national systems general purpose systems Graham and Cedar are slightly different from other SHARCNET systems. The module loading procedures introduce more automation of dependency interactions.&lt;br /&gt;
&lt;br /&gt;
On the Graham system the user simply needs to call the &amp;quot;module load&amp;quot; command without manually unloading conflicting packages.&lt;br /&gt;
&lt;br /&gt;
 $ module load octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
To obtain information about the package's dependencies the &amp;quot;spider&amp;quot; action can be included in the call to &amp;quot;module&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module spider octave&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave:&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
     Versions:&lt;br /&gt;
        octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  For detailed information about a specific &amp;quot;octave&amp;quot; module (including how to load the modules) use the module's full name.&lt;br /&gt;
  For example:&lt;br /&gt;
&lt;br /&gt;
     $ module spider octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[jdesjard@gra-login1 ~]$ module spider octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave: octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
    Properties:&lt;br /&gt;
      Tools for development / Outils de développement&lt;br /&gt;
&lt;br /&gt;
    You will need to load all module(s) on any one of the lines below before the &amp;quot;octave/4.2.1&amp;quot; module is available to load.&lt;br /&gt;
&lt;br /&gt;
      nixpkgs/16.09  gcc/5.4.0&lt;br /&gt;
      nixpkgs/16.09  intel/2016.4&lt;br /&gt;
      nixpkgs/16.09  intel/2017.1&lt;br /&gt;
 &lt;br /&gt;
    Help:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Job Submission=&lt;br /&gt;
&lt;br /&gt;
On SHARCNET clusters for production work Octave should only be run via the queuing system.  Octave serial jobs can be submitted to the serial queue using following sqsub command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sqsub -r 60m -o ofile.%J octave mycode.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of version 3.4.3 the sharcnet octave installation supports multi-threading which based on initial testing lapack/blas intensive octave jobs run in the threaded queue achieve an order of magnitude speedup compared to running single core jobs in the serial queue, without making any changes to your code.  Once the optimal number of processors is determined by scaling tests submit the job to the threaded queue for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sqsub -r 60m -n 8 -q threaded --mpp=1G -o  ofile.%J time octave mycode.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==On the Graham national system==&lt;br /&gt;
&lt;br /&gt;
The Graham national system uses the Slurm scheduler which is different from the Torque Moab scheduler that is typical to the majority of other SHARCNET systems. In order to submit a simple &amp;quot;Hello World!&amp;quot; process to Graham the user would first need to create a submit script as follows.&lt;br /&gt;
&lt;br /&gt;
 $ cat oct_serial.sh &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -t 0-00:01&lt;br /&gt;
 #SBATCH --mem=400&lt;br /&gt;
 octave --eval 'disp(&amp;quot;Hello World! from Octave&amp;quot;)'&lt;br /&gt;
&lt;br /&gt;
Then pass this submit script to &amp;quot;sbatch&amp;quot; to be entered into the queue:&lt;br /&gt;
&lt;br /&gt;
 $ sbatch --account=accountname oct_serial.sh&lt;br /&gt;
&lt;br /&gt;
... where &amp;quot;accountname&amp;quot; is the name of the accounting group to submit to (e.g. def-groupname, rgg-projectname).&lt;br /&gt;
&lt;br /&gt;
=Example Job=&lt;br /&gt;
&lt;br /&gt;
This section shows howto submit a  [http://www.gnu.org/software/octave/doc/interpreter/Executable-Octave-Programs.html sample.m] file to the serial queue that accepts  [http://www.gnu.org/software/octave/doc/interpreter/Command-Line-Options.html#Command-Line-Options command line] arguments. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat sample.m &lt;br /&gt;
#! /bin/octave -qf&lt;br /&gt;
printf (&amp;quot;%s&amp;quot;, program_name ());&lt;br /&gt;
arg_list = argv ();&lt;br /&gt;
for i = 1:nargin&lt;br /&gt;
    printf (&amp;quot; %s&amp;quot;, arg_list{i});&lt;br /&gt;
endfor&lt;br /&gt;
printf (&amp;quot;\n&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate exatraneous verbosity in the output file two switches are passed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] sqsub -r 60m -o ofile.%J octave -qf --no-window-system sample.m arg1 arg2 arg3 etc&lt;br /&gt;
WARNING: no memory requirement defined; assuming 2GB per process.&lt;br /&gt;
submitted as jobid 6937872&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file from the job appears as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat ofile.6937872.hnd50&lt;br /&gt;
sample.m arg1 arg2 arg3 etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One the Graham national system==&lt;br /&gt;
&lt;br /&gt;
Rather than dedicated development as it typical on some of the other SHARCNET systems the national systems have nodes that prioritize interactive jobs allocated by call to &amp;quot;salloc&amp;quot; of the Slurm scheduler.&lt;br /&gt;
&lt;br /&gt;
To use Octave interactively on Graham you can do the following:&lt;br /&gt;
&lt;br /&gt;
Use salloc to request a single task for one hour:&lt;br /&gt;
&lt;br /&gt;
 $ salloc --account=def-roxa88 --time=1:0:0 --ntasks=1&lt;br /&gt;
&lt;br /&gt;
Then you will receive notification when the reservation is granted (including jobid), for&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
 salloc: Granted job allocation 12345&lt;br /&gt;
&lt;br /&gt;
Then use srun to start a terminal to work in on the reservation:&lt;br /&gt;
&lt;br /&gt;
 $ srun --wait 0 --pty bash&lt;br /&gt;
&lt;br /&gt;
Once running the terminal in the allocation you can start your work with Octave by loading&lt;br /&gt;
the module and starting the program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load octave&lt;br /&gt;
$ octave&lt;br /&gt;
octave: X11 DISPLAY environment variable not set&lt;br /&gt;
octave: disabling GUI features&lt;br /&gt;
GNU Octave, version 4.2.1&lt;br /&gt;
Copyright (C) 2017 John W. Eaton and others.&lt;br /&gt;
This is free software; see the source code for copying conditions.&lt;br /&gt;
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.&lt;br /&gt;
&lt;br /&gt;
Octave was configured for &amp;quot;x86_64-pc-linux-gnu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Additional information about Octave is available at http://www.octave.org.&lt;br /&gt;
&lt;br /&gt;
Please contribute if you find this software useful.&lt;br /&gt;
For more information, visit http://www.octave.org/get-involved.html&lt;br /&gt;
&lt;br /&gt;
Read http://www.octave.org/bugs.html to learn how to submit bug reports.&lt;br /&gt;
For information about changes from previous versions, type 'news'.&lt;br /&gt;
&lt;br /&gt;
octave:1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Then once you have the &amp;quot;octave:#&amp;gt;&amp;quot; prompt the terminal will behave like the Matlab&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
Once you are finished with Octave use &amp;quot;quit&amp;quot; to exit the program, then &amp;quot;exit&amp;quot; to logout of&lt;br /&gt;
the compute node (terminate srun), then &amp;quot;exit&amp;quot; again to terminate the allocation&lt;br /&gt;
(relinquishing the allocate resources).&lt;br /&gt;
&lt;br /&gt;
=Running on a visualization system=&lt;br /&gt;
&lt;br /&gt;
Once logged in to a visualization system an instance of Octave can be launched from Applications Menu &amp;gt; Eduction &amp;gt; GNU Octave.&lt;br /&gt;
&lt;br /&gt;
=General notes=&lt;br /&gt;
&lt;br /&gt;
==Matlab Compatibility==&lt;br /&gt;
&lt;br /&gt;
The online wiki resources &amp;quot;Octave Wiki&amp;quot;:&lt;br /&gt;
 http://wiki.octave.org/  &lt;br /&gt;
or &amp;quot;Wikibook&amp;quot;:&lt;br /&gt;
 http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB &lt;br /&gt;
provide good introductory explanations of code compatibility between Octave and Matlab.&lt;br /&gt;
&lt;br /&gt;
In order to run Octave so that it interprets scripts as closely as possible to Matlab, use the --traditional flag. Taking from the above sqsub example the maximum Matlab compatible submission would be:&lt;br /&gt;
&lt;br /&gt;
 sqsub -r 60m -o ofile.%J octave --traditional mycode.m&lt;br /&gt;
&lt;br /&gt;
==Reading/Writing Files==&lt;br /&gt;
&lt;br /&gt;
There are two strategies for handling file &amp;lt;i&amp;gt;input and output&amp;lt;/i&amp;gt; described in the &amp;quot;Octave manual&amp;quot; viz ...&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Input-and-Output.html#Input-and-Output&amp;lt;br&amp;gt; http://www.gnu.org/software/octave/docs.html.&lt;br /&gt;
&lt;br /&gt;
The following stanza demonstrates the &amp;quot;simple file I/O&amp;quot; approach:&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Simple-File-I_002fO.html#Simple-File-I_002fO &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
save myiofile.dat A B C&lt;br /&gt;
save (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
save (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load myiofile.dat&lt;br /&gt;
load (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where A, B and C are a potential mix of entities such as scalars, vectors or matrices.  Note that for large files the binary format is strongly recommended to both minimize disk space and file read/write wallclock times.&lt;br /&gt;
&lt;br /&gt;
==Octave-Forge==&lt;br /&gt;
&lt;br /&gt;
Octave-forge packages are not pre-installed on SHARCNET clusters since none are available at this time for the operating system.  Therefore any required packages must be downloaded, manually installed from source and then managed in local user accounts (as described below).&lt;br /&gt;
&lt;br /&gt;
However 16 of approximately 95 octave-forge packages are installed on some sharcnet visualization workstations including viz1,2,3-uwaterloo, viz2-uwo, viz6-uoguelph under /usr/share/octave/packages. As a word of caution however, all package versions will likely be significantly old since they are tied to the operating system fedora /etc/redhat-release major version and hence not contain recent critical bug fixes (which could be numerical in nature).  Users are therefore strongly recommended to likewise download and install the latest version similarly as would be done on the clusters.&lt;br /&gt;
&lt;br /&gt;
===Sharing Packages===&lt;br /&gt;
&lt;br /&gt;
Note that packages installed by a single sharcnet user in their home account can be shared out to other research group members or even among general SHARCNET users.  To do this simply set access permissions for group or global read access accordingly. For details on how to change &lt;br /&gt;
the permissions see:   https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_do_I_give_other_users_access_to_my_files_.3F&lt;br /&gt;
&lt;br /&gt;
===Managing Packages===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Octave Forge&amp;quot; http://octave.sourceforge.net/ project provides extra packages for use with octave that can be downloaded into a directory such as &amp;lt;i&amp;gt;~/my_octave_sources&amp;lt;/i&amp;gt; then manually installed into your own sharcnet account as will be shown in the follow example.  A current list of packages available for download that notable are generally only compatible with the latest major release of octave cat be found here http://octave.sourceforge.net/packages.php. &lt;br /&gt;
&lt;br /&gt;
In the event where the major version of octave on sharcnet you are using (for instance 3.4.x) is not the same as latest major version (at the time of writing 3.6.x) and there were programming api changes between the two versions that effect the package you want to use, then you probably will need to download an older version of a package from http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/. for it to work.&lt;br /&gt;
 &lt;br /&gt;
To help estimate the package version required as a starting point, consider the major release dates of recent which are octave-3.4.3 (10/10/11), octave-3.6.0 (01/15/12), octave-3.6.1 (02/22/12) and finally octave-3.6.2 (05/31/12).  Next consider you want to download the latest geometry package that was compatible with  octave-3.4.3 at the time of its release, then simply display all the archived versions as shown in the following stanza and pick the last available geometry release date before the next major release octave-3.6.0 (01/15/12).   To show a list of all archived geometry versions, do the following steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/&lt;br /&gt;
Click Packages on top menu menu bar&lt;br /&gt;
Scroll down to the miscellaneous package row and click details&lt;br /&gt;
Click (older versions) located below &amp;quot;Download Package&amp;quot;&lt;br /&gt;
Click Octave Forge Packages&lt;br /&gt;
Click  Individual Package Releases&lt;br /&gt;
Please wait for the page to load ...&lt;br /&gt;
Click &amp;quot;Name&amp;quot; at the top of first colum to sort packages alphabetically&lt;br /&gt;
Scroll down you will find all available archived geometry packages:&lt;br /&gt;
 geometry-1.0.1.tar.gz  2011-09-27&lt;br /&gt;
 geometry-1.1.1.tar.gz  2011-10-06&lt;br /&gt;
 geometry-1.1.2.tar.gz  2011-10-09&lt;br /&gt;
 geometry-1.1.3.tar.gz  2011-10-13&lt;br /&gt;
 geometry-1.1.tar.gz    2011-10-04&lt;br /&gt;
 geometry-1.2.0.tar.gz  2011-10-22&lt;br /&gt;
 geometry-1.2.1.tar.gz  2011-11-02&lt;br /&gt;
 geometry-1.2.2.tar.gz  2011-11-04&lt;br /&gt;
 geometry-1.4.0.tar.gz  2012-01-25&lt;br /&gt;
 geometry-1.4.1.tar.gz  2012-03-24&lt;br /&gt;
 geometry-1.5.0.tar.gz  2012-06-05&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore you will download geometry-1.2.2.tar.gz (2011-11-04) since the next&lt;br /&gt;
release geometry-1.4.0.tar.gz (2012-01-25) and then install it into octave&lt;br /&gt;
3.4.3 as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@tope:~/my_octave_sources] octave&lt;br /&gt;
GNU Octave, version 3.4.3&lt;br /&gt;
octave:1&amp;gt; pkg install geometry-1.2.2.tar.gz&lt;br /&gt;
octave:2&amp;gt; pkg list&lt;br /&gt;
Package Name   | Version | Installation directory&lt;br /&gt;
---------------+---------+-----------------------&lt;br /&gt;
     geometry  |   1.2.2 | /home/roberpj/octave/geometry-1.2.2&lt;br /&gt;
octave:15&amp;gt; pkg load geometry&lt;br /&gt;
octave:16&amp;gt; pkg describe geometry&lt;br /&gt;
---&lt;br /&gt;
Package name:&lt;br /&gt;
        geometry&lt;br /&gt;
Version:&lt;br /&gt;
        1.2.2&lt;br /&gt;
Short description:&lt;br /&gt;
        Library for geometric computing extending MatGeom functions. Useful to create,&lt;br /&gt;
transform, manipulate and display geometric primitives.&lt;br /&gt;
Status:&lt;br /&gt;
        Loaded&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Any questions regarding package version compatibility with major or minor octave release should be referred to the developers.&lt;br /&gt;
&lt;br /&gt;
===Package Commands===&lt;br /&gt;
&lt;br /&gt;
Additional examples of package commands are shown in this section.  For demonstration purpose linear-algebra will first be downloaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@iqaluk:~] mkdir my_octave_sources&lt;br /&gt;
[roberpj@iqaluk:~] cd my_octave_sources&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/general-1.3.2.tar.gz&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[myusername@orc-login1:~]octave&lt;br /&gt;
octave:1&amp;gt;  help pkg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a package such as linear-algebra do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
octave:2&amp;gt;  cd ~/my_octave_sources&lt;br /&gt;
octave:3&amp;gt;  pkg install  general-1.3.2.tar.gz&lt;br /&gt;
octave:4&amp;gt;  pkg install linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a package, from a terminal first do:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/octave&lt;br /&gt;
rm -rf linear-algebra-2.2.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... then from within octave do:&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:5&amp;gt;  pkg uninstall linear-algebra&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all installed packages do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:6&amp;gt;  pkg list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a named packages to your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:7&amp;gt;  pkg load name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a named package from your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:8&amp;gt;   pkg unload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all functions provided by a package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:9&amp;gt;  pkg describe -verbose all&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions provide by extra odepkg package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:10&amp;gt;  pkg describe odepkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions details for extra financial package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:11&amp;gt;  pkg describe financial -verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as sin do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:12&amp;gt;   doc sin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get help using the doc command do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:13&amp;gt;   help doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as matrix do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:14&amp;gt;  doc matrix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for any topic run the doc command alone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:15&amp;gt;  doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package Example===&lt;br /&gt;
&lt;br /&gt;
This example assumes you first create two directories in your home account one being named&lt;br /&gt;
  ~/my_octave_packages  &lt;br /&gt;
and the other &lt;br /&gt;
  ~/my_octave_sources &lt;br /&gt;
then download the required three tar.gz files into the latter from &lt;br /&gt;
 http://octave.sourceforge.net/packages.php ...&lt;br /&gt;
&lt;br /&gt;
 [roberpj@orc-login1:~] module unload octave&lt;br /&gt;
 [roberpj@orc-login1:~] module load octave&lt;br /&gt;
 [roberpj@orc-login1:~] octave&lt;br /&gt;
 GNU Octave, version 3.4.3&lt;br /&gt;
 octave:1&amp;gt; pkg prefix ~/my_octave_packages&lt;br /&gt;
 ans = /home/roberpj/my_octave_packages&lt;br /&gt;
 octave:2&amp;gt; cd my_octave_sources&lt;br /&gt;
 octave:3&amp;gt; ls&lt;br /&gt;
 miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz   struct-1.0.9.tar.gz&lt;br /&gt;
 octave:4&amp;gt; pkg install miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz struct-1.0.9.tar.gz&lt;br /&gt;
 octave:5&amp;gt; pkg list&lt;br /&gt;
 Package Name   | Version | Installation directory&lt;br /&gt;
 ---------------|---------|-----------------------&lt;br /&gt;
 miscellaneous *|  1.0.11 |  /home/roberpj/my_octave_packages/miscellaneous-1.0.11&lt;br /&gt;
        optim *|  1.0.17 |  /home/roberpj/my_octave_packages/optim-1.0.17&lt;br /&gt;
       struct *|   1.0.9 |  /home/roberpj/my_octave_packages/struct-1.0.9&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Octave Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
o Octave 725 Page Manual (Version 3.4.0)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/&lt;br /&gt;
&lt;br /&gt;
o Statistic Package Function Reference&amp;lt;br&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/doc/funref_statistics.html&lt;br /&gt;
&lt;br /&gt;
o GNU Octave Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.octave.org/&lt;br /&gt;
&lt;br /&gt;
o Matlab-Like Tools for HPC (article)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.admin-magazine.com/HPC/Articles/Matlab-Like-Tools-for-HPC&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17896</id>
		<title>OCTAVE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=OCTAVE&amp;diff=17896"/>
				<updated>2019-05-15T17:20:22Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Running in the development nodes */ removing obsolete&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--checked2016--&amp;gt;&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=OCTAVE&lt;br /&gt;
|package_description=Mostly compatible language with Matlab primarily intended for numerical computations&lt;br /&gt;
|package_idnumber=28&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Octave is provided on SHARCNET clusters  to allow serial or threaded jobs to be run in the queue as described below.&lt;br /&gt;
&lt;br /&gt;
=Version Selection=&lt;br /&gt;
&lt;br /&gt;
To see what versions of Octave are available on sharcnet clusters consult the Availability table on the sharcnet OCTAVE web portal software page OR run the following command directly on a cluster:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;module avail&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting with version 3.6.3 its necessary to first unload the intel compiler module (or any other compiler that might be loaded) before loading the Octave module.  This is done to ensure any octave-forge packages that are to be downloaded and installed into user space are built with the native gcc compiler which is version 4.4.6 at the time of this writing.  Therefore to load octave/3.6.3 one would do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module unload intel&lt;br /&gt;
module load octave/3.6.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, to load the default Octave module (currently version 3.8.1) one would do:&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load octave&lt;br /&gt;
&lt;br /&gt;
==On the Graham national system==&lt;br /&gt;
The module setup on the new national systems general purpose systems Graham and Cedar are slightly different from other SHARCNET systems. The module loading procedures introduce more automation of dependency interactions.&lt;br /&gt;
&lt;br /&gt;
On the Graham system the user simply needs to call the &amp;quot;module load&amp;quot; command without manually unloading conflicting packages.&lt;br /&gt;
&lt;br /&gt;
 $ module load octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
To obtain information about the package's dependencies the &amp;quot;spider&amp;quot; action can be included in the call to &amp;quot;module&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module spider octave&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave:&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
     Versions:&lt;br /&gt;
        octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  For detailed information about a specific &amp;quot;octave&amp;quot; module (including how to load the modules) use the module's full name.&lt;br /&gt;
  For example:&lt;br /&gt;
&lt;br /&gt;
     $ module spider octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[jdesjard@gra-login1 ~]$ module spider octave/4.2.1&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
  octave: octave/4.2.1&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
    Description:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
    Properties:&lt;br /&gt;
      Tools for development / Outils de développement&lt;br /&gt;
&lt;br /&gt;
    You will need to load all module(s) on any one of the lines below before the &amp;quot;octave/4.2.1&amp;quot; module is available to load.&lt;br /&gt;
&lt;br /&gt;
      nixpkgs/16.09  gcc/5.4.0&lt;br /&gt;
      nixpkgs/16.09  intel/2016.4&lt;br /&gt;
      nixpkgs/16.09  intel/2017.1&lt;br /&gt;
 &lt;br /&gt;
    Help:&lt;br /&gt;
      GNU Octave is a high-level interpreted language, primarily intended for numerical computations. - Homepage: http://www.gnu.org/software/octave/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Job Submission=&lt;br /&gt;
&lt;br /&gt;
On SHARCNET clusters for production work Octave should only be run via the queuing system.  Octave serial jobs can be submitted to the serial queue using following sqsub command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sqsub -r 60m -o ofile.%J octave mycode.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of version 3.4.3 the sharcnet octave installation supports multi-threading which based on initial testing lapack/blas intensive octave jobs run in the threaded queue achieve an order of magnitude speedup compared to running single core jobs in the serial queue, without making any changes to your code.  Once the optimal number of processors is determined by scaling tests submit the job to the threaded queue for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sqsub -r 60m -n 8 -q threaded --mpp=1G -o  ofile.%J time octave mycode.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==On the Graham national system==&lt;br /&gt;
&lt;br /&gt;
The Graham national system uses the Slurm scheduler which is different from the Torque Moab scheduler that is typical to the majority of other SHARCNET systems. In order to submit a simple &amp;quot;Hello World!&amp;quot; process to Graham the user would first need to create a submit script as follows.&lt;br /&gt;
&lt;br /&gt;
 $ cat oct_serial.sh &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -t 0-00:01&lt;br /&gt;
 #SBATCH --mem=400&lt;br /&gt;
 octave --eval 'disp(&amp;quot;Hello World! from Octave&amp;quot;)'&lt;br /&gt;
&lt;br /&gt;
Then pass this submit script to &amp;quot;sbatch&amp;quot; to be entered into the queue:&lt;br /&gt;
&lt;br /&gt;
 $ sbatch --account=accountname oct_serial.sh&lt;br /&gt;
&lt;br /&gt;
... where &amp;quot;accountname&amp;quot; is the name of the accounting group to submit to (e.g. def-groupname, rgg-projectname).&lt;br /&gt;
&lt;br /&gt;
=Example Job=&lt;br /&gt;
&lt;br /&gt;
This section shows howto submit a  [http://www.gnu.org/software/octave/doc/interpreter/Executable-Octave-Programs.html sample.m] file to the serial queue that accepts  [http://www.gnu.org/software/octave/doc/interpreter/Command-Line-Options.html#Command-Line-Options command line] arguments. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat sample.m &lt;br /&gt;
#! /bin/octave -qf&lt;br /&gt;
printf (&amp;quot;%s&amp;quot;, program_name ());&lt;br /&gt;
arg_list = argv ();&lt;br /&gt;
for i = 1:nargin&lt;br /&gt;
    printf (&amp;quot; %s&amp;quot;, arg_list{i});&lt;br /&gt;
endfor&lt;br /&gt;
printf (&amp;quot;\n&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate exatraneous verbosity in the output file two switches are passed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] sqsub -r 60m -o ofile.%J octave -qf --no-window-system sample.m arg1 arg2 arg3 etc&lt;br /&gt;
WARNING: no memory requirement defined; assuming 2GB per process.&lt;br /&gt;
submitted as jobid 6937872&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output file from the job appears as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd20:~/samples/octave/args] cat ofile.6937872.hnd50&lt;br /&gt;
sample.m arg1 arg2 arg3 etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==One the Graham national system==&lt;br /&gt;
&lt;br /&gt;
Rather than dedicated development as it typical on some of the other SHARCNET systems the national systems have nodes that prioritize interactive jobs allocated by call to &amp;quot;salloc&amp;quot; of the Slurm scheduler.&lt;br /&gt;
&lt;br /&gt;
To use Octave interactively on Graham you can do the following:&lt;br /&gt;
&lt;br /&gt;
Use salloc to request a single task for one hour:&lt;br /&gt;
&lt;br /&gt;
 $ salloc --account=def-roxa88 --time=1:0:0 --ntasks=1&lt;br /&gt;
&lt;br /&gt;
Then you will receive notification when the reservation is granted (including jobid), for&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
 salloc: Granted job allocation 12345&lt;br /&gt;
&lt;br /&gt;
Then use srun to start a terminal to work in on the reservation:&lt;br /&gt;
&lt;br /&gt;
 $ srun --wait 0 --pty bash&lt;br /&gt;
&lt;br /&gt;
Once running the terminal in the allocation you can start your work with Octave by loading&lt;br /&gt;
the module and starting the program:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load octave&lt;br /&gt;
$ octave&lt;br /&gt;
octave: X11 DISPLAY environment variable not set&lt;br /&gt;
octave: disabling GUI features&lt;br /&gt;
GNU Octave, version 4.2.1&lt;br /&gt;
Copyright (C) 2017 John W. Eaton and others.&lt;br /&gt;
This is free software; see the source code for copying conditions.&lt;br /&gt;
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or&lt;br /&gt;
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.&lt;br /&gt;
&lt;br /&gt;
Octave was configured for &amp;quot;x86_64-pc-linux-gnu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Additional information about Octave is available at http://www.octave.org.&lt;br /&gt;
&lt;br /&gt;
Please contribute if you find this software useful.&lt;br /&gt;
For more information, visit http://www.octave.org/get-involved.html&lt;br /&gt;
&lt;br /&gt;
Read http://www.octave.org/bugs.html to learn how to submit bug reports.&lt;br /&gt;
For information about changes from previous versions, type 'news'.&lt;br /&gt;
&lt;br /&gt;
octave:1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Then once you have the &amp;quot;octave:#&amp;gt;&amp;quot; prompt the terminal will behave like the Matlab&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
Once you are finished with Octave use &amp;quot;quit&amp;quot; to exit the program, then &amp;quot;exit&amp;quot; to logout of&lt;br /&gt;
the compute node (terminate srun), then &amp;quot;exit&amp;quot; again to terminate the allocation&lt;br /&gt;
(relinquishing the allocate resources).&lt;br /&gt;
&lt;br /&gt;
=Running on a visualization system=&lt;br /&gt;
&lt;br /&gt;
Once logged in to a visualization system an instance of Octave can be launched from Applications Menu &amp;gt; Eduction &amp;gt; GNU Octave.&lt;br /&gt;
&lt;br /&gt;
=General notes=&lt;br /&gt;
&lt;br /&gt;
==Matlab Compatibility==&lt;br /&gt;
&lt;br /&gt;
The online wiki resources &amp;quot;Octave Wiki&amp;quot;:&lt;br /&gt;
 http://wiki.octave.org/  &lt;br /&gt;
or &amp;quot;Wikibook&amp;quot;:&lt;br /&gt;
 http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB &lt;br /&gt;
provide good introductory explanations of code compatibility between Octave and Matlab.&lt;br /&gt;
&lt;br /&gt;
In order to run Octave so that it interprets scripts as closely as possible to Matlab, use the --traditional flag. Taking from the above sqsub example the maximum Matlab compatible submission would be:&lt;br /&gt;
&lt;br /&gt;
 sqsub -r 60m -o ofile.%J octave --traditional mycode.m&lt;br /&gt;
&lt;br /&gt;
==Reading/Writing Files==&lt;br /&gt;
&lt;br /&gt;
There are two strategies for handling file &amp;lt;i&amp;gt;input and output&amp;lt;/i&amp;gt; described in the &amp;quot;Octave manual&amp;quot; viz ...&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Input-and-Output.html#Input-and-Output&amp;lt;br&amp;gt; http://www.gnu.org/software/octave/docs.html.&lt;br /&gt;
&lt;br /&gt;
The following stanza demonstrates the &amp;quot;simple file I/O&amp;quot; approach:&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/Simple-File-I_002fO.html#Simple-File-I_002fO &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
save myiofile.dat A B C&lt;br /&gt;
save (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
save (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load myiofile.dat&lt;br /&gt;
load (&amp;quot;-text&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
load (&amp;quot;-binary&amp;quot;, &amp;quot;myiofile.dat&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where A, B and C are a potential mix of entities such as scalars, vectors or matrices.  Note that for large files the binary format is strongly recommended to both minimize disk space and file read/write wallclock times.&lt;br /&gt;
&lt;br /&gt;
==Octave-Forge==&lt;br /&gt;
&lt;br /&gt;
Octave-forge packages are not pre-installed on SHARCNET clusters since none are available at this time for the operating system.  Therefore any required packages must be downloaded, manually installed from source and then managed in local user accounts (as described below).&lt;br /&gt;
&lt;br /&gt;
However 16 of approximately 95 octave-forge packages are installed on some sharcnet visualization workstations including viz1,2,3-uwaterloo, viz2-uwo, viz6-uoguelph under /usr/share/octave/packages. As a word of caution however, all package versions will likely be significantly old since they are tied to the operating system fedora /etc/redhat-release major version and hence not contain recent critical bug fixes (which could be numerical in nature).  Users are therefore strongly recommended to likewise download and install the latest version similarly as would be done on the clusters.&lt;br /&gt;
&lt;br /&gt;
===Sharing Packages===&lt;br /&gt;
&lt;br /&gt;
Note that packages installed by a single sharcnet user in their home account can be shared out to other research group members or even among general SHARCNET users.  To do this simply set access permissions for group or global read access accordingly. For details on how to change &lt;br /&gt;
the permissions see:   https://www.sharcnet.ca/help/index.php/Knowledge_Base#How_do_I_give_other_users_access_to_my_files_.3F&lt;br /&gt;
&lt;br /&gt;
===Managing Packages===&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Octave Forge&amp;quot; http://octave.sourceforge.net/ project provides extra packages for use with octave that can be downloaded into a directory such as &amp;lt;i&amp;gt;~/my_octave_sources&amp;lt;/i&amp;gt; then manually installed into your own sharcnet account as will be shown in the follow example.  A current list of packages available for download that notable are generally only compatible with the latest major release of octave cat be found here http://octave.sourceforge.net/packages.php. &lt;br /&gt;
&lt;br /&gt;
In the event where the major version of octave on sharcnet you are using (for instance 3.4.x) is not the same as latest major version (at the time of writing 3.6.x) and there were programming api changes between the two versions that effect the package you want to use, then you probably will need to download an older version of a package from http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/. for it to work.&lt;br /&gt;
 &lt;br /&gt;
To help estimate the package version required as a starting point, consider the major release dates of recent which are octave-3.4.3 (10/10/11), octave-3.6.0 (01/15/12), octave-3.6.1 (02/22/12) and finally octave-3.6.2 (05/31/12).  Next consider you want to download the latest geometry package that was compatible with  octave-3.4.3 at the time of its release, then simply display all the archived versions as shown in the following stanza and pick the last available geometry release date before the next major release octave-3.6.0 (01/15/12).   To show a list of all archived geometry versions, do the following steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/&lt;br /&gt;
Click Packages on top menu menu bar&lt;br /&gt;
Scroll down to the miscellaneous package row and click details&lt;br /&gt;
Click (older versions) located below &amp;quot;Download Package&amp;quot;&lt;br /&gt;
Click Octave Forge Packages&lt;br /&gt;
Click  Individual Package Releases&lt;br /&gt;
Please wait for the page to load ...&lt;br /&gt;
Click &amp;quot;Name&amp;quot; at the top of first colum to sort packages alphabetically&lt;br /&gt;
Scroll down you will find all available archived geometry packages:&lt;br /&gt;
 geometry-1.0.1.tar.gz  2011-09-27&lt;br /&gt;
 geometry-1.1.1.tar.gz  2011-10-06&lt;br /&gt;
 geometry-1.1.2.tar.gz  2011-10-09&lt;br /&gt;
 geometry-1.1.3.tar.gz  2011-10-13&lt;br /&gt;
 geometry-1.1.tar.gz    2011-10-04&lt;br /&gt;
 geometry-1.2.0.tar.gz  2011-10-22&lt;br /&gt;
 geometry-1.2.1.tar.gz  2011-11-02&lt;br /&gt;
 geometry-1.2.2.tar.gz  2011-11-04&lt;br /&gt;
 geometry-1.4.0.tar.gz  2012-01-25&lt;br /&gt;
 geometry-1.4.1.tar.gz  2012-03-24&lt;br /&gt;
 geometry-1.5.0.tar.gz  2012-06-05&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore you will download geometry-1.2.2.tar.gz (2011-11-04) since the next&lt;br /&gt;
release geometry-1.4.0.tar.gz (2012-01-25) and then install it into octave&lt;br /&gt;
3.4.3 as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@tope:~/my_octave_sources] octave&lt;br /&gt;
GNU Octave, version 3.4.3&lt;br /&gt;
octave:1&amp;gt; pkg install geometry-1.2.2.tar.gz&lt;br /&gt;
octave:2&amp;gt; pkg list&lt;br /&gt;
Package Name   | Version | Installation directory&lt;br /&gt;
---------------+---------+-----------------------&lt;br /&gt;
     geometry  |   1.2.2 | /home/roberpj/octave/geometry-1.2.2&lt;br /&gt;
octave:15&amp;gt; pkg load geometry&lt;br /&gt;
octave:16&amp;gt; pkg describe geometry&lt;br /&gt;
---&lt;br /&gt;
Package name:&lt;br /&gt;
        geometry&lt;br /&gt;
Version:&lt;br /&gt;
        1.2.2&lt;br /&gt;
Short description:&lt;br /&gt;
        Library for geometric computing extending MatGeom functions. Useful to create,&lt;br /&gt;
transform, manipulate and display geometric primitives.&lt;br /&gt;
Status:&lt;br /&gt;
        Loaded&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Any questions regarding package version compatibility with major or minor octave release should be referred to the developers.&lt;br /&gt;
&lt;br /&gt;
===Package Commands===&lt;br /&gt;
&lt;br /&gt;
Additional examples of package commands are shown in this section.  For demonstration purpose linear-algebra will first be downloaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@iqaluk:~] mkdir my_octave_sources&lt;br /&gt;
[roberpj@iqaluk:~] cd my_octave_sources&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/general-1.3.2.tar.gz&lt;br /&gt;
  wget http://downloads.sourceforge.net/octave/linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[myusername@orc-login1:~]octave&lt;br /&gt;
octave:1&amp;gt;  help pkg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install a package such as linear-algebra do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
octave:2&amp;gt;  cd ~/my_octave_sources&lt;br /&gt;
octave:3&amp;gt;  pkg install  general-1.3.2.tar.gz&lt;br /&gt;
octave:4&amp;gt;  pkg install linear-algebra-2.2.0.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a package, from a terminal first do:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/octave&lt;br /&gt;
rm -rf linear-algebra-2.2.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... then from within octave do:&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:5&amp;gt;  pkg uninstall linear-algebra&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all installed packages do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:6&amp;gt;  pkg list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add a named packages to your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:7&amp;gt;  pkg load name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove a named package from your path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:8&amp;gt;   pkg unload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list all functions provided by a package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:9&amp;gt;  pkg describe -verbose all&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions provide by extra odepkg package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:10&amp;gt;  pkg describe odepkg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To list functions details for extra financial package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:11&amp;gt;  pkg describe financial -verbose&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as sin do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:12&amp;gt;   doc sin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get help using the doc command do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:13&amp;gt;   help doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for a topic such as matrix do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:14&amp;gt;  doc matrix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get documentation for any topic run the doc command alone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;octave:15&amp;gt;  doc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package Example===&lt;br /&gt;
&lt;br /&gt;
This example assumes you first create two directories in your home account one being named&lt;br /&gt;
  ~/my_octave_packages  &lt;br /&gt;
and the other &lt;br /&gt;
  ~/my_octave_sources &lt;br /&gt;
then download the required three tar.gz files into the latter from &lt;br /&gt;
 http://octave.sourceforge.net/packages.php ...&lt;br /&gt;
&lt;br /&gt;
 [roberpj@orc-login1:~] module unload octave&lt;br /&gt;
 [roberpj@orc-login1:~] module load octave&lt;br /&gt;
 [roberpj@orc-login1:~] octave&lt;br /&gt;
 GNU Octave, version 3.4.3&lt;br /&gt;
 octave:1&amp;gt; pkg prefix ~/my_octave_packages&lt;br /&gt;
 ans = /home/roberpj/my_octave_packages&lt;br /&gt;
 octave:2&amp;gt; cd my_octave_sources&lt;br /&gt;
 octave:3&amp;gt; ls&lt;br /&gt;
 miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz   struct-1.0.9.tar.gz&lt;br /&gt;
 octave:4&amp;gt; pkg install miscellaneous-1.0.11.tar.gz  optim-1.0.17.tar.gz struct-1.0.9.tar.gz&lt;br /&gt;
 octave:5&amp;gt; pkg list&lt;br /&gt;
 Package Name   | Version | Installation directory&lt;br /&gt;
 ---------------|---------|-----------------------&lt;br /&gt;
 miscellaneous *|  1.0.11 |  /home/roberpj/my_octave_packages/miscellaneous-1.0.11&lt;br /&gt;
        optim *|  1.0.17 |  /home/roberpj/my_octave_packages/optim-1.0.17&lt;br /&gt;
       struct *|   1.0.9 |  /home/roberpj/my_octave_packages/struct-1.0.9&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Octave Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/&lt;br /&gt;
&lt;br /&gt;
o Octave 725 Page Manual (Version 3.4.0)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.gnu.org/software/octave/doc/interpreter/&lt;br /&gt;
&lt;br /&gt;
o Statistic Package Function Reference&amp;lt;br&amp;gt;&lt;br /&gt;
http://octave.sourceforge.net/doc/funref_statistics.html&lt;br /&gt;
&lt;br /&gt;
o GNU Octave Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.octave.org/&lt;br /&gt;
&lt;br /&gt;
o Matlab-Like Tools for HPC (article)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.admin-magazine.com/HPC/Articles/Matlab-Like-Tools-for-HPC&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Template:Ancient&amp;diff=17815</id>
		<title>Template:Ancient</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Template:Ancient&amp;diff=17815"/>
				<updated>2019-05-10T16:20:10Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: oops, wrong template, reverting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=5 style=&amp;quot;border:4px solid #CD5C5C&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#FFDAB9&amp;quot;&lt;br /&gt;
| This page is flagged as an 'ancient wiki page' and is under review in ticket [[https://www.sharcnet.ca/my/problems/ticket/{{{1}}} {{{1}}}]].&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Template:StillNeeded&amp;diff=17814</id>
		<title>Template:StillNeeded</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Template:StillNeeded&amp;diff=17814"/>
				<updated>2019-05-10T16:19:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Created page with &amp;quot;{| cellpadding=5 style=&amp;quot;border:4px solid #0000ff&amp;quot; |- bgcolor=&amp;quot;#eaf3ff&amp;quot; | The content on this software page is still in use for running software on  {{{1}}} . Do not delete. |}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=5 style=&amp;quot;border:4px solid #0000ff&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#eaf3ff&amp;quot;&lt;br /&gt;
| The content on this software page is still in use for running software on  {{{1}}} . Do not delete.&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Template:Ancient&amp;diff=17813</id>
		<title>Template:Ancient</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Template:Ancient&amp;diff=17813"/>
				<updated>2019-05-10T16:19:40Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: create template to indicate pages which should not be deleted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=5 style=&amp;quot;border:4px solid #0000ff&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#eaf3ff&amp;quot;&lt;br /&gt;
| The content on this software page is still in use for running software on  {{{1}}} . Do not delete.&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Code_Repositories&amp;diff=17812</id>
		<title>Code Repositories</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Code_Repositories&amp;diff=17812"/>
				<updated>2019-05-09T20:38:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Code repositories=&lt;br /&gt;
&lt;br /&gt;
The code for (most) dedicated programming projects is stored in the SHARCNET [http://www.sharcnet.ca/git git repository].  What follows is some details regarding using git with these repositories.  Please refer to our [[Using Git|git page]] for general information on using git.&lt;br /&gt;
&lt;br /&gt;
==Certificate problems==&lt;br /&gt;
&lt;br /&gt;
If you are seeing error messages like ''error: server certificate verification failed ...'' while performing a clone, push, fetch, or pull, your system cannot verify the authenticity of ''www.sharcnet.ca''.  This is caused by either not connecting directly to ''www.sharcnet.ca'' (as when using ssh port tunneling as described below) or by your SSL stack having dropped support for the [http://www.win.tue.nl/hashclash/rogue-ca deprecated MD5] signatures (as with GnuTLS for SSL under Debian).&lt;br /&gt;
&lt;br /&gt;
In either case, you will have to turn off git's SSL verification by setting the environment variable ''GIT_SSL_NO_VERIFY=1'' or running the command&lt;br /&gt;
&lt;br /&gt;
  git config http.sslVerify false&lt;br /&gt;
&lt;br /&gt;
inside your repository (the former must be used for cloning as the repository won't exist yet).&lt;br /&gt;
&lt;br /&gt;
Our current certificate expires on March 10, 2012.  If you have disabled SSL verification due to the MD5 issue, you should re-enable it at this point as we will have purchased a new certificate without this issue.&lt;br /&gt;
&lt;br /&gt;
==Dropped connections==&lt;br /&gt;
&lt;br /&gt;
If you are periodically seeing error messages like ''Cannot obtain needed blob ...'' while performing a clone, push, fetch, or pull, an intermediate network is occasionally dropping your connections.  This has been a known problem on at least the Western campus.&lt;br /&gt;
&lt;br /&gt;
A solution is to use SSH to create a tunnel across the intermediate network to the SHARCNET network.&lt;br /&gt;
&lt;br /&gt;
  ssh -N -L &amp;lt;port&amp;gt;:www.sharcnet.ca:443 &amp;lt;user&amp;gt;@&amp;lt;cluster&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''&amp;lt;port&amp;gt;'' is a free port (such as 4000), ''&amp;lt;user&amp;gt;'' is your SHARCNET user name, and ''&amp;lt;cluster&amp;gt;'' is any of the SHARCNET clusters.  While this ssh session is running, connections to ''localhost:&amp;lt;port&amp;gt;'' will be forwarded ''www.sharcnet.ca:443'' via ''&amp;lt;cluster&amp;gt;''.  For example&lt;br /&gt;
&lt;br /&gt;
  GIT_SSL_NO_VERIFY=1 git clone https://localhost:&amp;lt;port&amp;gt;/&amp;lt;project&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will check out ''&amp;lt;project&amp;gt;'' over the tunnel.&lt;br /&gt;
&lt;br /&gt;
The ''GIT_SSL_NO_VERIFY'' environment variable is required as  SSL verification will otherwise fail due to the port forwarding.  Once you have checked out the project, you can permanently disable SSL verification by running&lt;br /&gt;
&lt;br /&gt;
  git config http.sslVerify false&lt;br /&gt;
&lt;br /&gt;
in the project directory.&lt;br /&gt;
&lt;br /&gt;
Note that every time you access the SHARCNET git server (i.e., do a clone, push, fetch, or pull), you need to have the ssh tunnel running.  If you try and access the remote without the ssh tunnel running, you will get an ''error: couldn't connect to host while accessing ...'' message.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User_talk:Isaac&amp;diff=17755</id>
		<title>User talk:Isaac</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User_talk:Isaac&amp;diff=17755"/>
				<updated>2019-05-06T19:03:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=17739</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=17739"/>
				<updated>2019-05-03T14:18:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 ...&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OpenSees'''  (Open System for Earthquake Engineering Simulation) is a software framework for simulating the seismic response of structural and geotechnical systems.  It has advanced capabilities for modeling and analyzing the nonlinear response of systems using a wide range of material models, elements, and solution algorithms.  Website: [http://opensees.berkeley.edu/ opensees.berkeley.edu]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;svn&amp;quot; and &amp;quot;make&amp;quot; steps are likely to take a long time.  To avoid having to stay logged in for many hours while these steps run, you can use the &amp;quot;screen&amp;quot; utility.  Please see this page for instructions: [[FAQ:_Logging_in_to_Systems,_Transferring_and_Editing_Files#How_can_I_suspend_and_resume_my_session.3F]].&lt;br /&gt;
&lt;br /&gt;
'''Trunk (24mar2017)''' tested on orca running centos6 by preney@sharcnet.ca March 24, 2017.  The compile is done with the GCC compiler and system TCL library.&lt;br /&gt;
&lt;br /&gt;
=== Serial version ===&lt;br /&gt;
&lt;br /&gt;
Starting in your home directory, run the following commands.&lt;br /&gt;
&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 mkdir lib&lt;br /&gt;
 svn co svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk OpenSees&lt;br /&gt;
 cd OpenSees&lt;br /&gt;
 cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def&lt;br /&gt;
&lt;br /&gt;
Now edit Makefile.def so it has:&lt;br /&gt;
 LINKFLAGS       = -rdynamic&lt;br /&gt;
instead of&lt;br /&gt;
 LINKFLAGS       = -rdynamic -Wl&lt;br /&gt;
and also have&lt;br /&gt;
 CC++    = g++&lt;br /&gt;
 CC      = gcc&lt;br /&gt;
 FC      = gfortran&lt;br /&gt;
&lt;br /&gt;
Then compile with:&lt;br /&gt;
 module purge &lt;br /&gt;
 module load gcc/5.1.0&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
=== Parallel MPI version ===&lt;br /&gt;
&lt;br /&gt;
Starting in your home directory, run the following commands.&lt;br /&gt;
&lt;br /&gt;
 mkdir bin&lt;br /&gt;
 mkdir lib&lt;br /&gt;
 svn co svn://peera.berkeley.edu/usr/local/svn/OpenSees/trunk OpenSees&lt;br /&gt;
 cd OpenSees&lt;br /&gt;
 cp ./MAKES/Makefile.def.EC2-REDHAT-ENTERPRISE ./Makefile.def&lt;br /&gt;
&lt;br /&gt;
Now edit Makefile.def so it has:&lt;br /&gt;
&lt;br /&gt;
 PROGRAMMING_MODE = DISTRIBUTED_MPI&lt;br /&gt;
 CC++            =  mpiCC&lt;br /&gt;
 CC              =  mpicc&lt;br /&gt;
 FC              =  gfortran&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
 LINKFLAGS       = -rdynamic&lt;br /&gt;
instead of&lt;br /&gt;
 LINKFLAGS       = -rdynamic -Wl&lt;br /&gt;
&lt;br /&gt;
Then compile with:&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load gcc/5.1.0&lt;br /&gt;
 module load  openmpi/gcc510-std/1.8.7&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
You need to perform the same module operations before running the program with MPI.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Workspace&amp;diff=16217</id>
		<title>User:Ppomorsk/Workspace</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Workspace&amp;diff=16217"/>
				<updated>2018-01-10T20:06:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* SHARCNET viz machine data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some text above the tab view&lt;br /&gt;
= First section header =&lt;br /&gt;
This will be displayed on the first tab&lt;br /&gt;
&lt;br /&gt;
{{#switchtablink:Second section header|Click here to go to the next tab...}}&lt;br /&gt;
&lt;br /&gt;
= Second section header =&lt;br /&gt;
This will be displayed on the second tab&lt;br /&gt;
&amp;lt;headertabs/&amp;gt;&lt;br /&gt;
= Third section header =&lt;br /&gt;
This will be always displayed under the tab view&lt;br /&gt;
because it's below the &amp;lt;headertabs/&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Useful table on staff wiki is [https://www.sharcnet.ca/wiki/index.php/Visualization_Workstations here]&lt;br /&gt;
&lt;br /&gt;
===SHARCNET viz machine data===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | viz machine&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | online&lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | GPU&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | CUDA&lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | CPU&lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | OS&lt;br /&gt;
|-&lt;br /&gt;
|viz1-brocku&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4600&lt;br /&gt;
|'''None'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-wlu&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16178</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16178"/>
				<updated>2018-01-04T22:16:58Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Install Octopus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 ...&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16177</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16177"/>
				<updated>2018-01-04T22:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Install clFFT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 ...&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/test_compile/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16176</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16176"/>
				<updated>2018-01-04T22:12:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Octopus instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
 ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/test_compile/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16175</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16175"/>
				<updated>2018-01-04T22:11:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Octopus instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
ln -s ~/clblasinstall/lib64 ~/clblasinstall/lib&lt;br /&gt;
&lt;br /&gt;
==== Install clFFT ====&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/clMathLibraries/clFFT.git&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake .. -DCMAKE_INSTALL_PREFIX=~/clfftinstall  -DOpenCL_LIBRARY=$CUDA_HOME/lib64/libOpenCL.so&lt;br /&gt;
&lt;br /&gt;
==== Install Octopus ====&lt;br /&gt;
 &lt;br /&gt;
 module load openblas/0.2.20&lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
 module load libxc/3.0.0&lt;br /&gt;
 module load fftw/3.3.6&lt;br /&gt;
 module load gsl/2.3&lt;br /&gt;
&lt;br /&gt;
 ./configure FC='ifort -mkl' CC='icc -mkl' CXX='icpc -mkl'  --prefix=/home/ppomorsk/test_compile/octopus-exec --enable-opencl --with-clblas-prefix=/home/ppomorsk/clblasinstall --with-clfft-prefix=/home/ppomorsk/clfftinstall&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16174</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=16174"/>
				<updated>2018-01-04T22:09:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Octopus instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Install cblas ====&lt;br /&gt;
&lt;br /&gt;
 module load openblas/0.2.20 &lt;br /&gt;
 module load cuda/8.0.44&lt;br /&gt;
 module load boost/1.60.0&lt;br /&gt;
&lt;br /&gt;
 FC=ifort CC=icc CXX=icpc cmake ..  -DNetlib_BLAS_LIBRARY=$EBROOTOPENBLAS   -DNetlib_INCLUDE_DIRS=$EBROOTOPENBLAS/include -&lt;br /&gt;
 DCMAKE_INSTALL_PREFIX=~/clblasinstall -DBUILD_TEST:BOOL=OFF&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15997</id>
		<title>Using OpenBUGS with R</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15997"/>
				<updated>2017-11-02T03:08:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Instructions for usage on new Compute Canada clusters (cedar and graham)=&lt;br /&gt;
&lt;br /&gt;
==Installation of OpenBUGS==&lt;br /&gt;
Download the source code from the [http://www.openbugs.net/w/Downloads Downloads] page and then copy it to graham or cedar.&lt;br /&gt;
&lt;br /&gt;
 tar xvfz OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
 cd OpenBUGS-3.2.3&lt;br /&gt;
 ./configure --prefix=/home/$USER/lib/openbugs-3.2.3&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
If this fails because of missing gnu/stubs-32.h file, you must contact the system administrator to install that file.&lt;br /&gt;
&lt;br /&gt;
==Installation of R2OpenBUGS==&lt;br /&gt;
First, load the R module.  You can find out which are available by running:&lt;br /&gt;
&lt;br /&gt;
 module spider r&lt;br /&gt;
&lt;br /&gt;
In this case we choose the latest (as of November, 2017):&lt;br /&gt;
&lt;br /&gt;
 module load r/3.4.0&lt;br /&gt;
&lt;br /&gt;
Then start R:&lt;br /&gt;
&lt;br /&gt;
 R&lt;br /&gt;
&lt;br /&gt;
and inside it run:&lt;br /&gt;
&lt;br /&gt;
 install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To make it able to find OpenBUGS at runtime, you need to set the variable that point it to the location where the binary is installed.&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instructions for usage on older SHARCNET clusters (eg. orca)=&lt;br /&gt;
&lt;br /&gt;
==Obtaining OpenBUGS==&lt;br /&gt;
&lt;br /&gt;
OpenBUGS is an open source project. It can be downloaded from [http://www.openbugs.net/w/FrontPage here]. Look for the package for Linux, it comes as gzipped Unix tar file, named as '''OpenBUGS-''version''.tar.gz''', e.g. OpenBUGS-3.2.3.tar.gz.&lt;br /&gt;
&lt;br /&gt;
==Installing OpenBUGS for Linux==&lt;br /&gt;
&lt;br /&gt;
First, save it and copy it to your account, say, in folder Downloads. Then unpack it with command&lt;br /&gt;
&lt;br /&gt;
 tar zxvf OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will extract the content from the tar file and put in folder OpenBUGS-3.2.3. Then go into that folder&lt;br /&gt;
&lt;br /&gt;
 cd OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and run configuration first&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
This sets where to install the package. In this case, it will be installed in /home/you/lib/openbugs-3.2.3. You may choose another location you like. By default the installation directory is /usr/local, which is not what you want.&lt;br /&gt;
&lt;br /&gt;
Then compile and install it with commands&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The compilation shouldn't take long to complete. It is likely, however, that the compilation may fail due to missing system files. specifically, gnu/stubs-32.h. If this is the case, you will need to ask the system administrators to install the missing system files.&lt;br /&gt;
&lt;br /&gt;
Upon success, you should have three folders created in /home/your/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
 bin   lib   share&lt;br /&gt;
&lt;br /&gt;
In bin, there are two binaries: '''OpenBUGS''' and '''OpenBUGSCli'''. '''OpenBUGS''' is what you will need when you run R calling bugs.&lt;br /&gt;
&lt;br /&gt;
==Installing R2OpenBUGS for R==&lt;br /&gt;
&lt;br /&gt;
In order to user OpenBUGS in R, you need an R interface to BUGS. The package R2OpenBUGS is recommended. The package can be installed in user space. To install it, first, load R module. You might need to unload intel module on SHARCNET systems to avoid possible conflict&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
&lt;br /&gt;
To see what releases of R are available, use command&lt;br /&gt;
&lt;br /&gt;
 module avail r&lt;br /&gt;
&lt;br /&gt;
If you prefer a specific version, e.g. 3.1, then use command&lt;br /&gt;
&lt;br /&gt;
 module load r/3.1&lt;br /&gt;
&lt;br /&gt;
Otherwise, the command&lt;br /&gt;
&lt;br /&gt;
 module load r&lt;br /&gt;
&lt;br /&gt;
would just load the latest version by default.&lt;br /&gt;
&lt;br /&gt;
Then run R from command line. At the R prompt, use R command '''install.packages()''' to install R2OpenBUGS&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and follow the instructions.&lt;br /&gt;
&lt;br /&gt;
==Using OpenBUGS in R==&lt;br /&gt;
&lt;br /&gt;
The R2OpenBUGS is an interface to OpenBUGS. In order to use OpenBUGS in R, you need to tell where OpenBUGS resides. According to the help info, as you would get from R command&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;library(R2OpenBUGS)&lt;br /&gt;
 &amp;gt;... ...&lt;br /&gt;
 &amp;gt;help(bugs)&lt;br /&gt;
&lt;br /&gt;
there are two ways of telling '''bugs()''' where OpenBUGS is. First you may specify the path to OpenBUGS in the call to bugs() in your R code. Assume that OpenBUGS executable is installed in /home/you/bin (you need to change it to where you have put the binary OpenBUGS), the call to bugs() would like something like this&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, OpenBUGS.pgm=&amp;quot;/home/you/bin/OpenBUGS&amp;quot;, model.file=&amp;quot;/home/youschools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = NULL)&lt;br /&gt;
&lt;br /&gt;
Note, this line has the paths to the OpenBUGS and the model file specific to the system you are using. To make your R code portable, you may simply set environment variable at the command line or put the following line in '''.bash_profile''' in your home directory&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and also, set the working directory to the current folder (the last argument) as follows&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, model.file=&amp;quot;schools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When working.directory is where the input and output are stored. By default, it is set to NULL and the location is unexpected from one system to another.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15996</id>
		<title>Using OpenBUGS with R</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15996"/>
				<updated>2017-11-02T03:06:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Installation of OpenBUGS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Instructions for usage on new Compute Canada clusters (cedar and graham)=&lt;br /&gt;
&lt;br /&gt;
==Installation of OpenBUGS==&lt;br /&gt;
Download the source code from the [http://www.openbugs.net/w/Downloads Downloads] page and then copy it to graham or cedar.&lt;br /&gt;
&lt;br /&gt;
 tar xvfz OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
 cd OpenBUGS-3.2.3&lt;br /&gt;
 ./configure --prefix=/home/$USER/lib/openbugs-3.2.3&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
If this fails because of missing gnu/stubs-32.h file, you must contact the system administrator to install that file.&lt;br /&gt;
&lt;br /&gt;
==Installation of R2OpenBUGS==&lt;br /&gt;
First, load the R module.  You can find out which are available by running:&lt;br /&gt;
&lt;br /&gt;
 module spider r&lt;br /&gt;
&lt;br /&gt;
In this case we choose the latest (as of November, 2017):&lt;br /&gt;
&lt;br /&gt;
 module load r/3.4.0&lt;br /&gt;
&lt;br /&gt;
Then start R:&lt;br /&gt;
&lt;br /&gt;
 R&lt;br /&gt;
&lt;br /&gt;
and inside it run:&lt;br /&gt;
&lt;br /&gt;
 install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instructions for usage on older SHARCNET clusters (eg. orca)=&lt;br /&gt;
&lt;br /&gt;
==Obtaining OpenBUGS==&lt;br /&gt;
&lt;br /&gt;
OpenBUGS is an open source project. It can be downloaded from [http://www.openbugs.net/w/FrontPage here]. Look for the package for Linux, it comes as gzipped Unix tar file, named as '''OpenBUGS-''version''.tar.gz''', e.g. OpenBUGS-3.2.3.tar.gz.&lt;br /&gt;
&lt;br /&gt;
==Installing OpenBUGS for Linux==&lt;br /&gt;
&lt;br /&gt;
First, save it and copy it to your account, say, in folder Downloads. Then unpack it with command&lt;br /&gt;
&lt;br /&gt;
 tar zxvf OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will extract the content from the tar file and put in folder OpenBUGS-3.2.3. Then go into that folder&lt;br /&gt;
&lt;br /&gt;
 cd OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and run configuration first&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
This sets where to install the package. In this case, it will be installed in /home/you/lib/openbugs-3.2.3. You may choose another location you like. By default the installation directory is /usr/local, which is not what you want.&lt;br /&gt;
&lt;br /&gt;
Then compile and install it with commands&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The compilation shouldn't take long to complete. It is likely, however, that the compilation may fail due to missing system files. specifically, gnu/stubs-32.h. If this is the case, you will need to ask the system administrators to install the missing system files.&lt;br /&gt;
&lt;br /&gt;
Upon success, you should have three folders created in /home/your/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
 bin   lib   share&lt;br /&gt;
&lt;br /&gt;
In bin, there are two binaries: '''OpenBUGS''' and '''OpenBUGSCli'''. '''OpenBUGS''' is what you will need when you run R calling bugs.&lt;br /&gt;
&lt;br /&gt;
==Installing R2OpenBUGS for R==&lt;br /&gt;
&lt;br /&gt;
In order to user OpenBUGS in R, you need an R interface to BUGS. The package R2OpenBUGS is recommended. The package can be installed in user space. To install it, first, load R module. You might need to unload intel module on SHARCNET systems to avoid possible conflict&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
&lt;br /&gt;
To see what releases of R are available, use command&lt;br /&gt;
&lt;br /&gt;
 module avail r&lt;br /&gt;
&lt;br /&gt;
If you prefer a specific version, e.g. 3.1, then use command&lt;br /&gt;
&lt;br /&gt;
 module load r/3.1&lt;br /&gt;
&lt;br /&gt;
Otherwise, the command&lt;br /&gt;
&lt;br /&gt;
 module load r&lt;br /&gt;
&lt;br /&gt;
would just load the latest version by default.&lt;br /&gt;
&lt;br /&gt;
Then run R from command line. At the R prompt, use R command '''install.packages()''' to install R2OpenBUGS&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and follow the instructions.&lt;br /&gt;
&lt;br /&gt;
==Using OpenBUGS in R==&lt;br /&gt;
&lt;br /&gt;
The R2OpenBUGS is an interface to OpenBUGS. In order to use OpenBUGS in R, you need to tell where OpenBUGS resides. According to the help info, as you would get from R command&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;library(R2OpenBUGS)&lt;br /&gt;
 &amp;gt;... ...&lt;br /&gt;
 &amp;gt;help(bugs)&lt;br /&gt;
&lt;br /&gt;
there are two ways of telling '''bugs()''' where OpenBUGS is. First you may specify the path to OpenBUGS in the call to bugs() in your R code. Assume that OpenBUGS executable is installed in /home/you/bin (you need to change it to where you have put the binary OpenBUGS), the call to bugs() would like something like this&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, OpenBUGS.pgm=&amp;quot;/home/you/bin/OpenBUGS&amp;quot;, model.file=&amp;quot;/home/youschools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = NULL)&lt;br /&gt;
&lt;br /&gt;
Note, this line has the paths to the OpenBUGS and the model file specific to the system you are using. To make your R code portable, you may simply set environment variable at the command line or put the following line in '''.bash_profile''' in your home directory&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and also, set the working directory to the current folder (the last argument) as follows&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, model.file=&amp;quot;schools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When working.directory is where the input and output are stored. By default, it is set to NULL and the location is unexpected from one system to another.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15995</id>
		<title>Using OpenBUGS with R</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15995"/>
				<updated>2017-11-02T03:00:52Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: instructions for graham&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Instructions for usage on new Compute Canada clusters (cedar and graham)=&lt;br /&gt;
&lt;br /&gt;
==Installation of OpenBUGS==&lt;br /&gt;
Download the source code from the [http://www.openbugs.net/w/Downloads Downloads] page and then copy it to graham or cedar.&lt;br /&gt;
&lt;br /&gt;
 tar xvfz OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
 cd OpenBUGS-3.2.3&lt;br /&gt;
 ./configure --prefix=/home/$USER/lib/openbugs-3.2.3&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
==Installation of R2OpenBUGS==&lt;br /&gt;
First, load the R module.  You can find out which are available by running:&lt;br /&gt;
&lt;br /&gt;
 module spider r&lt;br /&gt;
&lt;br /&gt;
In this case we choose the latest (as of November, 2017):&lt;br /&gt;
&lt;br /&gt;
 module load r/3.4.0&lt;br /&gt;
&lt;br /&gt;
Then start R:&lt;br /&gt;
&lt;br /&gt;
 R&lt;br /&gt;
&lt;br /&gt;
and inside it run:&lt;br /&gt;
&lt;br /&gt;
 install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instructions for usage on older SHARCNET clusters (eg. orca)=&lt;br /&gt;
&lt;br /&gt;
==Obtaining OpenBUGS==&lt;br /&gt;
&lt;br /&gt;
OpenBUGS is an open source project. It can be downloaded from [http://www.openbugs.net/w/FrontPage here]. Look for the package for Linux, it comes as gzipped Unix tar file, named as '''OpenBUGS-''version''.tar.gz''', e.g. OpenBUGS-3.2.3.tar.gz.&lt;br /&gt;
&lt;br /&gt;
==Installing OpenBUGS for Linux==&lt;br /&gt;
&lt;br /&gt;
First, save it and copy it to your account, say, in folder Downloads. Then unpack it with command&lt;br /&gt;
&lt;br /&gt;
 tar zxvf OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will extract the content from the tar file and put in folder OpenBUGS-3.2.3. Then go into that folder&lt;br /&gt;
&lt;br /&gt;
 cd OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and run configuration first&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
This sets where to install the package. In this case, it will be installed in /home/you/lib/openbugs-3.2.3. You may choose another location you like. By default the installation directory is /usr/local, which is not what you want.&lt;br /&gt;
&lt;br /&gt;
Then compile and install it with commands&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The compilation shouldn't take long to complete. It is likely, however, that the compilation may fail due to missing system files. specifically, gnu/stubs-32.h. If this is the case, you will need to ask the system administrators to install the missing system files.&lt;br /&gt;
&lt;br /&gt;
Upon success, you should have three folders created in /home/your/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
 bin   lib   share&lt;br /&gt;
&lt;br /&gt;
In bin, there are two binaries: '''OpenBUGS''' and '''OpenBUGSCli'''. '''OpenBUGS''' is what you will need when you run R calling bugs.&lt;br /&gt;
&lt;br /&gt;
==Installing R2OpenBUGS for R==&lt;br /&gt;
&lt;br /&gt;
In order to user OpenBUGS in R, you need an R interface to BUGS. The package R2OpenBUGS is recommended. The package can be installed in user space. To install it, first, load R module. You might need to unload intel module on SHARCNET systems to avoid possible conflict&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
&lt;br /&gt;
To see what releases of R are available, use command&lt;br /&gt;
&lt;br /&gt;
 module avail r&lt;br /&gt;
&lt;br /&gt;
If you prefer a specific version, e.g. 3.1, then use command&lt;br /&gt;
&lt;br /&gt;
 module load r/3.1&lt;br /&gt;
&lt;br /&gt;
Otherwise, the command&lt;br /&gt;
&lt;br /&gt;
 module load r&lt;br /&gt;
&lt;br /&gt;
would just load the latest version by default.&lt;br /&gt;
&lt;br /&gt;
Then run R from command line. At the R prompt, use R command '''install.packages()''' to install R2OpenBUGS&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and follow the instructions.&lt;br /&gt;
&lt;br /&gt;
==Using OpenBUGS in R==&lt;br /&gt;
&lt;br /&gt;
The R2OpenBUGS is an interface to OpenBUGS. In order to use OpenBUGS in R, you need to tell where OpenBUGS resides. According to the help info, as you would get from R command&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;library(R2OpenBUGS)&lt;br /&gt;
 &amp;gt;... ...&lt;br /&gt;
 &amp;gt;help(bugs)&lt;br /&gt;
&lt;br /&gt;
there are two ways of telling '''bugs()''' where OpenBUGS is. First you may specify the path to OpenBUGS in the call to bugs() in your R code. Assume that OpenBUGS executable is installed in /home/you/bin (you need to change it to where you have put the binary OpenBUGS), the call to bugs() would like something like this&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, OpenBUGS.pgm=&amp;quot;/home/you/bin/OpenBUGS&amp;quot;, model.file=&amp;quot;/home/youschools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = NULL)&lt;br /&gt;
&lt;br /&gt;
Note, this line has the paths to the OpenBUGS and the model file specific to the system you are using. To make your R code portable, you may simply set environment variable at the command line or put the following line in '''.bash_profile''' in your home directory&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and also, set the working directory to the current folder (the last argument) as follows&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, model.file=&amp;quot;schools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When working.directory is where the input and output are stored. By default, it is set to NULL and the location is unexpected from one system to another.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15994</id>
		<title>Using OpenBUGS with R</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15994"/>
				<updated>2017-11-02T02:44:55Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Instructions for usage on new Compute Canada clusters (cedar and graham)=&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
First, load the R module.  You can find out which are available by running:&lt;br /&gt;
&lt;br /&gt;
 module spider r&lt;br /&gt;
&lt;br /&gt;
In this case we choose the latest (as of November, 2017):&lt;br /&gt;
&lt;br /&gt;
 module load r/3.4.0&lt;br /&gt;
&lt;br /&gt;
Then start R:&lt;br /&gt;
&lt;br /&gt;
 R&lt;br /&gt;
&lt;br /&gt;
and inside it run:&lt;br /&gt;
&lt;br /&gt;
 install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instructions for usage on older SHARCNET clusters (eg. orca)=&lt;br /&gt;
&lt;br /&gt;
==Obtaining OpenBUGS==&lt;br /&gt;
&lt;br /&gt;
OpenBUGS is an open source project. It can be downloaded from [http://www.openbugs.net/w/FrontPage here]. Look for the package for Linux, it comes as gzipped Unix tar file, named as '''OpenBUGS-''version''.tar.gz''', e.g. OpenBUGS-3.2.3.tar.gz.&lt;br /&gt;
&lt;br /&gt;
==Installing OpenBUGS for Linux==&lt;br /&gt;
&lt;br /&gt;
First, save it and copy it to your account, say, in folder Downloads. Then unpack it with command&lt;br /&gt;
&lt;br /&gt;
 tar zxvf OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will extract the content from the tar file and put in folder OpenBUGS-3.2.3. Then go into that folder&lt;br /&gt;
&lt;br /&gt;
 cd OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and run configuration first&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
This sets where to install the package. In this case, it will be installed in /home/you/lib/openbugs-3.2.3. You may choose another location you like. By default the installation directory is /usr/local, which is not what you want.&lt;br /&gt;
&lt;br /&gt;
Then compile and install it with commands&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The compilation shouldn't take long to complete. It is likely, however, that the compilation may fail due to missing system files. specifically, gnu/stubs-32.h. If this is the case, you will need to ask the system administrators to install the missing system files.&lt;br /&gt;
&lt;br /&gt;
Upon success, you should have three folders created in /home/your/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
 bin   lib   share&lt;br /&gt;
&lt;br /&gt;
In bin, there are two binaries: '''OpenBUGS''' and '''OpenBUGSCli'''. '''OpenBUGS''' is what you will need when you run R calling bugs.&lt;br /&gt;
&lt;br /&gt;
==Installing R2OpenBUGS for R==&lt;br /&gt;
&lt;br /&gt;
In order to user OpenBUGS in R, you need an R interface to BUGS. The package R2OpenBUGS is recommended. The package can be installed in user space. To install it, first, load R module. You might need to unload intel module on SHARCNET systems to avoid possible conflict&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
&lt;br /&gt;
To see what releases of R are available, use command&lt;br /&gt;
&lt;br /&gt;
 module avail r&lt;br /&gt;
&lt;br /&gt;
If you prefer a specific version, e.g. 3.1, then use command&lt;br /&gt;
&lt;br /&gt;
 module load r/3.1&lt;br /&gt;
&lt;br /&gt;
Otherwise, the command&lt;br /&gt;
&lt;br /&gt;
 module load r&lt;br /&gt;
&lt;br /&gt;
would just load the latest version by default.&lt;br /&gt;
&lt;br /&gt;
Then run R from command line. At the R prompt, use R command '''install.packages()''' to install R2OpenBUGS&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and follow the instructions.&lt;br /&gt;
&lt;br /&gt;
==Using OpenBUGS in R==&lt;br /&gt;
&lt;br /&gt;
The R2OpenBUGS is an interface to OpenBUGS. In order to use OpenBUGS in R, you need to tell where OpenBUGS resides. According to the help info, as you would get from R command&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;library(R2OpenBUGS)&lt;br /&gt;
 &amp;gt;... ...&lt;br /&gt;
 &amp;gt;help(bugs)&lt;br /&gt;
&lt;br /&gt;
there are two ways of telling '''bugs()''' where OpenBUGS is. First you may specify the path to OpenBUGS in the call to bugs() in your R code. Assume that OpenBUGS executable is installed in /home/you/bin (you need to change it to where you have put the binary OpenBUGS), the call to bugs() would like something like this&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, OpenBUGS.pgm=&amp;quot;/home/you/bin/OpenBUGS&amp;quot;, model.file=&amp;quot;/home/youschools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = NULL)&lt;br /&gt;
&lt;br /&gt;
Note, this line has the paths to the OpenBUGS and the model file specific to the system you are using. To make your R code portable, you may simply set environment variable at the command line or put the following line in '''.bash_profile''' in your home directory&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and also, set the working directory to the current folder (the last argument) as follows&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, model.file=&amp;quot;schools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When working.directory is where the input and output are stored. By default, it is set to NULL and the location is unexpected from one system to another.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15993</id>
		<title>Using OpenBUGS with R</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15993"/>
				<updated>2017-11-02T02:44:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: graham&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GrahamUpdate}}&lt;br /&gt;
=Instructions for usage on new Compute Canada clusters (cedar and graham)=&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
First, load the R module.  You can find out which are available by running:&lt;br /&gt;
&lt;br /&gt;
 module spider r&lt;br /&gt;
&lt;br /&gt;
In this case we choose the latest (as of November, 2017):&lt;br /&gt;
&lt;br /&gt;
 module load r/3.4.0&lt;br /&gt;
&lt;br /&gt;
Then start R:&lt;br /&gt;
&lt;br /&gt;
 R&lt;br /&gt;
&lt;br /&gt;
and inside it run:&lt;br /&gt;
&lt;br /&gt;
 install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instructions for usage on older SHARCNET clusters (eg. orca)=&lt;br /&gt;
&lt;br /&gt;
==Obtaining OpenBUGS==&lt;br /&gt;
&lt;br /&gt;
OpenBUGS is an open source project. It can be downloaded from [http://www.openbugs.net/w/FrontPage here]. Look for the package for Linux, it comes as gzipped Unix tar file, named as '''OpenBUGS-''version''.tar.gz''', e.g. OpenBUGS-3.2.3.tar.gz.&lt;br /&gt;
&lt;br /&gt;
==Installing OpenBUGS for Linux==&lt;br /&gt;
&lt;br /&gt;
First, save it and copy it to your account, say, in folder Downloads. Then unpack it with command&lt;br /&gt;
&lt;br /&gt;
 tar zxvf OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will extract the content from the tar file and put in folder OpenBUGS-3.2.3. Then go into that folder&lt;br /&gt;
&lt;br /&gt;
 cd OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and run configuration first&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
This sets where to install the package. In this case, it will be installed in /home/you/lib/openbugs-3.2.3. You may choose another location you like. By default the installation directory is /usr/local, which is not what you want.&lt;br /&gt;
&lt;br /&gt;
Then compile and install it with commands&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The compilation shouldn't take long to complete. It is likely, however, that the compilation may fail due to missing system files. specifically, gnu/stubs-32.h. If this is the case, you will need to ask the system administrators to install the missing system files.&lt;br /&gt;
&lt;br /&gt;
Upon success, you should have three folders created in /home/your/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
 bin   lib   share&lt;br /&gt;
&lt;br /&gt;
In bin, there are two binaries: '''OpenBUGS''' and '''OpenBUGSCli'''. '''OpenBUGS''' is what you will need when you run R calling bugs.&lt;br /&gt;
&lt;br /&gt;
==Installing R2OpenBUGS for R==&lt;br /&gt;
&lt;br /&gt;
In order to user OpenBUGS in R, you need an R interface to BUGS. The package R2OpenBUGS is recommended. The package can be installed in user space. To install it, first, load R module. You might need to unload intel module on SHARCNET systems to avoid possible conflict&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
&lt;br /&gt;
To see what releases of R are available, use command&lt;br /&gt;
&lt;br /&gt;
 module avail r&lt;br /&gt;
&lt;br /&gt;
If you prefer a specific version, e.g. 3.1, then use command&lt;br /&gt;
&lt;br /&gt;
 module load r/3.1&lt;br /&gt;
&lt;br /&gt;
Otherwise, the command&lt;br /&gt;
&lt;br /&gt;
 module load r&lt;br /&gt;
&lt;br /&gt;
would just load the latest version by default.&lt;br /&gt;
&lt;br /&gt;
Then run R from command line. At the R prompt, use R command '''install.packages()''' to install R2OpenBUGS&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and follow the instructions.&lt;br /&gt;
&lt;br /&gt;
==Using OpenBUGS in R==&lt;br /&gt;
&lt;br /&gt;
The R2OpenBUGS is an interface to OpenBUGS. In order to use OpenBUGS in R, you need to tell where OpenBUGS resides. According to the help info, as you would get from R command&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;library(R2OpenBUGS)&lt;br /&gt;
 &amp;gt;... ...&lt;br /&gt;
 &amp;gt;help(bugs)&lt;br /&gt;
&lt;br /&gt;
there are two ways of telling '''bugs()''' where OpenBUGS is. First you may specify the path to OpenBUGS in the call to bugs() in your R code. Assume that OpenBUGS executable is installed in /home/you/bin (you need to change it to where you have put the binary OpenBUGS), the call to bugs() would like something like this&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, OpenBUGS.pgm=&amp;quot;/home/you/bin/OpenBUGS&amp;quot;, model.file=&amp;quot;/home/youschools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = NULL)&lt;br /&gt;
&lt;br /&gt;
Note, this line has the paths to the OpenBUGS and the model file specific to the system you are using. To make your R code portable, you may simply set environment variable at the command line or put the following line in '''.bash_profile''' in your home directory&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and also, set the working directory to the current folder (the last argument) as follows&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, model.file=&amp;quot;schools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When working.directory is where the input and output are stored. By default, it is set to NULL and the location is unexpected from one system to another.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15967</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15967"/>
				<updated>2017-11-01T04:07:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Geant4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. &lt;br /&gt;
&lt;br /&gt;
=Usage on graham and cedar=&lt;br /&gt;
&lt;br /&gt;
Geant4 is installed as a module on cedar and graham.&lt;br /&gt;
&lt;br /&gt;
To see which versions are available, execute:&lt;br /&gt;
&lt;br /&gt;
 module avail geant4&lt;br /&gt;
&lt;br /&gt;
To then use a particular version, execute for example:&lt;br /&gt;
&lt;br /&gt;
 module load geant4/10.02.p03&lt;br /&gt;
&lt;br /&gt;
After you load the module, you can see where the software is installed by executing:&lt;br /&gt;
&lt;br /&gt;
 echo $EBROOTGEANT4&lt;br /&gt;
&lt;br /&gt;
To see the useful examples included with the version we have loaded, execute:&lt;br /&gt;
&lt;br /&gt;
 ls $EBROOTGEANT4/share/Geant4-10.2.3/examples&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module load geant4/10.02.p03&lt;br /&gt;
 cp -r $EBROOTGEANT4/share/Geant4-10.2.3/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source $EBROOTGEANT4/share/Geant4-10.2.3/geant4make/geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 chmod u+x ./shared/scripts/*.sh&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
This creates the executable ''AnaEx01'' which is in your path.&lt;br /&gt;
&lt;br /&gt;
You run this executable and enter &amp;quot;help&amp;quot; for the available actions.&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired you can submit it as a job. (see [https://docs.computecanada.ca/wiki/Running_jobs Running jobs] page).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Usage on older SHARCNET systems=&lt;br /&gt;
&lt;br /&gt;
SHARCNET provides a build of geant4 on sharcnet CentOS clusters .&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:/opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis] ls &lt;br /&gt;
 AnaEx01  AnaEx02  AnaEx03  B1Con  CMakeLists.txt  History  README  shared&lt;br /&gt;
&lt;br /&gt;
==Interactive==&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load ldwrapper gcc/4.9.3 geant4/10.02.02&lt;br /&gt;
 cp -r /opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
where ...&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] which AnaEx01 &lt;br /&gt;
 ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
To run the binary do:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] AnaEx01&lt;br /&gt;
 Idle&amp;gt; help&lt;br /&gt;
 Command directory path : /&lt;br /&gt;
 Sub-directories : &lt;br /&gt;
 1) /control/   UI control commands.&lt;br /&gt;
 2) /units/   Available units.&lt;br /&gt;
 3) /process/   Process Table control commands.&lt;br /&gt;
 4) /analysis/   ...Title not available...&lt;br /&gt;
 5) /particle/   Particle control commands.&lt;br /&gt;
 6) /geometry/   Geometry control commands.&lt;br /&gt;
 7) /tracking/   TrackingManager and SteppingManager control commands.&lt;br /&gt;
 8) /event/   EventManager control commands.&lt;br /&gt;
 9) /cuts/   Commands for G4VUserPhysicsList.&lt;br /&gt;
 10) /run/   Run control commands.&lt;br /&gt;
 11) /random/   Random number status control commands.&lt;br /&gt;
 12) /material/   Commands for materials&lt;br /&gt;
 13) /N03/   UI commands of this example&lt;br /&gt;
 14) /physics_lists/   commands related to the physics simulation engine.&lt;br /&gt;
 15) /gun/   Particle Gun control commands.&lt;br /&gt;
 16) /heptst/   Controls for the hadronic energy/momentum test&lt;br /&gt;
 17) /physics_engine/   ...Title not available...&lt;br /&gt;
 18) /vis/   Visualization commands.&lt;br /&gt;
 Commands : &lt;br /&gt;
 Type the number ( 0:end, -n:n level back ) :&lt;br /&gt;
&lt;br /&gt;
==Cluster==&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired submit it to the serial queue:&lt;br /&gt;
&lt;br /&gt;
 sqsub -q serial -r 5m -o file.%J ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
==Graphical==&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--checked2015--&amp;gt;&lt;br /&gt;
&amp;lt;!--checked by looking at the directory /opt/sharcnet/geant4 it's still 9.6.1 (on orca)--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15966</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15966"/>
				<updated>2017-11-01T04:04:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Geant4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. &lt;br /&gt;
&lt;br /&gt;
=Usage on graham and cedar=&lt;br /&gt;
&lt;br /&gt;
Geant4 is installed as a module on cedar and graham.&lt;br /&gt;
&lt;br /&gt;
To see which versions are available, execute:&lt;br /&gt;
&lt;br /&gt;
 module avail geant4&lt;br /&gt;
&lt;br /&gt;
To then use a particular version, execute for example:&lt;br /&gt;
&lt;br /&gt;
 module load geant4/10.02.p03&lt;br /&gt;
&lt;br /&gt;
After you load the module, you can see where the software is installed by executing:&lt;br /&gt;
&lt;br /&gt;
 echo $EBROOTGEANT4&lt;br /&gt;
&lt;br /&gt;
To see the useful examples included with the version we have loaded, execute:&lt;br /&gt;
&lt;br /&gt;
 ls $EBROOTGEANT4/share/Geant4-10.2.3/examples&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module load geant4/10.02.p03&lt;br /&gt;
 cp -r $EBROOTGEANT4/share/Geant4-10.2.3/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source $EBROOTGEANT4/share/Geant4-10.2.3/geant4make/geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 chmod u+x ./shared/scripts/*.sh&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
This creates the executable ''AnaEx01'' which is in your path.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Usage on older SHARCNET systems=&lt;br /&gt;
&lt;br /&gt;
SHARCNET provides a build of geant4 on sharcnet CentOS clusters .&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:/opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis] ls &lt;br /&gt;
 AnaEx01  AnaEx02  AnaEx03  B1Con  CMakeLists.txt  History  README  shared&lt;br /&gt;
&lt;br /&gt;
==Interactive==&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load ldwrapper gcc/4.9.3 geant4/10.02.02&lt;br /&gt;
 cp -r /opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
where ...&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] which AnaEx01 &lt;br /&gt;
 ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
To run the binary do:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] AnaEx01&lt;br /&gt;
 Idle&amp;gt; help&lt;br /&gt;
 Command directory path : /&lt;br /&gt;
 Sub-directories : &lt;br /&gt;
 1) /control/   UI control commands.&lt;br /&gt;
 2) /units/   Available units.&lt;br /&gt;
 3) /process/   Process Table control commands.&lt;br /&gt;
 4) /analysis/   ...Title not available...&lt;br /&gt;
 5) /particle/   Particle control commands.&lt;br /&gt;
 6) /geometry/   Geometry control commands.&lt;br /&gt;
 7) /tracking/   TrackingManager and SteppingManager control commands.&lt;br /&gt;
 8) /event/   EventManager control commands.&lt;br /&gt;
 9) /cuts/   Commands for G4VUserPhysicsList.&lt;br /&gt;
 10) /run/   Run control commands.&lt;br /&gt;
 11) /random/   Random number status control commands.&lt;br /&gt;
 12) /material/   Commands for materials&lt;br /&gt;
 13) /N03/   UI commands of this example&lt;br /&gt;
 14) /physics_lists/   commands related to the physics simulation engine.&lt;br /&gt;
 15) /gun/   Particle Gun control commands.&lt;br /&gt;
 16) /heptst/   Controls for the hadronic energy/momentum test&lt;br /&gt;
 17) /physics_engine/   ...Title not available...&lt;br /&gt;
 18) /vis/   Visualization commands.&lt;br /&gt;
 Commands : &lt;br /&gt;
 Type the number ( 0:end, -n:n level back ) :&lt;br /&gt;
&lt;br /&gt;
==Cluster==&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired submit it to the serial queue:&lt;br /&gt;
&lt;br /&gt;
 sqsub -q serial -r 5m -o file.%J ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
==Graphical==&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--checked2015--&amp;gt;&lt;br /&gt;
&amp;lt;!--checked by looking at the directory /opt/sharcnet/geant4 it's still 9.6.1 (on orca)--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15965</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15965"/>
				<updated>2017-11-01T03:28:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Geant4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. &lt;br /&gt;
&lt;br /&gt;
=Usage on graham and cedar=&lt;br /&gt;
&lt;br /&gt;
Geant4 is installed as a module on cedar and graham.&lt;br /&gt;
&lt;br /&gt;
To see which versions are available, execute:&lt;br /&gt;
&lt;br /&gt;
 module avail geant4&lt;br /&gt;
&lt;br /&gt;
To then use a particular version, execute for example:&lt;br /&gt;
&lt;br /&gt;
 module load geant4/10.02.p03&lt;br /&gt;
&lt;br /&gt;
After you load the module, you can see where the software is installed by executing:&lt;br /&gt;
&lt;br /&gt;
 echo $EBROOTGEANT4&lt;br /&gt;
&lt;br /&gt;
To see the useful examples included with the version we have loaded, execute:&lt;br /&gt;
&lt;br /&gt;
 ls $EBROOTGEANT4/share/Geant4-10.2.3/examples&lt;br /&gt;
&lt;br /&gt;
=Usage on older SHARCNET systems=&lt;br /&gt;
&lt;br /&gt;
SHARCNET provides a build of geant4 on sharcnet CentOS clusters .&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:/opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis] ls &lt;br /&gt;
 AnaEx01  AnaEx02  AnaEx03  B1Con  CMakeLists.txt  History  README  shared&lt;br /&gt;
&lt;br /&gt;
==Interactive==&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load ldwrapper gcc/4.9.3 geant4/10.02.02&lt;br /&gt;
 cp -r /opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
where ...&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] which AnaEx01 &lt;br /&gt;
 ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
To run the binary do:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] AnaEx01&lt;br /&gt;
 Idle&amp;gt; help&lt;br /&gt;
 Command directory path : /&lt;br /&gt;
 Sub-directories : &lt;br /&gt;
 1) /control/   UI control commands.&lt;br /&gt;
 2) /units/   Available units.&lt;br /&gt;
 3) /process/   Process Table control commands.&lt;br /&gt;
 4) /analysis/   ...Title not available...&lt;br /&gt;
 5) /particle/   Particle control commands.&lt;br /&gt;
 6) /geometry/   Geometry control commands.&lt;br /&gt;
 7) /tracking/   TrackingManager and SteppingManager control commands.&lt;br /&gt;
 8) /event/   EventManager control commands.&lt;br /&gt;
 9) /cuts/   Commands for G4VUserPhysicsList.&lt;br /&gt;
 10) /run/   Run control commands.&lt;br /&gt;
 11) /random/   Random number status control commands.&lt;br /&gt;
 12) /material/   Commands for materials&lt;br /&gt;
 13) /N03/   UI commands of this example&lt;br /&gt;
 14) /physics_lists/   commands related to the physics simulation engine.&lt;br /&gt;
 15) /gun/   Particle Gun control commands.&lt;br /&gt;
 16) /heptst/   Controls for the hadronic energy/momentum test&lt;br /&gt;
 17) /physics_engine/   ...Title not available...&lt;br /&gt;
 18) /vis/   Visualization commands.&lt;br /&gt;
 Commands : &lt;br /&gt;
 Type the number ( 0:end, -n:n level back ) :&lt;br /&gt;
&lt;br /&gt;
==Cluster==&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired submit it to the serial queue:&lt;br /&gt;
&lt;br /&gt;
 sqsub -q serial -r 5m -o file.%J ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
==Graphical==&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--checked2015--&amp;gt;&lt;br /&gt;
&amp;lt;!--checked by looking at the directory /opt/sharcnet/geant4 it's still 9.6.1 (on orca)--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15964</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15964"/>
				<updated>2017-11-01T03:25:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: update for graham&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GrahamUpdate}}&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Geant4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. &lt;br /&gt;
&lt;br /&gt;
=Usage on graham and cedar=&lt;br /&gt;
&lt;br /&gt;
Geant4 is installed as a module on cedar and graham.&lt;br /&gt;
&lt;br /&gt;
To see which versions are available, execute:&lt;br /&gt;
&lt;br /&gt;
 module avail geant4&lt;br /&gt;
&lt;br /&gt;
To then use a particular version, execute for example:&lt;br /&gt;
&lt;br /&gt;
 module load geant4/10.02.p03&lt;br /&gt;
&lt;br /&gt;
After you load the module, you can see where the software is installed by executing:&lt;br /&gt;
&lt;br /&gt;
 echo $EBROOTGEANT4&lt;br /&gt;
&lt;br /&gt;
To see the useful examples included with the version we have loaded, execute:&lt;br /&gt;
&lt;br /&gt;
 ls $EBROOTGEANT4/share/Geant4-10.2.3/examples&lt;br /&gt;
&lt;br /&gt;
=Usage on older SHARCNET systems=&lt;br /&gt;
&lt;br /&gt;
SHARCNET provides a build of geant4 on sharcnet CentOS clusters .&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:/opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis] ls &lt;br /&gt;
 AnaEx01  AnaEx02  AnaEx03  B1Con  CMakeLists.txt  History  README  shared&lt;br /&gt;
&lt;br /&gt;
==Interactive==&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load ldwrapper gcc/4.9.3 geant4/10.02.02&lt;br /&gt;
 cp -r /opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
where ...&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] which AnaEx01 &lt;br /&gt;
 ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
To run the binary do:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] AnaEx01&lt;br /&gt;
 Idle&amp;gt; help&lt;br /&gt;
 Command directory path : /&lt;br /&gt;
 Sub-directories : &lt;br /&gt;
 1) /control/   UI control commands.&lt;br /&gt;
 2) /units/   Available units.&lt;br /&gt;
 3) /process/   Process Table control commands.&lt;br /&gt;
 4) /analysis/   ...Title not available...&lt;br /&gt;
 5) /particle/   Particle control commands.&lt;br /&gt;
 6) /geometry/   Geometry control commands.&lt;br /&gt;
 7) /tracking/   TrackingManager and SteppingManager control commands.&lt;br /&gt;
 8) /event/   EventManager control commands.&lt;br /&gt;
 9) /cuts/   Commands for G4VUserPhysicsList.&lt;br /&gt;
 10) /run/   Run control commands.&lt;br /&gt;
 11) /random/   Random number status control commands.&lt;br /&gt;
 12) /material/   Commands for materials&lt;br /&gt;
 13) /N03/   UI commands of this example&lt;br /&gt;
 14) /physics_lists/   commands related to the physics simulation engine.&lt;br /&gt;
 15) /gun/   Particle Gun control commands.&lt;br /&gt;
 16) /heptst/   Controls for the hadronic energy/momentum test&lt;br /&gt;
 17) /physics_engine/   ...Title not available...&lt;br /&gt;
 18) /vis/   Visualization commands.&lt;br /&gt;
 Commands : &lt;br /&gt;
 Type the number ( 0:end, -n:n level back ) :&lt;br /&gt;
&lt;br /&gt;
==Cluster==&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired submit it to the serial queue:&lt;br /&gt;
&lt;br /&gt;
 sqsub -q serial -r 5m -o file.%J ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
==Graphical==&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--checked2015--&amp;gt;&lt;br /&gt;
&amp;lt;!--checked by looking at the directory /opt/sharcnet/geant4 it's still 9.6.1 (on orca)--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=ECLIPSE&amp;diff=15943</id>
		<title>ECLIPSE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=ECLIPSE&amp;diff=15943"/>
				<updated>2017-10-31T21:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: information about usage on cedar and graham&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=ECLIPSE&lt;br /&gt;
|package_description=The Eclipse Platform, and Plug-in Development Environment.&lt;br /&gt;
|package_idnumber=146&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Eclipse on new Compute Canada clusters=&lt;br /&gt;
&lt;br /&gt;
Eclipse has been installed on the new Compute Canada clusters cedar and graham as a module.&lt;br /&gt;
&lt;br /&gt;
To use it, connect with a graphical interface enabled (ssh -Y ...) and execute:&lt;br /&gt;
&lt;br /&gt;
 module load eclipse&lt;br /&gt;
 eclipse&lt;br /&gt;
&lt;br /&gt;
The information below refers to Eclipse usage on SHARCNET clusters.  Some of this functionality has not yet been enabled on cedar and graham.  If you find you need this functionality on the new clusters as well, please email help@sharcnet.ca&lt;br /&gt;
&lt;br /&gt;
=Introduction to Eclipse on SHARCNET clusters=&lt;br /&gt;
&lt;br /&gt;
Sharcnet provides a module for the &amp;lt;i&amp;gt;Eclipse for Parallel Application Developers&amp;lt;/i&amp;gt; Release.  Once the module is loaded and the eclipse gui is up and running, users can easily install any of the available add-on packages found in the left hand column of the package comparison [http://www.eclipse.org/downloads/compare.php table] to customize and extend their eclipse environment.  The installation procedure for additional software into eclipse is explained in the general nodes section below.&lt;br /&gt;
&lt;br /&gt;
=Version Selection=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;module load eclipse/4.6.2&lt;br /&gt;
eclipse&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Job Submission=&lt;br /&gt;
&lt;br /&gt;
Eclipse is intended for interactive use outside of the queue therefore this section is not applicable.&lt;br /&gt;
&lt;br /&gt;
=Example Usage=&lt;br /&gt;
&lt;br /&gt;
==Serial Program==&lt;br /&gt;
&lt;br /&gt;
Eclipse provides sample project for getting started such as hello world.  Once the Intel Compilers have been added as described below the following button click seqeuence should allow you to load up Hello World to test compiling with the Intel C++ compiler, where \ simply indicates a line break:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File-&amp;gt;New-&amp;gt;Project-&amp;gt;C/C++-&amp;gt;C/C++ Project-&amp;gt;C++ Managed Build-&amp;gt;Executable-&amp;gt; \&lt;br /&gt;
   Hello World C++ Project-&amp;gt;Intel C++ Compiler-&amp;gt;Prject Name: test1-&amp;gt;Finish&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parallel Program==&lt;br /&gt;
&lt;br /&gt;
To get started see the eclipse [http://help.eclipse.org/mars/nav/59 Parallel Development User Guide].  To find help building openmpi parallel programs click &amp;lt;i&amp;gt;Running Parallel Programs&amp;lt;/i&amp;gt; then scroll down the the &amp;lt;b&amp;gt;PTP supported Target System Configurations&amp;lt;/b&amp;gt; table and click &amp;lt;i&amp;gt;Open MPI-Generic-Interactive&amp;lt;/i&amp;gt;.  More detailed usage instructions to provide user guidance will be provided here asap.&lt;br /&gt;
&lt;br /&gt;
=General Notes=&lt;br /&gt;
&lt;br /&gt;
Before beginning to use Eclipse the following steps should be done since there is limited space under home which otherwise would be used by default. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1) mkdir -p /work/$USER/eclipse/.eclipse&lt;br /&gt;
2) mkdir -p /work/$USER/eclipse/workspace&lt;br /&gt;
3) ln -s /work/$USER/eclipse/.eclipse ~/.eclipse&lt;br /&gt;
4) ln -s /work/$USER/eclipse/workspace ~/workspace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that Step 4) assumes you specify your &amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt; under your home directory, adjust accordingly.&lt;br /&gt;
&lt;br /&gt;
==Interactive Use==&lt;br /&gt;
&lt;br /&gt;
===On VDI Workstation===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0) Install tigervnc client on your desktop&lt;br /&gt;
1) Start tigervnc client application&lt;br /&gt;
2) Connect to vdi-centos6.user.sharcnet.ca&lt;br /&gt;
3) open a terminal window&lt;br /&gt;
4) module load intel/16.0.4 eclipse/4.6.2&lt;br /&gt;
5) eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that tigervnc can be download from [http://tigervnc.org/].  Additional documentation regarding howto use vncviewer maybe found  in section &amp;lt;i&amp;gt;1.2.1 vncviewer (Windows, MacOS, and Fedora)&amp;lt;/i&amp;gt; of the sharcnet [https://www.sharcnet.ca/help/index.php/Remote_Graphical_Connections wiki].&lt;br /&gt;
&lt;br /&gt;
===On Devel Node===&lt;br /&gt;
&lt;br /&gt;
Please note that its not recommended to run graphical application on sharcnet clusters over ssh due to performance issues.  When a program is available on vdi or viz workstations, its best to run it there instead since vnc can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1) ssh -Y orca.sharcnet.ca&lt;br /&gt;
2) ssh -Y orc-dev1&lt;br /&gt;
3) module unload intel mkl&lt;br /&gt;
4) module load intel/16.0.4&lt;br /&gt;
5) module load eclipse/4.6.2 &lt;br /&gt;
6) eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using Eclipse==&lt;br /&gt;
&lt;br /&gt;
===Installing the Integration===&lt;br /&gt;
&lt;br /&gt;
The intel article [https://software.intel.com/en-us/articles/intel-c-compiler-for-linux-using-intel-compilers-with-the-eclipse-ide-pdf&amp;quot; Using Intel® C++ Compiler with the Eclipse IDE on Linux] explains in detail how to configure eclipse to use any of the intel compiler versions installed on linux. The main step which might not be obvious is adding the repository once you click the &amp;lt;i&amp;gt;Add-&amp;gt;Local&amp;lt;/i&amp;gt; buttons, you should specify a repository root directory such as  &amp;lt;i&amp;gt;/opt/sharcnet/intel/16.0.4/ide_support_2016/eclipse/compiler_xe&amp;lt;/i&amp;gt; by clicking File System in the left had menu of the finder window that appears and traversing down the tree.  Once the compiler is added it will be available the next time you run eclipse, as can be confirmed by scrolling through &amp;lt;i&amp;gt;help --&amp;gt; Installed Software&amp;lt;/i&amp;gt; and you should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                          Version           I                                            Provider&lt;br /&gt;
Intel C++ Compiler           16.0.0.201607221   com.intel.compiler.composerxe.feature.group  Intel Corporation&lt;br /&gt;
  C/C++ Developement Tools    9.2.0.2016120613  org.eclipse.cdt.feature.group                Eclipse CDT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also see new fortran entries under PTP Fortran Support. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                       Version           I                                           Provider&lt;br /&gt;
PTP Fortran Support	                   9.1.1.201612062209	org.eclipse.ptp.fortran.feature.group	 Eclipse PTP&lt;br /&gt;
  Fortran Development Tools (Photran)      9.1.1.201612062125	org.eclipse.photran.feature.group	 Eclipse PTP&lt;br /&gt;
  Linux Intel(R) Fortran Compiler Support  9.1.1.201612062125	org.eclipse.photran.intel.feature.group	 Eclipse PTP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its not necessary to install Fortran Development Tools (Photran) since its included in [https://eclipse.org/ptp PTP].&lt;br /&gt;
&lt;br /&gt;
===Using the Integration===&lt;br /&gt;
&lt;br /&gt;
The intel article reminds us to source compilervars.[csh|sh] before starting eclipse so the compiler commands are found.  Its sufficient to load the corresponding intel sharcnet module before starting eclipse as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module unload intel mkl&lt;br /&gt;
module load intel/16.0.4&lt;br /&gt;
module load eclipse/4.6.2 &lt;br /&gt;
eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installing Plugins===&lt;br /&gt;
&lt;br /&gt;
This section shows the basic procedure for installing additional (eclipse provided) packages into eclipse. The installation of Photran (the Fortran IDE plugin for Eclipse) which works with the intel compiler and most other compilers is used as an example. Many other packages can similarly be installed.  Since the eclipse download repository is external to the sharcnet network, package installation must be done on iqaluk or a viz station and not on a devel node. Once the required add-on packages are installed they are available on any other sharcnet system where eclipse might be started.  Note that the packages are installed under your &amp;lt;i&amp;gt;~/.eclipse&amp;lt;/i&amp;gt; directory hence significant disk space consumption could occur depending how many packages are added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1)  Connect to vdi-centos6.user.sharcnet.ca&lt;br /&gt;
2)  module load eclipse/4.6.2&lt;br /&gt;
3)  eclipse (start workbench)&lt;br /&gt;
4)  select the default workspace /home/myusername/workspace then click Ok&lt;br /&gt;
5)  click Help on top pull down menu, then click Install New Software&lt;br /&gt;
6)  from the pulldown select  ...&lt;br /&gt;
    The Eclipse Project Updates - http://download.eclipse.org/eclipse/updates/4.6&lt;br /&gt;
7)  from the &amp;quot;Available Software&amp;quot; menu click something like ...&lt;br /&gt;
    Plugin development tools&lt;br /&gt;
8)  Click finish to commit the installation and wait to finish.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note in step 6 you can see what packages are already installed by clicking &amp;quot;What is already installed?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Querying Installed Packages==&lt;br /&gt;
&lt;br /&gt;
1) Start eclipse&amp;lt;br&amp;gt;&lt;br /&gt;
2) click Help on top pull down menu&amp;lt;br&amp;gt;&lt;br /&gt;
3) click About Eclipse&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Version: Neon.2 Release (4.6.2)&lt;br /&gt;
Build id: 20161208-0600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4) click &amp;lt;i&amp;gt;Installation Details&amp;lt;/i&amp;gt;&lt;br /&gt;
All packages relating to the base installation will be displayed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Eclipse for Parallel Application Developers   64bit-linux&lt;br /&gt;
Tools for C, C++, Fortran, and UPC, including MPI, OpenMP,&lt;br /&gt;
OpenACC, a parallel debugger, and remotely building, running&lt;br /&gt;
and monitoring applications...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Eclipse Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/&lt;br /&gt;
&lt;br /&gt;
o Eclipse Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://help.eclipse.org/&lt;br /&gt;
&lt;br /&gt;
o Eclipse Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.eclipse.org/&lt;br /&gt;
&lt;br /&gt;
o Eclipse Download Area&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/downloads/&lt;br /&gt;
&lt;br /&gt;
o Compare Eclipse Meta Packages&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/downloads/compare.php&lt;br /&gt;
&lt;br /&gt;
o CDT Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/cdt/documentation.php&lt;br /&gt;
&lt;br /&gt;
o Eclipse PTP&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.eclipse.org/ptp/&lt;br /&gt;
&lt;br /&gt;
o Photran - An Integrated Development Environment and Refactoring Tool for Fortran&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/photran/&lt;br /&gt;
&lt;br /&gt;
o Fortran Development User Guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.photran.doc.user%2Fhtml%2Ftoc.html&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15659</id>
		<title>Using OpenBUGS with R</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Using_OpenBUGS_with_R&amp;diff=15659"/>
				<updated>2017-08-31T16:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: {{GrahamUpdate}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GrahamUpdate}}&lt;br /&gt;
==Obtaining OpenBUGS==&lt;br /&gt;
&lt;br /&gt;
OpenBUGS is an open source project. It can be downloaded from [http://www.openbugs.net/w/FrontPage here]. Look for the package for Linux, it comes as gzipped Unix tar file, named as '''OpenBUGS-''version''.tar.gz''', e.g. OpenBUGS-3.2.3.tar.gz.&lt;br /&gt;
&lt;br /&gt;
==Installing OpenBUGS for Linux==&lt;br /&gt;
&lt;br /&gt;
First, save it and copy it to your account, say, in folder Downloads. Then unpack it with command&lt;br /&gt;
&lt;br /&gt;
 tar zxvf OpenBUGS-3.2.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
This will extract the content from the tar file and put in folder OpenBUGS-3.2.3. Then go into that folder&lt;br /&gt;
&lt;br /&gt;
 cd OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and run configuration first&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=$HOME/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
This sets where to install the package. In this case, it will be installed in /home/you/lib/openbugs-3.2.3. You may choose another location you like. By default the installation directory is /usr/local, which is not what you want.&lt;br /&gt;
&lt;br /&gt;
Then compile and install it with commands&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
The compilation shouldn't take long to complete. It is likely, however, that the compilation may fail due to missing system files. specifically, gnu/stubs-32.h. If this is the case, you will need to ask the system administrators to install the missing system files.&lt;br /&gt;
&lt;br /&gt;
Upon success, you should have three folders created in /home/your/lib/openbugs-3.2.3&lt;br /&gt;
&lt;br /&gt;
 bin   lib   share&lt;br /&gt;
&lt;br /&gt;
In bin, there are two binaries: '''OpenBUGS''' and '''OpenBUGSCli'''. '''OpenBUGS''' is what you will need when you run R calling bugs.&lt;br /&gt;
&lt;br /&gt;
==Installing R2OpenBUGS for R==&lt;br /&gt;
&lt;br /&gt;
In order to user OpenBUGS in R, you need an R interface to BUGS. The package R2OpenBUGS is recommended. The package can be installed in user space. To install it, first, load R module. You might need to unload intel module on SHARCNET systems to avoid possible conflict&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
&lt;br /&gt;
To see what releases of R are available, use command&lt;br /&gt;
&lt;br /&gt;
 module avail r&lt;br /&gt;
&lt;br /&gt;
If you prefer a specific version, e.g. 3.1, then use command&lt;br /&gt;
&lt;br /&gt;
 module load r/3.1&lt;br /&gt;
&lt;br /&gt;
Otherwise, the command&lt;br /&gt;
&lt;br /&gt;
 module load r&lt;br /&gt;
&lt;br /&gt;
would just load the latest version by default.&lt;br /&gt;
&lt;br /&gt;
Then run R from command line. At the R prompt, use R command '''install.packages()''' to install R2OpenBUGS&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;install.packages(&amp;quot;R2OpenBUGS&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and follow the instructions.&lt;br /&gt;
&lt;br /&gt;
==Using OpenBUGS in R==&lt;br /&gt;
&lt;br /&gt;
The R2OpenBUGS is an interface to OpenBUGS. In order to use OpenBUGS in R, you need to tell where OpenBUGS resides. According to the help info, as you would get from R command&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;library(R2OpenBUGS)&lt;br /&gt;
 &amp;gt;... ...&lt;br /&gt;
 &amp;gt;help(bugs)&lt;br /&gt;
&lt;br /&gt;
there are two ways of telling '''bugs()''' where OpenBUGS is. First you may specify the path to OpenBUGS in the call to bugs() in your R code. Assume that OpenBUGS executable is installed in /home/you/bin (you need to change it to where you have put the binary OpenBUGS), the call to bugs() would like something like this&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, OpenBUGS.pgm=&amp;quot;/home/you/bin/OpenBUGS&amp;quot;, model.file=&amp;quot;/home/youschools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = NULL)&lt;br /&gt;
&lt;br /&gt;
Note, this line has the paths to the OpenBUGS and the model file specific to the system you are using. To make your R code portable, you may simply set environment variable at the command line or put the following line in '''.bash_profile''' in your home directory&lt;br /&gt;
&lt;br /&gt;
 export OpenBUGS_PATH=$HOME/bin/OpenBUGS&lt;br /&gt;
&lt;br /&gt;
and also, set the working directory to the current folder (the last argument) as follows&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;schools.sim &amp;lt;- bugs(data, inits, parameters, model.file=&amp;quot;schools.txt&amp;quot;, n.chains = 3, n.iter = 1000, working.directory = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When working.directory is where the input and output are stored. By default, it is set to NULL and the location is unexpected from one system to another.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=ECLIPSE&amp;diff=15640</id>
		<title>ECLIPSE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=ECLIPSE&amp;diff=15640"/>
				<updated>2017-08-30T20:00:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: {{GrahamUpdate}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GrahamUpdate}}&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=ECLIPSE&lt;br /&gt;
|package_description=The Eclipse Platform, and Plug-in Development Environment.&lt;br /&gt;
|package_idnumber=146&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Sharcnet provides a module for the &amp;lt;i&amp;gt;Eclipse for Parallel Application Developers&amp;lt;/i&amp;gt; Release.  Once the module is loaded and the eclipse gui is up and running, users can easily install any of the available add-on packages found in the left hand column of the package comparison [http://www.eclipse.org/downloads/compare.php table] to customize and extend their eclipse environment.  The installation procedure for additional software into eclipse is explained in the general nodes section below.&lt;br /&gt;
&lt;br /&gt;
=Version Selection=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;module load eclipse/4.6.2&lt;br /&gt;
eclipse&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Job Submission=&lt;br /&gt;
&lt;br /&gt;
Eclipse is intended for interactive use outside of the queue therefore this section is not applicable.&lt;br /&gt;
&lt;br /&gt;
=Example Usage=&lt;br /&gt;
&lt;br /&gt;
==Serial Program==&lt;br /&gt;
&lt;br /&gt;
Eclipse provides sample project for getting started such as hello world.  Once the Intel Compilers have been added as described below the following button click seqeuence should allow you to load up Hello World to test compiling with the Intel C++ compiler, where \ simply indicates a line break:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File-&amp;gt;New-&amp;gt;Project-&amp;gt;C/C++-&amp;gt;C/C++ Project-&amp;gt;C++ Managed Build-&amp;gt;Executable-&amp;gt; \&lt;br /&gt;
   Hello World C++ Project-&amp;gt;Intel C++ Compiler-&amp;gt;Prject Name: test1-&amp;gt;Finish&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parallel Program==&lt;br /&gt;
&lt;br /&gt;
To get started see the eclipse [http://help.eclipse.org/mars/nav/59 Parallel Development User Guide].  To find help building openmpi parallel programs click &amp;lt;i&amp;gt;Running Parallel Programs&amp;lt;/i&amp;gt; then scroll down the the &amp;lt;b&amp;gt;PTP supported Target System Configurations&amp;lt;/b&amp;gt; table and click &amp;lt;i&amp;gt;Open MPI-Generic-Interactive&amp;lt;/i&amp;gt;.  More detailed usage instructions to provide user guidance will be provided here asap.&lt;br /&gt;
&lt;br /&gt;
=General Notes=&lt;br /&gt;
&lt;br /&gt;
Before beginning to use Eclipse the following steps should be done since there is limited space under home which otherwise would be used by default. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1) mkdir -p /work/$USER/eclipse/.eclipse&lt;br /&gt;
2) mkdir -p /work/$USER/eclipse/workspace&lt;br /&gt;
3) ln -s /work/$USER/eclipse/.eclipse ~/.eclipse&lt;br /&gt;
4) ln -s /work/$USER/eclipse/workspace ~/workspace&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that Step 4) assumes you specify your &amp;lt;i&amp;gt;workspace&amp;lt;/i&amp;gt; under your home directory, adjust accordingly.&lt;br /&gt;
&lt;br /&gt;
==Interactive Use==&lt;br /&gt;
&lt;br /&gt;
===On VDI Workstation===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0) Install tigervnc client on your desktop&lt;br /&gt;
1) Start tigervnc client application&lt;br /&gt;
2) Connect to vdi-centos6.user.sharcnet.ca&lt;br /&gt;
3) open a terminal window&lt;br /&gt;
4) module load intel/16.0.4 eclipse/4.6.2&lt;br /&gt;
5) eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that tigervnc can be download from [http://tigervnc.org/].  Additional documentation regarding howto use vncviewer maybe found  in section &amp;lt;i&amp;gt;1.2.1 vncviewer (Windows, MacOS, and Fedora)&amp;lt;/i&amp;gt; of the sharcnet [https://www.sharcnet.ca/help/index.php/Remote_Graphical_Connections wiki].&lt;br /&gt;
&lt;br /&gt;
===On Devel Node===&lt;br /&gt;
&lt;br /&gt;
Please note that its not recommended to run graphical application on sharcnet clusters over ssh due to performance issues.  When a program is available on vdi or viz workstations, its best to run it there instead since vnc can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1) ssh -Y orca.sharcnet.ca&lt;br /&gt;
2) ssh -Y orc-dev1&lt;br /&gt;
3) module unload intel mkl&lt;br /&gt;
4) module load intel/16.0.4&lt;br /&gt;
5) module load eclipse/4.6.2 &lt;br /&gt;
6) eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using Eclipse==&lt;br /&gt;
&lt;br /&gt;
===Installing the Integration===&lt;br /&gt;
&lt;br /&gt;
The intel article [https://software.intel.com/en-us/articles/intel-c-compiler-for-linux-using-intel-compilers-with-the-eclipse-ide-pdf&amp;quot; Using Intel® C++ Compiler with the Eclipse IDE on Linux] explains in detail how to configure eclipse to use any of the intel compiler versions installed on linux. The main step which might not be obvious is adding the repository once you click the &amp;lt;i&amp;gt;Add-&amp;gt;Local&amp;lt;/i&amp;gt; buttons, you should specify a repository root directory such as  &amp;lt;i&amp;gt;/opt/sharcnet/intel/16.0.4/ide_support_2016/eclipse/compiler_xe&amp;lt;/i&amp;gt; by clicking File System in the left had menu of the finder window that appears and traversing down the tree.  Once the compiler is added it will be available the next time you run eclipse, as can be confirmed by scrolling through &amp;lt;i&amp;gt;help --&amp;gt; Installed Software&amp;lt;/i&amp;gt; and you should see:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                          Version           I                                            Provider&lt;br /&gt;
Intel C++ Compiler           16.0.0.201607221   com.intel.compiler.composerxe.feature.group  Intel Corporation&lt;br /&gt;
  C/C++ Developement Tools    9.2.0.2016120613  org.eclipse.cdt.feature.group                Eclipse CDT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also see new fortran entries under PTP Fortran Support. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                       Version           I                                           Provider&lt;br /&gt;
PTP Fortran Support	                   9.1.1.201612062209	org.eclipse.ptp.fortran.feature.group	 Eclipse PTP&lt;br /&gt;
  Fortran Development Tools (Photran)      9.1.1.201612062125	org.eclipse.photran.feature.group	 Eclipse PTP&lt;br /&gt;
  Linux Intel(R) Fortran Compiler Support  9.1.1.201612062125	org.eclipse.photran.intel.feature.group	 Eclipse PTP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its not necessary to install Fortran Development Tools (Photran) since its included in [https://eclipse.org/ptp PTP].&lt;br /&gt;
&lt;br /&gt;
===Using the Integration===&lt;br /&gt;
&lt;br /&gt;
The intel article reminds us to source compilervars.[csh|sh] before starting eclipse so the compiler commands are found.  Its sufficient to load the corresponding intel sharcnet module before starting eclipse as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module unload intel mkl&lt;br /&gt;
module load intel/16.0.4&lt;br /&gt;
module load eclipse/4.6.2 &lt;br /&gt;
eclipse&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installing Plugins===&lt;br /&gt;
&lt;br /&gt;
This section shows the basic procedure for installing additional (eclipse provided) packages into eclipse. The installation of Photran (the Fortran IDE plugin for Eclipse) which works with the intel compiler and most other compilers is used as an example. Many other packages can similarly be installed.  Since the eclipse download repository is external to the sharcnet network, package installation must be done on iqaluk or a viz station and not on a devel node. Once the required add-on packages are installed they are available on any other sharcnet system where eclipse might be started.  Note that the packages are installed under your &amp;lt;i&amp;gt;~/.eclipse&amp;lt;/i&amp;gt; directory hence significant disk space consumption could occur depending how many packages are added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1)  Connect to vdi-centos6.user.sharcnet.ca&lt;br /&gt;
2)  module load eclipse/4.6.2&lt;br /&gt;
3)  eclipse (start workbench)&lt;br /&gt;
4)  select the default workspace /home/myusername/workspace then click Ok&lt;br /&gt;
5)  click Help on top pull down menu, then click Install New Software&lt;br /&gt;
6)  from the pulldown select  ...&lt;br /&gt;
    The Eclipse Project Updates - http://download.eclipse.org/eclipse/updates/4.6&lt;br /&gt;
7)  from the &amp;quot;Available Software&amp;quot; menu click something like ...&lt;br /&gt;
    Plugin development tools&lt;br /&gt;
8)  Click finish to commit the installation and wait to finish.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note in step 6 you can see what packages are already installed by clicking &amp;quot;What is already installed?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Querying Installed Packages==&lt;br /&gt;
&lt;br /&gt;
1) Start eclipse&amp;lt;br&amp;gt;&lt;br /&gt;
2) click Help on top pull down menu&amp;lt;br&amp;gt;&lt;br /&gt;
3) click About Eclipse&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Version: Neon.2 Release (4.6.2)&lt;br /&gt;
Build id: 20161208-0600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4) click &amp;lt;i&amp;gt;Installation Details&amp;lt;/i&amp;gt;&lt;br /&gt;
All packages relating to the base installation will be displayed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Eclipse for Parallel Application Developers   64bit-linux&lt;br /&gt;
Tools for C, C++, Fortran, and UPC, including MPI, OpenMP,&lt;br /&gt;
OpenACC, a parallel debugger, and remotely building, running&lt;br /&gt;
and monitoring applications...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Eclipse Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/&lt;br /&gt;
&lt;br /&gt;
o Eclipse Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://help.eclipse.org/&lt;br /&gt;
&lt;br /&gt;
o Eclipse Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.eclipse.org/&lt;br /&gt;
&lt;br /&gt;
o Eclipse Download Area&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/downloads/&lt;br /&gt;
&lt;br /&gt;
o Compare Eclipse Meta Packages&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/downloads/compare.php&lt;br /&gt;
&lt;br /&gt;
o CDT Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/cdt/documentation.php&lt;br /&gt;
&lt;br /&gt;
o Eclipse PTP&amp;lt;br&amp;gt;&lt;br /&gt;
http://wiki.eclipse.org/ptp/&lt;br /&gt;
&lt;br /&gt;
o Photran - An Integrated Development Environment and Refactoring Tool for Fortran&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.eclipse.org/photran/&lt;br /&gt;
&lt;br /&gt;
o Fortran Development User Guide&amp;lt;br&amp;gt;&lt;br /&gt;
http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.photran.doc.user%2Fhtml%2Ftoc.html&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15637</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=15637"/>
				<updated>2017-08-30T19:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: {{GrahamUpdate}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GrahamUpdate}}&lt;br /&gt;
{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Provides a build of geant4 on sharcnet CentOS clusters .&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:/opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis] ls &lt;br /&gt;
 AnaEx01  AnaEx02  AnaEx03  B1Con  CMakeLists.txt  History  README  shared&lt;br /&gt;
&lt;br /&gt;
==Interactive==&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load ldwrapper gcc/4.9.3 geant4/10.02.02&lt;br /&gt;
 cp -r /opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
where ...&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] which AnaEx01 &lt;br /&gt;
 ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
To run the binary do:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] AnaEx01&lt;br /&gt;
 Idle&amp;gt; help&lt;br /&gt;
 Command directory path : /&lt;br /&gt;
 Sub-directories : &lt;br /&gt;
 1) /control/   UI control commands.&lt;br /&gt;
 2) /units/   Available units.&lt;br /&gt;
 3) /process/   Process Table control commands.&lt;br /&gt;
 4) /analysis/   ...Title not available...&lt;br /&gt;
 5) /particle/   Particle control commands.&lt;br /&gt;
 6) /geometry/   Geometry control commands.&lt;br /&gt;
 7) /tracking/   TrackingManager and SteppingManager control commands.&lt;br /&gt;
 8) /event/   EventManager control commands.&lt;br /&gt;
 9) /cuts/   Commands for G4VUserPhysicsList.&lt;br /&gt;
 10) /run/   Run control commands.&lt;br /&gt;
 11) /random/   Random number status control commands.&lt;br /&gt;
 12) /material/   Commands for materials&lt;br /&gt;
 13) /N03/   UI commands of this example&lt;br /&gt;
 14) /physics_lists/   commands related to the physics simulation engine.&lt;br /&gt;
 15) /gun/   Particle Gun control commands.&lt;br /&gt;
 16) /heptst/   Controls for the hadronic energy/momentum test&lt;br /&gt;
 17) /physics_engine/   ...Title not available...&lt;br /&gt;
 18) /vis/   Visualization commands.&lt;br /&gt;
 Commands : &lt;br /&gt;
 Type the number ( 0:end, -n:n level back ) :&lt;br /&gt;
&lt;br /&gt;
==Cluster==&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired submit it to the serial queue:&lt;br /&gt;
&lt;br /&gt;
 sqsub -q serial -r 5m -o file.%J ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
==Graphical==&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--checked2015--&amp;gt;&lt;br /&gt;
&amp;lt;!--checked by looking at the directory /opt/sharcnet/geant4 it's still 9.6.1 (on orca)--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=14519</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=14519"/>
				<updated>2016-11-21T22:23:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: add global work check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Checking global work location ===&lt;br /&gt;
 which-global-work&lt;br /&gt;
 USER=ppomorsk which-global-work&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=14303</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=14303"/>
				<updated>2016-09-09T19:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Interactive */ add directory creation command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
Provides a build of geant4 on sharcnet CentOS clusters .&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:/opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis] ls &lt;br /&gt;
 AnaEx01  AnaEx02  AnaEx03  B1Con  CMakeLists.txt  History  README  shared&lt;br /&gt;
&lt;br /&gt;
==Interactive==&lt;br /&gt;
&lt;br /&gt;
Consider the AnaEx01 example as follows:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/samples/geant4/test-100202&lt;br /&gt;
 cd ~/samples/geant4/test-100202&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load ldwrapper gcc/4.9.3 geant4/10.02.02&lt;br /&gt;
 cp -r /opt/sharcnet/geant4/10.02.02/share/Geant4-10.2.2/examples/extended/analysis/AnaEx01 .&lt;br /&gt;
 source geant4make.sh&lt;br /&gt;
 cd AnaEx01&lt;br /&gt;
 gmake clean_setup&lt;br /&gt;
 gmake setup&lt;br /&gt;
 gmake&lt;br /&gt;
&lt;br /&gt;
where ...&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] which AnaEx01 &lt;br /&gt;
 ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
To run the binary do:&lt;br /&gt;
&lt;br /&gt;
 [roberpj@vdi-centos6:~/samples/geant4/test-100202/AnaEx01] AnaEx01&lt;br /&gt;
 Idle&amp;gt; help&lt;br /&gt;
 Command directory path : /&lt;br /&gt;
 Sub-directories : &lt;br /&gt;
 1) /control/   UI control commands.&lt;br /&gt;
 2) /units/   Available units.&lt;br /&gt;
 3) /process/   Process Table control commands.&lt;br /&gt;
 4) /analysis/   ...Title not available...&lt;br /&gt;
 5) /particle/   Particle control commands.&lt;br /&gt;
 6) /geometry/   Geometry control commands.&lt;br /&gt;
 7) /tracking/   TrackingManager and SteppingManager control commands.&lt;br /&gt;
 8) /event/   EventManager control commands.&lt;br /&gt;
 9) /cuts/   Commands for G4VUserPhysicsList.&lt;br /&gt;
 10) /run/   Run control commands.&lt;br /&gt;
 11) /random/   Random number status control commands.&lt;br /&gt;
 12) /material/   Commands for materials&lt;br /&gt;
 13) /N03/   UI commands of this example&lt;br /&gt;
 14) /physics_lists/   commands related to the physics simulation engine.&lt;br /&gt;
 15) /gun/   Particle Gun control commands.&lt;br /&gt;
 16) /heptst/   Controls for the hadronic energy/momentum test&lt;br /&gt;
 17) /physics_engine/   ...Title not available...&lt;br /&gt;
 18) /vis/   Visualization commands.&lt;br /&gt;
 Commands : &lt;br /&gt;
 Type the number ( 0:end, -n:n level back ) :&lt;br /&gt;
&lt;br /&gt;
==Cluster==&lt;br /&gt;
&lt;br /&gt;
Once the binary runs interactively as desired submit it to the serial queue:&lt;br /&gt;
&lt;br /&gt;
 sqsub -q serial -r 5m -o file.%J ~/geant4_workdir/bin/Linux-g++/AnaEx01&lt;br /&gt;
&lt;br /&gt;
==Graphical==&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
&lt;br /&gt;
None at this time.&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--checked2015--&amp;gt;&lt;br /&gt;
&amp;lt;!--checked by looking at the directory /opt/sharcnet/geant4 it's still 9.6.1 (on orca)--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=MKL&amp;diff=14013</id>
		<title>MKL</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=MKL&amp;diff=14013"/>
				<updated>2016-07-25T19:00:56Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Version Selection */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=MKL&lt;br /&gt;
|package_description=Intel Math Kernel Library&lt;br /&gt;
|package_idnumber=89&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Introduction===&lt;br /&gt;
MKL (Intel's Math Kernel Library) is a computing math library of highly optimized, extensively threaded&lt;br /&gt;
routines for applications that require maximum performance. Intel MKL provides comprehensive functionality&lt;br /&gt;
support in these major areas of computation: BLAS (level 1, 2, and 3), LAPACK linear algebra routines,&lt;br /&gt;
ScaLAPACK,  BLACS,  PBLAS, FFT.  &lt;br /&gt;
&lt;br /&gt;
===Version Selection===&lt;br /&gt;
&lt;br /&gt;
Presently the version of MKL 10.3.9 is the default and its module  (mkl/10.3.9) is loaded automatically when you login.  Version 11.1.4 is also available (mkl/11.1.4)&lt;br /&gt;
&lt;br /&gt;
Later versions of MKL are bundled with the Intel compiler. You can still load them separately (for use with different compiler) by loading modules: intel/mkl/15.0.3, intel/mkl/15.0.6, intel/mkl/16.0.3.&lt;br /&gt;
&lt;br /&gt;
More details about module usage can be found here:&lt;br /&gt;
https://www.sharcnet.ca/help/index.php/Configuring_your_software_environment_with_Modules&lt;br /&gt;
&lt;br /&gt;
===Job Submission ===&lt;br /&gt;
Jobs requiring MKL should have a flag in the compiling command indicating the required libraries.&lt;br /&gt;
See the next section which illustrates this procedure.&lt;br /&gt;
&lt;br /&gt;
===Examples of Job Compilation===&lt;br /&gt;
We are assuming that the following modules are currently loaded:  mkl/10.3.9  intel/12.1.3&lt;br /&gt;
&lt;br /&gt;
==== Fortran DGEMM example====&lt;br /&gt;
Use following command to compile file test_dgemm.f90:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 $FC test_dgemm.f90 -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lpthread -lm -openmp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
 ! file name = test_dgemm.f90&lt;br /&gt;
 &lt;br /&gt;
       program mainp1&lt;br /&gt;
       implicit none&lt;br /&gt;
       integer, parameter :: HEIGHT=4&lt;br /&gt;
       integer, parameter :: WIDTH=3&lt;br /&gt;
       integer, parameter :: K=1&lt;br /&gt;
       integer            :: i, j&lt;br /&gt;
       double precision   :: ColumnVector(HEIGHT,K)&lt;br /&gt;
       double precision   :: RowVector(K,WIDTH)&lt;br /&gt;
       double precision   :: Result(HEIGHT,WIDTH)&lt;br /&gt;
       double precision   :: ALPHA, BETA&lt;br /&gt;
       character*1        :: NoTrans&lt;br /&gt;
 &lt;br /&gt;
       ALPHA = 1.0e0&lt;br /&gt;
       BETA  = 0.0e0&lt;br /&gt;
 &lt;br /&gt;
       do i=1,HEIGHT&lt;br /&gt;
         ColumnVector(i,K) = i&lt;br /&gt;
       enddo&lt;br /&gt;
 &lt;br /&gt;
       do j=1,WIDTH&lt;br /&gt;
         RowVector(K,j) = j&lt;br /&gt;
       enddo&lt;br /&gt;
  &lt;br /&gt;
       call PrintMatrix(ColumnVector, HEIGHT,K)&lt;br /&gt;
       call PrintMatrix(RowVector, K, WIDTH)&lt;br /&gt;
  &lt;br /&gt;
  !    To do the calculation, we will use the BLAS function dgemm. &lt;br /&gt;
  !    This function calculates:  C = ALPHA*A*B + BETA*C &lt;br /&gt;
   &lt;br /&gt;
       NoTrans  =  'N'&lt;br /&gt;
  &lt;br /&gt;
       call dgemm(NoTrans,NoTrans,HEIGHT,WIDTH,1,ALPHA,        &amp;amp;&lt;br /&gt;
      &amp;amp;     ColumnVector,HEIGHT,RowVector,1,BETA,Result,HEIGHT)&lt;br /&gt;
  &lt;br /&gt;
       call PrintMatrix(Result, HEIGHT, WIDTH)&lt;br /&gt;
       stop&lt;br /&gt;
       end&lt;br /&gt;
  &lt;br /&gt;
        subroutine PrintMatrix(pMatrix,nRows,nCols)&lt;br /&gt;
        implicit none&lt;br /&gt;
        integer            :: i, j, nRows, nCols&lt;br /&gt;
        double precision   :: pMatrix(nRows,nCols)&lt;br /&gt;
  &lt;br /&gt;
        do i=1,nRows&lt;br /&gt;
          do j=1,nCols&lt;br /&gt;
            print *,i,j,pMatrix(i,j)&lt;br /&gt;
          enddo&lt;br /&gt;
        enddo&lt;br /&gt;
  &lt;br /&gt;
        print *,&amp;quot; &amp;quot;&lt;br /&gt;
        return&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fortran ZDOTC  example====&lt;br /&gt;
Use following command to compile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 $FC fortran_zdotc.f90 -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
 ! file name = fortran_zdotc.f90&lt;br /&gt;
 &lt;br /&gt;
       program fortran_zdotc&lt;br /&gt;
       implicit none&lt;br /&gt;
 &lt;br /&gt;
       integer, parameter :: NN=5&lt;br /&gt;
       integer :: n, inca, incb&lt;br /&gt;
       integer :: i&lt;br /&gt;
 &lt;br /&gt;
       DOUBLE COMPLEX :: ZX(0:NN-1),ZY(0:NN-1),ZDPXY,ZDPYX,ZDOTC&lt;br /&gt;
       REAL*8 :: Di, Dn&lt;br /&gt;
 &lt;br /&gt;
       inca = 1&lt;br /&gt;
       incb = 1&lt;br /&gt;
 &lt;br /&gt;
       n  = NN&lt;br /&gt;
       Dn = DBLE(n)&lt;br /&gt;
 &lt;br /&gt;
       print *,&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
       DO i=0,n-1&lt;br /&gt;
         Di = i&lt;br /&gt;
         ZX(i) = CMPLX(Di,2.0D0*Di)&lt;br /&gt;
         ZY(i) = CMPLX(Dn-Di,2.0D0*Di)&lt;br /&gt;
         write(6,1001) ZX(i),ZY(i)&lt;br /&gt;
  1001   format(&amp;quot;(&amp;quot;,f6.2,&amp;quot;,&amp;quot;,f6.2,&amp;quot;)    (&amp;quot;,f6.2,&amp;quot;,&amp;quot;,f6.2,&amp;quot;)&amp;quot;)&lt;br /&gt;
       END DO&lt;br /&gt;
 &lt;br /&gt;
       ZDPXY = ZDOTC(n,ZX,inca,ZY,incb)&lt;br /&gt;
       ZDPYX = ZDOTC(n,ZY,incb,ZX,inca)&lt;br /&gt;
 &lt;br /&gt;
  1002   format(&amp;quot;(&amp;quot;,f6.2,&amp;quot;,&amp;quot;,f6.2,&amp;quot;)&amp;quot;)&lt;br /&gt;
       print *,&amp;quot;&amp;quot;&lt;br /&gt;
       print *,&amp;quot;&amp;lt;ZX,ZY&amp;gt;&amp;quot;&lt;br /&gt;
       write(6,1002) ZDPXY&lt;br /&gt;
 &lt;br /&gt;
       print *,&amp;quot;&amp;quot;&lt;br /&gt;
       print *,&amp;quot;&amp;lt;ZY,ZX&amp;gt;&amp;quot;&lt;br /&gt;
       write(6,1002) ZDPYX&lt;br /&gt;
       print *,&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
       print *,&amp;quot;Job completed successfully&amp;quot;&lt;br /&gt;
       print *,&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
       end program fortran_zdotc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== C ZDOTC  example====&lt;br /&gt;
Use following command to compile: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  $CC main_zdotc.c -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 /* file name = main_zdotc.c */&lt;br /&gt;
  &lt;br /&gt;
  /* The following example illustrates a call from a C program to the &lt;br /&gt;
   * complex BLAS Level 1 function zdotc(). This function computes &lt;br /&gt;
   * the dot product of two double-precision complex vectors.        &lt;br /&gt;
  &lt;br /&gt;
     DOT_PRODUCT = &amp;lt;ZX,ZY&amp;gt; = SUM[i=0,i=n-1] { DCONJG(ZX(I)) * ZY(I) }&lt;br /&gt;
                                    ------------- * ----&lt;br /&gt;
     Note that &amp;lt;ZX,ZY&amp;gt; = DCONJG(&amp;lt;ZY,ZX&amp;gt;)&lt;br /&gt;
    &lt;br /&gt;
     See: http://www2.math.umd.edu/~hking/Hermitian.pdf&lt;br /&gt;
  &lt;br /&gt;
   * In this example, the complex dot product is returned in the structure c. &lt;br /&gt;
   */&lt;br /&gt;
  &lt;br /&gt;
  #include &amp;quot;mkl.h&amp;quot;&lt;br /&gt;
  #define N 5 &lt;br /&gt;
  &lt;br /&gt;
  void zdotc();&lt;br /&gt;
  &lt;br /&gt;
  int main() {&lt;br /&gt;
    int n, inca = 1, incb = 1, i;&lt;br /&gt;
  &lt;br /&gt;
    int DEBUG=1;&lt;br /&gt;
  &lt;br /&gt;
  /*  typedef struct {...} MKL_Complex16;   defined in &amp;quot;mkl.h&amp;quot;    */&lt;br /&gt;
  &lt;br /&gt;
    MKL_Complex16 a[N], b[N], c, d;&lt;br /&gt;
    n = N;&lt;br /&gt;
  &lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
    for ( i = 0; i &amp;lt; n; i++ ){&lt;br /&gt;
      a[i].real = (double)i;&lt;br /&gt;
      a[i].imag = (double)i * 2.0;&lt;br /&gt;
  &lt;br /&gt;
      b[i].real = (double)(n - i);&lt;br /&gt;
      b[i].imag = (double)i * 3.0;&lt;br /&gt;
  &lt;br /&gt;
      printf(&amp;quot; ( %6.2f, %6.2f) ( %6.2f, %6.2f) \n&amp;quot;,a[i].real,a[i].imag,b[i].real,b[i].imag);&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    zdotc( &amp;amp;c, &amp;amp;n, a, &amp;amp;inca, b, &amp;amp;incb );&lt;br /&gt;
    zdotc( &amp;amp;d, &amp;amp;n, b, &amp;amp;incb, a, &amp;amp;inca ); &lt;br /&gt;
  &lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;The complex dot product a|b is: ( %6.2f, %6.2f) \n&amp;quot;, c.real, c.imag );&lt;br /&gt;
    printf(&amp;quot;The complex dot product b|a is: ( %6.2f, %6.2f) \n&amp;quot;, d.real, d.imag );&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Job completed successfully\n&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;U&amp;gt;COMPILING WITH MKL - USING LEGACY COMPILE SCRIPT&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the remaining centos5 clusters (see https://www.sharcnet.ca/my/software/show/129) the compile script can be used for codes needing to link with the MKL blas and lapack libraries (where the program extension &amp;lt;b&amp;gt;xyz&amp;lt;/b&amp;gt; can be any of c/cc, cxx/CC/c++ or f77/f90/f95) as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;compile program.xyz -llapack&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To demonstrate this approach, consider the following example where the result from a.out can be compared with the expect vendor provided solution:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh kraken.sharcnet.ca&lt;br /&gt;
ln -s /opt/sharcnet/acml/4.3.0/ifort-64bit/ifort64/examples/dgetrf_example.f&lt;br /&gt;
compile dgetrf_example.f -llapack&lt;br /&gt;
./a.out&lt;br /&gt;
cat /opt/sharcnet/acml/4.3.0/ifort-64bit/ifort64/examples/dgetrf_example.expected &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General Notes===&lt;br /&gt;
&lt;br /&gt;
====COMPILING WITH MKL - USING ONLINE LINK ADVISOR====&lt;br /&gt;
&lt;br /&gt;
More generally (on any SHARCNET cluster) the &amp;lt;i&amp;gt;Intel Math Kernel Library Link Line Advisor&amp;lt;/i&amp;gt; http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/ can be used to generate linker options for more complex linking situations with MKL.  For instance, to determine the link arguments for the MKL version 10.3, Linux Operating System, Intel Compiler, Intel (R) 64 architecture, Static Linking, 32 bit Integers, sequential version of MKL, ScaLAPACK library, and OpenMPI, the MKL Link Line Advisor would return the following linking recomendation (the syntax below would go into your [[Make utility and makefiles|Makefile]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_sequential.a -Wl,--end-group $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a -lpthread -lm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the following recommendation for locating the include files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 -I$(MKLROOT)/include&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The $(MKLROOT) will already be set for you by the MKL module which is currently loaded.  The above case is the one applicable on most SHARCNET clusters.&lt;br /&gt;
&lt;br /&gt;
====Using The ILP64 Vs LP64 Variants Of MKL====&lt;br /&gt;
&lt;br /&gt;
You should use Intel MKL ilp64 in following cases.&amp;lt;br&amp;gt;&lt;br /&gt;
1. If you are using huge data arrays (indexing exceeds 2^32-1)&amp;lt;br&amp;gt;&lt;br /&gt;
2. If you enable FORTRAN code with the /4I8 compiler option&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ilp64 version of the MKL libraries defines integers as 64 bit. This implies codes should be compiled with -i8 OR internally be modfied to use the integer*8 type.  Otherwise the standard lp64 version of MKL should be used which assumes integers are standard 32 bit.&lt;br /&gt;
&lt;br /&gt;
====Support for Third-Party Interfaces====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;o GMP Functions&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The Intel MKL implementation of GMP arithmetic functions includes arbitrary precision arithmetic operations on integer numbers. The interfaces of such functions fully match the GNU Multiple Precision (GMP) Arithmetic Library. For specifications of these functions, please see this &amp;lt;a href='http://www.intel.com/software/products/mkl/docs/gnump/WebHelp/'&amp;gt;link&amp;lt;/a&amp;gt;.  If you currently use the GMP  library, you need to modify INCLUDE statements in your programs to mkl_gmp.h.&lt;br /&gt;
&lt;br /&gt;
==== FFTW Interface Support====&lt;br /&gt;
Intel MKL provides interface wrappers for the 2.x and 3.x FFTW (www.fftw.org) superstructure are located in the same directory on all clusters.  Using hound and version 11.0.083 of the intel compiler as an example, the wrappers and corresponding fftw wrapper header files are located in the following locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd50:/opt/sharcnet/intel/11.0.083/ifc/mkl/interfaces] ls&lt;br /&gt;
blas95  fftw2xc  fftw2x_cdft  fftw2xf  fftw3xc  fftw3xf  lapack95&lt;br /&gt;
&lt;br /&gt;
[roberpj@hnd50:/opt/sharcnet/intel/11.0.083/ifc/mkl/include/fftw] ls&lt;br /&gt;
fftw3.f  fftw_f77.i  fftw_mpi.h      rfftw.h      rfftw_threads.h&lt;br /&gt;
fftw3.h  fftw.h      fftw_threads.h  rfftw_mpi.h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wrappers can be used for calling the Intel ~&amp;lt;i&amp;gt;equivilent&amp;lt;/i&amp;gt;~ MKL Fourier transform functions instead of FFTW for programs that currently use FFTW without changing the program source code. Referring to the online document &amp;lt;a href='http://www.intel.com/software/products/mkl/docs/fftw_mkl_user_notes_2.htm'&amp;gt;FFTW to Intel® Math Kernel Library Wrappers Technical User Notes&amp;lt;/a&amp;gt; its mentions that &amp;quot;FFTW2MKL wrappers are delivered as the source code that must be compiled by the user to build the wrapper library.&amp;quot;  By popular demand these wrapper have been precompiled for immediate use and located in two directories for each intel module (at present 11.0.083 and 11.1.069) as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[roberpj@hnd50:/opt/sharcnet/intel/11.0.083/mkl/lib/em64t/interfaces] tree&lt;br /&gt;
.&lt;br /&gt;
|-- ilp64&lt;br /&gt;
|   |-- libfftw2xc_intel.a&lt;br /&gt;
|   |-- libfftw2xf_intel.a&lt;br /&gt;
|   |-- libfftw3xc_intel.a&lt;br /&gt;
|   |-- libfftw3xf_intel.a&lt;br /&gt;
|   |-- libmkl_blas95.a&lt;br /&gt;
|   |-- libmkl_lapack95.a&lt;br /&gt;
|   |-- mkl77_lapack.mod&lt;br /&gt;
|   |-- mkl77_lapack1.mod&lt;br /&gt;
|   |-- mkl95_blas.mod&lt;br /&gt;
|   |-- mkl95_lapack.mod&lt;br /&gt;
|   `-- mkl95_precision.mod&lt;br /&gt;
`-- lp64&lt;br /&gt;
    |-- libfftw2xc_intel.a&lt;br /&gt;
    |-- libfftw2xf_intel.a&lt;br /&gt;
    |-- libfftw3xc_intel.a&lt;br /&gt;
    |-- libfftw3xf_intel.a&lt;br /&gt;
    |-- libmkl_blas95.a&lt;br /&gt;
    |-- libmkl_lapack95.a&lt;br /&gt;
    |-- mkl77_lapack.mod&lt;br /&gt;
    |-- mkl77_lapack1.mod&lt;br /&gt;
    |-- mkl95_blas.mod&lt;br /&gt;
    |-- mkl95_lapack.mod&lt;br /&gt;
    `-- mkl95_precision.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Introduction to Using the MKL FFT====&lt;br /&gt;
&lt;br /&gt;
Intel markets two implementations of the FFT.  The first being from &amp;lt;a href='http://software.intel.com/en-us/intel-mkl/'&amp;gt;MKL&amp;lt;/a&amp;gt; and the other from &amp;lt;a href='http://software.intel.com/en-us/intel-ipp/'&amp;gt;IPP&amp;lt;/a&amp;gt; whose differences are described &amp;lt;a href='http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/'&amp;gt;here&amp;lt;/a&amp;gt;. Only the MKL version is installed on SHARCNET.&lt;br /&gt;
&lt;br /&gt;
The main FFT Computation Functions provided with MKL are DftiComputeForward and DftiComputeForward which compute the forward and backward FFT respectively.  These functions along with Descriptor Manipulation Functions, Descriptor Configuration Functions and Status Checking Functions are provided in the &amp;lt;a href='http://www.intel.com/software/products/mkl/docs/webhelp/fft/fft_DFTF.html'&amp;gt;Table “FFT Functions in Intel MKL”&amp;lt;/a&amp;gt;.  Intel describes howto use these functions in their &amp;lt;a href='http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appC_FFT.html'&amp;gt;Fourier Transform Functions Code Examples&amp;lt;/a&amp;gt; document which also covers multi-threading aspects.&lt;br /&gt;
&lt;br /&gt;
The simplest way to explain howto MKL FFT is by compiling and running a example problem of which there are several located under &amp;lt;i&amp;gt;/opt/sharcnet/intel/11.0.083/ifc/mkl/examples&amp;lt;/i&amp;gt; where the fortran samples are contained in the &amp;lt;i&amp;gt;dftf&amp;lt;/i&amp;gt; sub-directory while the c program samples are contained in the &amp;lt;i&amp;gt;dftc&amp;lt;/i&amp;gt; sub-directory.  The problem demonstrated here is from the source &amp;lt;i&amp;gt;complex_2d_double_ex1.f90&amp;lt;/i&amp;gt; which provides a MKL DFTI interface example program (Fortran-interface) to demonstrate Forward-Backward 2D complex transform for double precision data inplace.  Steps to run this program are as follows:&lt;br /&gt;
&lt;br /&gt;
1) Copy the example directory to a test directory in your account with:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /opt/sharcnet/intel/11.0.083/ifc/mkl/examples/dftf  /scratch/myusername/dftfdemo&lt;br /&gt;
cd /scratch/myusername/dftfdemo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Next compile the example program. In this case the machine used is Silky ie) ia64 based.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make lib64 function=complex_2d_double_ex1 compiler=intel interface=ia64 [threading=parallel 2&amp;gt;&amp;amp;1 | tee myMake.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) The built output appears as follows, where you will note the first step is to compile &amp;lt;b&amp;gt;mkl_dfti.f90&amp;lt;/b&amp;gt; into a module which is then used in the program on line 42 where the statement &amp;lt;i&amp;gt;Use MKL_DFTI&amp;lt;/i&amp;gt; can be seen vizzz:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make lib64 function=complex_2d_double_ex1 compiler=intel interface=ia64 [threading=parallel 2&amp;gt;&amp;amp;1 | tee myMake.out&lt;br /&gt;
rm -fr *.o *.mod&lt;br /&gt;
make mkl_dfti.o  dfti_example_support.o  dfti_example_status_print.o  complex_2d_double_ex1.res  _IA=64 EXT=a RES_EXT=lib&lt;br /&gt;
make[1]: Entering directory `/home/roberpj/samples/fft-intel/fft/dftf'&lt;br /&gt;
mkdir -p ./_results/intel_ia64_parallel_64_lib&lt;br /&gt;
ifort   -w -c /opt/sharcnet/intel/11.0.083/ifc/mkl/include/mkl_dfti.f90 -o mkl_dfti.o&lt;br /&gt;
mkdir -p ./_results/intel_ia64_parallel_64_lib&lt;br /&gt;
ifort   -w -c source/dfti_example_support.f90 -o dfti_example_support.o&lt;br /&gt;
mkdir -p ./_results/intel_ia64_parallel_64_lib&lt;br /&gt;
ifort   -w -c source/dfti_example_status_print.f90 -o dfti_example_status_print.o&lt;br /&gt;
mkdir -p ./_results/intel_ia64_parallel_64_lib&lt;br /&gt;
ifort   -w mkl_dfti.o  dfti_example_support.o  dfti_example_status_print.o  source/complex_2d_double_ex1.f90 -L&amp;quot;/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64&amp;quot;&lt;br /&gt;
&amp;quot;/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64&amp;quot;/libmkl_intel_lp64.a -Wl,--start-group &amp;quot;/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64&amp;quot;/libmkl_intel_thread.a&lt;br /&gt;
&amp;quot;/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64&amp;quot;/libmkl_core.a -Wl,--end-group -L&amp;quot;/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64&amp;quot; -liomp5 -lpthread -o&lt;br /&gt;
_results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.out&lt;br /&gt;
export&lt;br /&gt;
LD_LIBRARY_PATH=&amp;quot;/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64&amp;quot;:/opt/sharcnet/lsf/6.2/linux2.6-glibc2.4-ia64/lib:/opt/sharcnet/lsf/6.2/linux2.6-glibc2.4-ia64/lib:/opt/sharcnet/intel/11$&lt;br /&gt;
_results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.out &amp;lt;data/complex_2d_double_ex1.d &amp;gt;_results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.res&lt;br /&gt;
make[1]: Leaving directory `/home/roberpj/samples/fft-intel/fft/dftf'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Since the program gets run automatically by the makefile, the output data can be examined by running more (or less) on the results file called &amp;lt;i&amp;gt;complex_2d_double_ex1.res&amp;lt;/i&amp;gt; which gets created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat _results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.res&lt;br /&gt;
 COMPLEX_2D_DOUBLE_EX1&lt;br /&gt;
 Forward-Backward 2D complex transform for double precision data&lt;br /&gt;
 &lt;br /&gt;
 Configuration parameters:&lt;br /&gt;
 &lt;br /&gt;
 DFTI_FORWARD_DOMAIN       = DFTI_COMPLEX&lt;br /&gt;
 DFTI_PRECISION            = DFTI_DOUBLE &lt;br /&gt;
 DFTI_DIMENSION            =   2&lt;br /&gt;
 DFTI_LENGTHS              = {   5,   3}&lt;br /&gt;
 DFTI_PLACEMENT            = DFTI_INPLACE&lt;br /&gt;
 DFTI_INPUT_STRIDES        = {   0,   1,  15}&lt;br /&gt;
 DFTI_FORWARD_SCALE        = 1.0 &lt;br /&gt;
 DFTI_BACKWARD_SCALE       = 1.0/real(m*n)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 INPUT vector X (2D columns)&lt;br /&gt;
   (   0.729,   0.486)   (  -0.865,  -0.577)   (  -0.278,  -0.186)&lt;br /&gt;
   (   0.787,   0.525)   (   0.839,   0.559)   (  -0.586,  -0.391)&lt;br /&gt;
   (   0.122,   0.081)   (  -0.741,  -0.494)   (  -0.794,  -0.529)&lt;br /&gt;
   (  -0.655,  -0.437)   (   0.580,   0.387)   (  -0.866,  -0.577)&lt;br /&gt;
   (  -0.830,  -0.554)   (  -0.371,  -0.247)   (  -0.791,  -0.527)&lt;br /&gt;
 &lt;br /&gt;
 Compute DftiComputeForward&lt;br /&gt;
 &lt;br /&gt;
 Forward OUTPUT vector X (2D columns)&lt;br /&gt;
   (  -3.720,  -2.480)   (   3.681,  -0.995)   (   0.497,   3.780)&lt;br /&gt;
   (   2.932,  -1.810)   (   1.422,   0.044)   (   3.078,  -1.928)&lt;br /&gt;
   (   1.115,  -2.479)   (  -2.040,   1.814)   (   3.144,   1.228)&lt;br /&gt;
   (  -1.859,   1.982)   (   2.343,   2.430)   (   0.890,  -2.581)&lt;br /&gt;
   (  -0.543,   3.403)   (  -0.596,   3.583)   (   0.588,   1.295)&lt;br /&gt;
 &lt;br /&gt;
 Compute DftiComputeBackward&lt;br /&gt;
 &lt;br /&gt;
 Backward OUTPUT vector X (2D columns)&lt;br /&gt;
   (   0.729,   0.486)   (  -0.865,  -0.577)   (  -0.278,  -0.186)&lt;br /&gt;
   (   0.787,   0.525)   (   0.839,   0.559)   (  -0.586,  -0.391)&lt;br /&gt;
   (   0.122,   0.081)   (  -0.741,  -0.494)   (  -0.794,  -0.529)&lt;br /&gt;
   (  -0.655,  -0.437)   (   0.580,   0.387)   (  -0.866,  -0.577)&lt;br /&gt;
   (  -0.830,  -0.554)   (  -0.371,  -0.247)   (  -0.791,  -0.527)&lt;br /&gt;
 &lt;br /&gt;
 ACCURACY =    0.248253E-15&lt;br /&gt;
 TEST PASSED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Intel MKL Examples====&lt;br /&gt;
&lt;br /&gt;
The Intel compiler came with many mkl examples which can be copied to your work directory to experiment with by doing the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cp -r /opt/sharcnet/intel/current/ifc/mkl/examples /work/$USER&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then each example can be compiled by going into any example directory and executing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make soem64t&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
o Intel Math Kernel Library Documentation (current release)&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.sharcnet.ca/Software/Intel/IntelIFC/mkl/mkl_documentation.htm&lt;br /&gt;
&lt;br /&gt;
o Intel Math Kernel Library Documentation Home (latest release)&amp;lt;br&amp;gt;&lt;br /&gt;
http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/&lt;br /&gt;
&lt;br /&gt;
o Version of Intel IPP, Intel MKL and Intel TBB Installed With The Intel® Compiler&amp;lt;br&amp;gt;&lt;br /&gt;
http://software.intel.com/en-us/articles/which-version-of-ipp--mkl--tbb-is-installed-with-intel-compiler-professional-edition/&lt;br /&gt;
&lt;br /&gt;
o Known Limitiation In Mkl 10.1 For Linux&amp;lt;br&amp;gt;&lt;br /&gt;
http://software.intel.com/en-us/articles/known-limitations-in-mkl-101-for-linux/&lt;br /&gt;
&lt;br /&gt;
o MKL - BLAS, CBLAS and LAPACK Compiling/Linking Functions &amp;amp;Fortran and C/C++ Calls&amp;lt;br&amp;gt;&lt;br /&gt;
http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-blas-cblas-and-lapack-compilinglinking-functions-fortran-and-cc-calls/&lt;br /&gt;
&lt;br /&gt;
o Using the ILP64 Interface vs. LP64 Interface&amp;lt;br&amp;gt;&lt;br /&gt;
https://software.intel.com/en-us/node/528682&lt;br /&gt;
&lt;br /&gt;
o Use of Intel MKL data types in C/C++ applications&amp;lt;br&amp;gt;&lt;br /&gt;
http://software.intel.com/en-us/articles/use-of-intel-mkl-data-types-in-cc-applications&lt;br /&gt;
&lt;br /&gt;
o Working with the Intel® Math Kernel Library Cluster Software&amp;lt;br&amp;gt;&lt;br /&gt;
https://software.intel.com/en-us/node/528420&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13988</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13988"/>
				<updated>2016-07-16T13:31:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Install CNVnator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13987</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13987"/>
				<updated>2016-07-16T13:24:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Install CNVnator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/lianglab/bin/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/lianglab/bin/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13986</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13986"/>
				<updated>2016-07-16T13:22:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Install root prerequisite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../ -DCMAKE_INSTALL_PREFIX=/work/lianglab/bin/install_root -Dgnuinstall=ON &lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/$USER/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/$USER/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13904</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=13904"/>
				<updated>2016-07-13T19:28:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CNVnator instructions==&lt;br /&gt;
&lt;br /&gt;
===Install root prerequisite===&lt;br /&gt;
Note: compiling this package takes a long time, so it's best to use /tmp directory for faster disk access.&lt;br /&gt;
&lt;br /&gt;
 wget https://root.cern.ch/download/root_v6.06.06.source.tar.gz&lt;br /&gt;
 tar xvfz root_v6.06.06.source.tar.gz&lt;br /&gt;
 module unload intel openmpi mkl&lt;br /&gt;
 module load gcc/4.9.2&lt;br /&gt;
 module load python/gcc/2.7.8&lt;br /&gt;
 mkdir builddir&lt;br /&gt;
 cd builddir&lt;br /&gt;
 cmake ../root-6.06.06 -DCMAKE_INSTALL_PREFIX=/work/$USER/install_root -Dgnuinstall=ON&lt;br /&gt;
 cmake --build .                 &lt;br /&gt;
 cmake --build . --target install&lt;br /&gt;
&lt;br /&gt;
===Install CNVnator===&lt;br /&gt;
(load same modules as for root above)&lt;br /&gt;
&lt;br /&gt;
 wget http://sv.gersteinlab.org/cnvnator/CNVnator_v0.3.zip&lt;br /&gt;
 unzip CNVnator_v0.3.zip&lt;br /&gt;
 cd CNVnator_v0.3/src/samtools/&lt;br /&gt;
 make &lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
now edit the Makefile so it has&lt;br /&gt;
&lt;br /&gt;
 ROOTLIBS  = -L$(ROOTSYS)/lib/root -lCore -lRIO -lNet -lHist -lGraf -lGraf3d \&lt;br /&gt;
                -lGpad -lTree -lRint -lMatrix -lPhysics \&lt;br /&gt;
                -lMathCore -lThread -lGui&lt;br /&gt;
 CXX    = g++ -std=c++11 $(ROOTFLAGS) -DCNVNATOR_VERSION=\&amp;quot;$(VERSION)\&amp;quot;&lt;br /&gt;
 SAMDIR = samtools&lt;br /&gt;
 INC    = -I$(ROOTSYS)/include/root -I$(SAMDIR)&lt;br /&gt;
 SAMLIB = $(SAMDIR)/libbam.a&lt;br /&gt;
&lt;br /&gt;
Note that -lCint library was removed from ROOTLIBS.&lt;br /&gt;
&lt;br /&gt;
Finally, run:&lt;br /&gt;
&lt;br /&gt;
 export ROOTSYS=/work/$USER/install_root&lt;br /&gt;
 export LD_LIBRARY_PATH=/work/$USER/install_root/lib/root:$LD_LIBRARY_PATH&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
This will produce the executable.  In the future, run the above export LD_LIBRARY_PATH command to be able to run it.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/ACE&amp;diff=12590</id>
		<title>User:Ppomorsk/ACE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/ACE&amp;diff=12590"/>
				<updated>2015-12-21T18:38:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Compile instructions (change cboone to another username as needed)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CVS_RSH=ssh&lt;br /&gt;
export CVSROOT=:ext:cboone@tank.uwaterloo.ca:/tankhome/cvs&lt;br /&gt;
cvs co -r sharcnet-port acelib&lt;br /&gt;
cvs co -r sharcnet-port ods&lt;br /&gt;
&lt;br /&gt;
module purge&lt;br /&gt;
module load gcc/4.9.2&lt;br /&gt;
module load torque/2.5.13&lt;br /&gt;
module load maui/3.3.1&lt;br /&gt;
module load sq-tm/2.5&lt;br /&gt;
module load ldwrapper/1.1&lt;br /&gt;
&lt;br /&gt;
cd acelib&lt;br /&gt;
./configure --enable-ods&lt;br /&gt;
cp Makefile.SHARCNET.varfragment Makefile.varfragment.in&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
cd ../ods&lt;br /&gt;
&lt;br /&gt;
# now EDIT the Makefile to point to the locations of acelib library, eg:&lt;br /&gt;
ACELIB_DIR = ../acelib/&lt;br /&gt;
LIBPATH = -L$(ACELIB_DIR) -Wl,-rpath=$(ACELIB_DIR)&lt;br /&gt;
&lt;br /&gt;
make pt&lt;br /&gt;
make clean&lt;br /&gt;
make mw&lt;br /&gt;
make clean&lt;br /&gt;
make xs&lt;br /&gt;
make clean&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/ACE&amp;diff=12525</id>
		<title>User:Ppomorsk/ACE</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/ACE&amp;diff=12525"/>
				<updated>2015-12-04T21:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Compile instructions (change cboone to another username as needed)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export CVS_RSH=ssh&lt;br /&gt;
export CVSROOT=:ext:cboone@tank.uwaterloo.ca:/tankhome/cvs&lt;br /&gt;
cvs co -r sharcnet-port acelib&lt;br /&gt;
cvs co -r sharcnet-port ods&lt;br /&gt;
&lt;br /&gt;
module purge&lt;br /&gt;
module load gcc/4.9.2&lt;br /&gt;
module load torque/4.2.9&lt;br /&gt;
module load maui/3.3.1&lt;br /&gt;
module load sq-tm/2.5&lt;br /&gt;
module load ldwrapper/1.1&lt;br /&gt;
&lt;br /&gt;
cd acelib&lt;br /&gt;
./configure --enable-ods&lt;br /&gt;
cp Makefile.SHARCNET.varfragment Makefile.varfragment.in&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
cd ../ods&lt;br /&gt;
&lt;br /&gt;
# now EDIT the Makefile to point to the locations of acelib library, eg:&lt;br /&gt;
ACELIB_DIR = ../acelib/&lt;br /&gt;
LIBPATH = -L$(ACELIB_DIR) -Wl,-rpath=$(ACELIB_DIR)&lt;br /&gt;
&lt;br /&gt;
make pt&lt;br /&gt;
make clean&lt;br /&gt;
make mw&lt;br /&gt;
make clean&lt;br /&gt;
make xs&lt;br /&gt;
make clean&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Pomorski-general-interest-talk-mpi-part2.pdf&amp;diff=12496</id>
		<title>File:Pomorski-general-interest-talk-mpi-part2.pdf</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Pomorski-general-interest-talk-mpi-part2.pdf&amp;diff=12496"/>
				<updated>2015-12-02T22:01:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Slides for Part II for MPI seminar.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slides for Part II for MPI seminar.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=10694</id>
		<title>User:Ppomorsk</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk&amp;diff=10694"/>
				<updated>2015-02-19T21:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pawel Pomorski&lt;br /&gt;
&lt;br /&gt;
High Performance Computing Programming Specialist&lt;br /&gt;
&lt;br /&gt;
University of Waterloo&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Workspace]]&lt;br /&gt;
&lt;br /&gt;
[[User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres]]&lt;br /&gt;
&lt;br /&gt;
== Important Pages ==&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software which I help maintain ==&lt;br /&gt;
&lt;br /&gt;
*[[CPMD]]&lt;br /&gt;
&lt;br /&gt;
*[[CUDA]] &lt;br /&gt;
&lt;br /&gt;
*[[GCC]] &lt;br /&gt;
&lt;br /&gt;
*[[NAMD]] &lt;br /&gt;
&lt;br /&gt;
*[[OpenCL]] &lt;br /&gt;
&lt;br /&gt;
*[[Python]] &lt;br /&gt;
&lt;br /&gt;
*[[SIESTA]] &lt;br /&gt;
&lt;br /&gt;
*[[XCrySDen]]&lt;br /&gt;
&lt;br /&gt;
*[[MKL]]&lt;br /&gt;
&lt;br /&gt;
== Help Wiki stats ==&lt;br /&gt;
&lt;br /&gt;
Wiki stats page is [[Special:Statistics|here]].&lt;br /&gt;
&lt;br /&gt;
This wiki has {{NUMBEROFUSERS}} users, among them {{NUMBEROFACTIVEUSERS}} active users (users who performed an action within last 91 days).  The total number of page edits is {{NUMBEROFEDITS}}. The total number of page views is {{NUMBEROFVIEWS}}. There are {{NUMBEROFPAGES}} pages and {{NUMBEROFFILES}} articles.&lt;br /&gt;
&lt;br /&gt;
== NAMD instructions ==&lt;br /&gt;
&lt;br /&gt;
These instructions for monk, current as of Feb.2014, with default modules:&lt;br /&gt;
&lt;br /&gt;
 intel/12.1.3            &lt;br /&gt;
 cuda/5.5.22           &lt;br /&gt;
&lt;br /&gt;
Preliminaries:&lt;br /&gt;
&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load openmpi/intel/1.7.4&lt;br /&gt;
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sharcnet/intel/12.1.3/icc/composer_xe_2011_sp1.9.293/compiler/lib/intel64&lt;br /&gt;
OpenMPI 1.7.4 is compiled with CUDA support. Environment variable is needed to locate all the libraries at runtime.&lt;br /&gt;
&lt;br /&gt;
Get all the required source files:&lt;br /&gt;
&lt;br /&gt;
 tar xvfz NAMD_2.9_Source.tar.gz &lt;br /&gt;
 cd NAMD_2.9_Source&lt;br /&gt;
&lt;br /&gt;
Download and install precompiled TCL and FFTW libraries:&lt;br /&gt;
(working in NAMD source directory)&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf fftw-linux-x86_64.tar.gz&lt;br /&gt;
  mv linux-x86_64 fftw&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64.tar.gz&lt;br /&gt;
  tar xzf tcl8.5.9-linux-x86_64-threaded.tar.gz&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64 tcl&lt;br /&gt;
  mv tcl8.5.9-linux-x86_64-threaded tcl-threaded&lt;br /&gt;
&lt;br /&gt;
Compile charm, choosing which parallelization is to be used (threaded, MPI, MPI-SMP):&lt;br /&gt;
&lt;br /&gt;
 tar xvf charm-6.4.0.tar &lt;br /&gt;
 cd charm-6.4.0&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64  --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - MPI-SMP build:&lt;br /&gt;
 env MPICXX=mpicxx ./build charm++ mpi-linux-x86_64 smp --no-build-shared --with-production&lt;br /&gt;
&lt;br /&gt;
Compile charm - threaded build:&lt;br /&gt;
 ./build charm++ multicore-linux64 --no-build-shared  icc8 --with-production&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure NAMD and compile (with CUDA support enabled) - replace CHARM_ARCHITECTURE with one of the three options above:&lt;br /&gt;
 ./config  Linux-x86_64-icc   --charm-arch CHARM_ARCHITECTURE --with-cuda --cuda-prefix /opt/sharcnet/cuda/5.5.22/toolkit/&lt;br /&gt;
 cd Linux-x86_64-icc&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Test charm if needed:&lt;br /&gt;
&lt;br /&gt;
From the directory charm is in, &lt;br /&gt;
 cd architecture_directory/tests/charm++/megatest&lt;br /&gt;
 make pgm&lt;br /&gt;
 mpirun -n 4 ./pgm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python installation instructions ==&lt;br /&gt;
&lt;br /&gt;
Even though Python modules are provided by SHARCNET, sometimes there may be a need to compile your own Python and Numpy.  Here are instructions on how to do it (tested in September, 2014):&lt;br /&gt;
&lt;br /&gt;
To get the source tarballs, do:&lt;br /&gt;
&lt;br /&gt;
 wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz&lt;br /&gt;
 wget http://sourceforge.net/projects/numpy/files/NumPy/1.8.2/numpy-1.8.2.tar.gz&lt;br /&gt;
&lt;br /&gt;
and unpack these somewhere in your directories.&lt;br /&gt;
&lt;br /&gt;
These were built under modules:&lt;br /&gt;
&lt;br /&gt;
 module unload intel &lt;br /&gt;
 module unload mkl &lt;br /&gt;
 module unload openmpi &lt;br /&gt;
 module load gcc/4.8.2 &lt;br /&gt;
 module load openmpi/gcc/1.8.1&lt;br /&gt;
&lt;br /&gt;
(openmpi is not necessary for this built, but I would suggest loading the gcc/1.8.1 anyway)&lt;br /&gt;
&lt;br /&gt;
Python was built with:&lt;br /&gt;
&lt;br /&gt;
 ./configure --enable-shared --prefix=~/software_installs/python/2.7.8/gcc/installdir&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Then set ( in .bashrc for permanent change):&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/software_installs/python/2.7.8/gcc/installdir/bin:$PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=~/software_installs/python/2.7.8/gcc/installdir/lib:$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
Numpy was built with:&lt;br /&gt;
&lt;br /&gt;
 unset LDFLAGS&lt;br /&gt;
 python setup.py build --fcompiler=gnu95&lt;br /&gt;
 python setup.py install --prefix=~/software_installs/numpy/1.8.2/gcc/installdir&lt;br /&gt;
&lt;br /&gt;
Also did:&lt;br /&gt;
&lt;br /&gt;
 ln -sf ~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/numpy/core/include/numpy ~/software_installs/python/2.7.8/gcc/installdir/include/python2.7&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
 export PYTHONPATH=~/software_installs/numpy/1.8.2/gcc/installdir/lib/python2.7/site-packages/&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=10688</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=10688"/>
				<updated>2015-02-19T21:06:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Ppomorsk moved page Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres to User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres: this staff project is a better fit in user space&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
This project was successfully completed in September, 2011.&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Safe physics assumptions==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at the finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). Our assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that we should worry about==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;br /&gt;
# With Monte Carlo transfer the stochastic error goes down as 1/sqrt(numberOfPhotons), in other words, shooting 1000 times more photons will only lower the errors by a factor of ~30. In order to have a solution that is accurate to 8-9 significant digits, how many photons one would need to propagate at each timestep, 1e20? This is why proper discretization of the transfer equation in all dimensions (3 spatial coordinates, two angles, frequency) is vastly superior to Monte Carlo for error control. There are many methods -- ray tracing, direct Boltzmann solver, and various approximations (variable Eddington tensors, moment-limited approximations) -- but they clearly go well beyond the scope of this programming project. As a sanity check with Monte Carlo, we should be aware of the solution accuracy, e.g. how many photons do we need to launch to have 1% (or 1e-4, 1e-6) accuracy in the heating rates in each cell. Consequently, this number of photons will influence not only the CPU time, but also the amount of communication between the processors/nodes. While pursuing decent accuracy on larger grids, the problem can be quickly dominated by passing photon buffers between processors and the associated MPI bottlenecks.&lt;br /&gt;
# Domain decomposition of radiative transfer might present its own problems. For example, if there are any radiation-driven fronts (I am thinking about ionization fronts in astrophysics, but coupling radiation to hydro might give rise to its own instabilities and fronts propagating at finite speeds), the order in which photons are passed between processors may become important. For example, the domain on the left may or may not have some important instability that will affect transfer in the domain on the right, on the timescale faster than the fluid flow. Then doing transfer in the domain on the right may be a waste of CPU time, until we have the solution from the domain on the left. Couple that with the fact that there is no left and right, but two angles (theta, phi) describing the direction of photon propagation, and you'll see how complex this problem can become.&lt;br /&gt;
&lt;br /&gt;
==Test runs==&lt;br /&gt;
Problem input files are found on narwhal in:&lt;br /&gt;
 /work/ppomorsk/FORWARD_MONO_HEATING_RATES/RUNDIR&lt;br /&gt;
&lt;br /&gt;
The code has to be compiled separately for each test run, as the problem sizes differ.  To find out the problem size from the input files, execute:&lt;br /&gt;
&lt;br /&gt;
 head 3D_fields.dat&lt;br /&gt;
&lt;br /&gt;
then edit domain.f90 to use these parameters by changing nx_gl, ny_gl and nz_gl .&lt;br /&gt;
&lt;br /&gt;
The current git repository version is set to use 1 processor, but the code still uses MPI, so submit it to the MPI queue.  The libraries have been configured for the saw cluster (modify to run on other clusters).  Compile on saw with:&lt;br /&gt;
&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
To run with more than 1 processor, modify nsubdomains_x  and nsubdomains_y in domain.f, then run with the number of processors equal to nsubdomains_x*nsubdomains_y.&lt;br /&gt;
&lt;br /&gt;
==Compiling/running instructions==&lt;br /&gt;
===redfin===&lt;br /&gt;
The following modules need to be loaded before compiling '''and''' running on redfin.&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module unload openmpi&lt;br /&gt;
 module load intel/11.1.069&lt;br /&gt;
 module load openmpi/intel/1.4.3&lt;br /&gt;
 module load pnetcdf/intel/1.2.0&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User_talk:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=10690</id>
		<title>User talk:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User_talk:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=10690"/>
				<updated>2015-02-19T21:06:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Ppomorsk moved page Talk:Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres to User talk:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres: this staff project is a better fit in user s...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Good place for more informal discussion.&lt;br /&gt;
&lt;br /&gt;
Comments on the project from all interested SHARCNET users are welcome.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Test&amp;diff=10440</id>
		<title>User:Ppomorsk/Test</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Test&amp;diff=10440"/>
				<updated>2015-01-22T00:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: /* Monk cluster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The header titles get automatically converted into tab titles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;'''PyCUDA''' makes it possible to easily use CUDA inside Python code.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Documentation can be found on the [http://mathema.tician.de/software/pycuda package webpage].&lt;br /&gt;
&lt;br /&gt;
This package is not currently installed as SHARCNET-supported software, but it's easy for users to install it on their own following instructions below.  If any difficulties are encountered when following these instructions, please ask SHARCNET staff for help.&lt;br /&gt;
&lt;br /&gt;
See also: [[PyOpenCL]]&lt;br /&gt;
&lt;br /&gt;
==SHARCNET installation instructions==&lt;br /&gt;
&lt;br /&gt;
===Monk cluster===&lt;br /&gt;
(These instructions were tested on Oct 22, 2014 )&lt;br /&gt;
&lt;br /&gt;
1. Unload the Intel compiler module (loaded by default), so that GCC becomes the default compiler. Also, use a later python version.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module unload intel&lt;br /&gt;
module unload openmpi&lt;br /&gt;
module load gcc/4.8.2&lt;br /&gt;
module load openmpi/gcc/1.8.1&lt;br /&gt;
module load python/gcc/2.7.8&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note: openmpi module is loaded because the python module needs it (it is not actually used by PyCuda)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2.  Create some directory you want to build the package in, cd into it, then get the PyCUDA source code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone http://git.tiker.net/trees/pycuda.git&lt;br /&gt;
cd pycuda&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
&lt;br /&gt;
wget https://pypi.python.org/packages/source/p/pycuda/pycuda-2014.1.tar.gz#md5=fdc2f59e57ab7256a7e0df0d9d943022&lt;br /&gt;
tar xfz pycuda-2014.1.tar.gz&lt;br /&gt;
cd pycuda-2014.1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. At this point decide where you want the package to be installed.  In this example will use a directory called python_packages in the home directory.  If this directory does not yet exist, make it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p ~/python_packages/lib/python/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Doing it this way creates the required subdirectories as well.&lt;br /&gt;
&lt;br /&gt;
4. Edit file Makefile.in to add --home flag pointing to the directory you created to the setup install line, so that it reads:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
${PYTHON_EXE} setup.py install --home=~/python_packages&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.You now need to update the PYTHONPATH variable to point to the library directory:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PYTHONPATH=~/python_packages/lib/python/:$PYTHONPATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Configure and compile, providing a path to the CUDA files on monk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python configure.py --cuda-root=/opt/sharcnet/cuda/6.0.37/toolkit&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Do the first test of the installation to make sure the pycuda module can be imported, by starting python and executing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
import pycuda&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no errors are reported, everything worked and the package is ready for use.&lt;br /&gt;
&lt;br /&gt;
8.  Add the lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module unload intel&lt;br /&gt;
module unload openmpi&lt;br /&gt;
module load gcc/4.8.2&lt;br /&gt;
module load openmpi/gcc/1.8.1&lt;br /&gt;
module load python/gcc/2.7.8&lt;br /&gt;
export PYTHONPATH=~/python_packages/lib/python/:$PYTHONPATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your ~/.bashrc file so that this variable is set automatically for you on every login.&lt;br /&gt;
&lt;br /&gt;
9.  Test PyCUDA on a development node which has a GPU (the login node does not have one so PyCUDA tests will produce an error).  To do this, execute on monk login node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh mon54&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then go to the directory where you put the PyCuda source code, and execute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python test/test_driver.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gives error:&lt;br /&gt;
&lt;br /&gt;
[ppomorsk@mon241:~/supported_sharcnet_packages/pycuda/pycuda-2014.1/test] python test_driver.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;test_driver.py&amp;quot;, line 4, in &amp;lt;module&amp;gt;&lt;br /&gt;
    from pycuda.tools import mark_cuda_test&lt;br /&gt;
  File &amp;quot;/home/ppomorsk/python_packages/lib/python/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/tools.py&amp;quot;, line 30, in &amp;lt;module&amp;gt;&lt;br /&gt;
    import pycuda.driver as cuda&lt;br /&gt;
  File &amp;quot;/home/ppomorsk/python_packages/lib/python/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/driver.py&amp;quot;, line 2, in &amp;lt;module&amp;gt;&lt;br /&gt;
    from pycuda._driver import *  # noqa&lt;br /&gt;
 ImportError: /home/ppomorsk/python_packages/lib/python/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/_driver.so: undefined symbol: cuStreamAttachMemAsync&lt;br /&gt;
&lt;br /&gt;
ldd output&lt;br /&gt;
&lt;br /&gt;
 [ppomorsk@mon54:~/supported_sharcnet_packages/pycuda/pycuda-2014.1/test] ldd /home/ppomorsk/python_packages/lib/python/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/_driver.so&lt;br /&gt;
&lt;br /&gt;
	linux-vdso.so.1 =&amp;gt;  (0x00007fffac5c1000)&lt;br /&gt;
&lt;br /&gt;
	libcuda.so.1 =&amp;gt; /usr/lib64/libcuda.so.1 (0x00002b7dbda9e000)&lt;br /&gt;
&lt;br /&gt;
	libcurand.so.6.0 =&amp;gt; /opt/sharcnet/cuda/6.0.37/toolkit/lib64/libcurand.so.6.0 (0x00002b7dbea01000)&lt;br /&gt;
&lt;br /&gt;
	libstdc++.so.6 =&amp;gt; /opt/sharcnet/gcc/4.8.2/lib64/libstdc++.so.6 (0x00002b7dc3f08000)&lt;br /&gt;
&lt;br /&gt;
	libm.so.6 =&amp;gt; /lib64/libm.so.6 (0x00002b7dc4211000)&lt;br /&gt;
	&lt;br /&gt;
libgcc_s.so.1 =&amp;gt; /opt/sharcnet/gcc/4.8.2/lib64/libgcc_s.so.1 (0x00002b7dc4496000)&lt;br /&gt;
	&lt;br /&gt;
libpthread.so.0 =&amp;gt; /lib64/libpthread.so.0 (0x00002b7dc46ac000)&lt;br /&gt;
	&lt;br /&gt;
libc.so.6 =&amp;gt; /lib64/libc.so.6 (0x00002b7dc48c9000)&lt;br /&gt;
	&lt;br /&gt;
libz.so.1 =&amp;gt; /lib64/libz.so.1 (0x00002b7dc4c5e000)&lt;br /&gt;
	&lt;br /&gt;
libdl.so.2 =&amp;gt; /lib64/libdl.so.2 (0x00002b7dc4e74000)&lt;br /&gt;
	&lt;br /&gt;
librt.so.1 =&amp;gt; /lib64/librt.so.1 (0x00002b7dc5078000)&lt;br /&gt;
	/lib64/ld-linux-x86-64.so.2 (0x00002b7dbd4a9000)&lt;br /&gt;
&lt;br /&gt;
and the symbol does seem to exist&lt;br /&gt;
&lt;br /&gt;
 [ppomorsk@mon54:/usr/lib64] readelf -Ws libcuda.so.331.89 | grep cuStreamAttachMemAsync&lt;br /&gt;
    43: 0000000000139890   538 FUNC    GLOBAL DEFAULT   10 cuStreamAttachMemAsync&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
try&lt;br /&gt;
&lt;br /&gt;
 python configure.py --cuda-root=/opt/sharcnet/cuda/6.0.37/toolkit --cudadrv-lib-dir=/usr/lib64&lt;br /&gt;
If everything is working properly, the output should look like this:&lt;br /&gt;
&lt;br /&gt;
http://pycuda.2962900.n2.nabble.com/PyCUDA-undefined-symbol-cuMemAllocPitch-v2-td7571641.html&lt;br /&gt;
&lt;br /&gt;
&amp;quot;cudart is the run-time interface, which is used by 'conventional' CUDA C &lt;br /&gt;
code. (cudaMemcpy) PyCUDA uses the driver interface. (cuMemcpy) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;mismatch between cuda.h and driver&amp;quot; ??&lt;br /&gt;
try older CUDA modules?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
python configure.py --cuda-root=/opt/sharcnet/cuda/5.5.22/toolkit --cudadrv-lib-dir=/usr/lib64&lt;br /&gt;
&lt;br /&gt;
with cuda/5.5.22 loaded&lt;br /&gt;
even basic cuda test program fails with&lt;br /&gt;
&lt;br /&gt;
FATAL: Error inserting nvidia (/lib/modules/2.6.32-431.3.1.el6.x86_64/kernel/drivers/video/nvidia.ko): No such device&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
runpaths problem&lt;br /&gt;
&lt;br /&gt;
 _driver.so has an RPATH, but none of the members contain libcuda.so.  so it was build wrong, in that it doesn't correctly encode its actual dependency.&lt;br /&gt;
&lt;br /&gt;
[ppomorsk@mon241:~/supported_sharcnet_packages/pycuda/pycuda-2014.1/test] objdump -x /home/ppomorsk/python_packages/lib/python/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/_driver.so | grep RPATH&lt;br /&gt;
  RPATH                /opt/sharcnet/python/2.7.8/gcc/lib:/opt/sharcnet/gcc/4.8.2/lib64:/opt/sharcnet/cuda/6.0.37/cula/lib64:/opt/sharcnet/cuda/6.0.37/toolkit/lib64:/opt/sharcnet/mkl/10.3.9/mkl/lib/intel64:/opt/sharcnet/mkl/10.3.9/lib/intel64&lt;br /&gt;
&lt;br /&gt;
Problem with python itself??&lt;br /&gt;
python/gcc/2.7.8 module has theano, which is GPU , so there might be some hidden dependency.&lt;br /&gt;
&lt;br /&gt;
Anyway, with theano python/gcc/2.7.8 ought to have an explicit CUDA dependency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ppomorsk@mon54:~/pycuda] python test/test_driver.py &lt;br /&gt;
============================= test session starts ==============================&lt;br /&gt;
platform linux2 -- Python 2.6.6 -- pytest-2.3.4&lt;br /&gt;
collected 21 items &lt;br /&gt;
&lt;br /&gt;
test_driver.py .....................&lt;br /&gt;
&lt;br /&gt;
========================== 21 passed in 61.39 seconds ==========================&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
10.  Try the example programs provided with the source code, found in the ''examples'' subdirectory of your pycuda source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python examples/dump_properties.py&lt;br /&gt;
python examples/hello_gpu.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample PyCUDA code==&lt;br /&gt;
This is code from the '''hello_gpu.py''' example program. It multiplies two vectors elementwise on the GPU, and then verifies the result with a standard calculation on the CPU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import pycuda.driver as drv&lt;br /&gt;
import pycuda.tools&lt;br /&gt;
import pycuda.autoinit&lt;br /&gt;
import numpy&lt;br /&gt;
import numpy.linalg as la&lt;br /&gt;
from pycuda.compiler import SourceModule&lt;br /&gt;
&lt;br /&gt;
mod = SourceModule(&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
__global__ void multiply_them(float *dest, float *a, float *b)&lt;br /&gt;
{&lt;br /&gt;
  const int i = threadIdx.x;&lt;br /&gt;
  dest[i] = a[i] * b[i];&lt;br /&gt;
}&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
multiply_them = mod.get_function(&amp;quot;multiply_them&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
a = numpy.random.randn(400).astype(numpy.float32)&lt;br /&gt;
b = numpy.random.randn(400).astype(numpy.float32)&lt;br /&gt;
&lt;br /&gt;
dest = numpy.zeros_like(a)&lt;br /&gt;
multiply_them(&lt;br /&gt;
        drv.Out(dest), drv.In(a), drv.In(b),&lt;br /&gt;
        block=(400,1,1))&lt;br /&gt;
&lt;br /&gt;
print dest-a*b&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software packages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
List of colors: [https://meta.wikimedia.org/wiki/Wiki_color_formatting_help Wiki_color_formatting_help] &lt;br /&gt;
&lt;br /&gt;
Simplest table&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
|AA || BB || CC&lt;br /&gt;
|-&lt;br /&gt;
|DD || EE || FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table with padding&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=5&lt;br /&gt;
|AA || BB || CC&lt;br /&gt;
|-&lt;br /&gt;
|DD || EE || FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table with border&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=5 style=&amp;quot;border:1px solid #BBB&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#fafeff&amp;quot;&lt;br /&gt;
|AA || CC || EE&lt;br /&gt;
|- bgcolor=&amp;quot;#fafeff&amp;quot;&lt;br /&gt;
|BB || DD || FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notebox:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=5 style=&amp;quot;border:4px solid #4682B4&amp;quot;&lt;br /&gt;
|- bgcolor=&amp;quot;#E0FFFF&amp;quot;&lt;br /&gt;
| This is a notebox&amp;lt;br&amp;gt;to show border color.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#switchtablink:Tab name|CUDA|CUDA}}&lt;br /&gt;
&amp;lt;headertabs/&amp;gt;&lt;br /&gt;
= Third section header =&lt;br /&gt;
This will be always displayed under the tab view&lt;br /&gt;
because it's below the &amp;amp;lt;headertabs/&amp;amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;pre&amp;gt;Some text above the tab view&lt;br /&gt;
= First section header =&lt;br /&gt;
This will be displayed on the first tab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#switchtablink:Second section header|Click here to go to the next tab...}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
{{#switchtablink:Tab name|Link text|Page name}}&lt;br /&gt;
= Second section header =&lt;br /&gt;
This will be displayed on the second tab&lt;br /&gt;
&amp;lt;headertabs/&amp;gt;&lt;br /&gt;
= Third section header =&lt;br /&gt;
This will be always displayed under the tab view&lt;br /&gt;
because it's below the &amp;amp;lt;headertabs/&amp;amp;gt; tag.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Sndemo&amp;diff=10240</id>
		<title>User:Sndemo</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Sndemo&amp;diff=10240"/>
				<updated>2014-12-05T17:15:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Created page with &amp;quot;This is a SHARCNET demo account, useful for staff to see things from normal user's perspective.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a SHARCNET demo account, useful for staff to see things from normal user's perspective.&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Talk:New_user_seminar&amp;diff=10237</id>
		<title>Talk:New user seminar</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Talk:New_user_seminar&amp;diff=10237"/>
				<updated>2014-12-05T15:29:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the place to record questions asked during the seminars.&lt;br /&gt;
&lt;br /&gt;
==December 8, 2014==&lt;br /&gt;
&lt;br /&gt;
===Attendance===&lt;br /&gt;
* [[User:Ppomorsk|Ppomorsk]] ([[User talk:Ppomorsk|talk]]) 10:29, 5 December 2014 (EST)&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
* Sample question: how do I use MPI on monk? [[User:Ppomorsk|Ppomorsk]] ([[User talk:Ppomorsk|talk]]) 10:24, 5 December 2014 (EST)&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Talk:New_user_seminar&amp;diff=10236</id>
		<title>Talk:New user seminar</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Talk:New_user_seminar&amp;diff=10236"/>
				<updated>2014-12-05T15:25:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the place to record questions asked during the seminars.&lt;br /&gt;
&lt;br /&gt;
==December 8, 2014==&lt;br /&gt;
&lt;br /&gt;
===Attendance===&lt;br /&gt;
* Pawel&lt;br /&gt;
&lt;br /&gt;
===Questions===&lt;br /&gt;
* Sample question: how do I use MPI on monk? [[User:Ppomorsk|Ppomorsk]] ([[User talk:Ppomorsk|talk]]) 10:24, 5 December 2014 (EST)&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Talk:New_user_seminar&amp;diff=10235</id>
		<title>Talk:New user seminar</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Talk:New_user_seminar&amp;diff=10235"/>
				<updated>2014-12-05T15:24:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: Created page with &amp;quot;This is the place to record questions asked during the seminars.  ==December 8, 2014== Attendance: Pawel  * Sample question: how do I use MPI on monk? ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the place to record questions asked during the seminars.&lt;br /&gt;
&lt;br /&gt;
==December 8, 2014==&lt;br /&gt;
Attendance: Pawel&lt;br /&gt;
&lt;br /&gt;
* Sample question: how do I use MPI on monk? [[User:Ppomorsk|Ppomorsk]] ([[User talk:Ppomorsk|talk]]) 10:24, 5 December 2014 (EST)&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Workspace&amp;diff=10233</id>
		<title>User:Ppomorsk/Workspace</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Workspace&amp;diff=10233"/>
				<updated>2014-12-04T21:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ppomorsk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some text above the tab view&lt;br /&gt;
= First section header =&lt;br /&gt;
This will be displayed on the first tab&lt;br /&gt;
&lt;br /&gt;
{{#switchtablink:Second section header|Click here to go to the next tab...}}&lt;br /&gt;
&lt;br /&gt;
= Second section header =&lt;br /&gt;
This will be displayed on the second tab&lt;br /&gt;
&amp;lt;headertabs/&amp;gt;&lt;br /&gt;
= Third section header =&lt;br /&gt;
This will be always displayed under the tab view&lt;br /&gt;
because it's below the &amp;lt;headertabs/&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
Useful table on staff wiki is [https://www.sharcnet.ca/wiki/index.php/Visualization_Workstations here]&lt;br /&gt;
&lt;br /&gt;
===SHARCNET viz machine data===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | viz machine&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | online&lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | GPU&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | CUDA&lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | CPU&lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | OS&lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | &lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | &lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | &lt;br /&gt;
! style=&amp;quot;background:#ECCF98;&amp;quot; | &lt;br /&gt;
! style=&amp;quot;background:#8AA8E5;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|viz1-brocku&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4600&lt;br /&gt;
|'''None'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-brocku&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4600&lt;br /&gt;
|'''None'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz1-sher&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-sher&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz3-sher&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz1-uoguelph&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-uoguelph&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz3-uoguelph&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|2 x Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz4-uoguelph&lt;br /&gt;
|Yes, but no /home&lt;br /&gt;
|formerly GeForce GTX 480, now ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz5-uoguelph&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz6-uoguelph&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 5800&lt;br /&gt;
|3.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz1-uoit&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|'''None'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-uoit&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
|'''None'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz1-uwindsor&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 5800&lt;br /&gt;
|3.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-uwindsor&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4600&lt;br /&gt;
|3.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz3-uwindsor&lt;br /&gt;
|passwd not accepted&lt;br /&gt;
|Quadro FX 4600&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz1-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz3-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|2x Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz4-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4500 + Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz5-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|Quadro FX 4500&lt;br /&gt;
|no CUDA support on GPU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz6-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|2 x Quadro FX 4800&lt;br /&gt;
|3.2, not SN module&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz7-uwo&lt;br /&gt;
|Yes, but GPU local only &lt;br /&gt;
|2 x ATI RV870 &lt;br /&gt;
|No, ATI system&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz8-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|2 x Quadro FX 4800&lt;br /&gt;
|3.2, not SN module&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz9-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|ATI Cypress&lt;br /&gt;
|No, ATI system&lt;br /&gt;
|8 core Xeon(R) CPU           X5560  @ 2.80GHz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz10-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|ATI Cypress&lt;br /&gt;
|No, ATI system&lt;br /&gt;
|8 core Xeon(R) CPU           X5560  @ 2.80GHz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz11-uwo&lt;br /&gt;
|Yes&lt;br /&gt;
|ATI Cypress&lt;br /&gt;
|No, ATI system&lt;br /&gt;
|8 core Xeon(R) CPU           X5560  @ 2.80GHz&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz1-wlu&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|viz2-wlu&lt;br /&gt;
|&amp;lt;b&amp;gt;&amp;lt;font color=red&amp;gt;No&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ppomorsk</name></author>	</entry>

	</feed>