<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bwhpc.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M+Neuer</id>
	<title>bwHPC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bwhpc.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=M+Neuer"/>
	<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/e/Special:Contributions/M_Neuer"/>
	<updated>2026-04-28T18:36:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=5389</id>
		<title>Development/MKL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=5389"/>
		<updated>2018-03-29T07:16:09Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* FFTW Interface to Intel Math Kernel Library (MKL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=600px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description !! Content&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| numlib/mkl&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial. See [https://software.intel.com/en-us/articles/end-user-license-agreement EULA].&lt;br /&gt;
|-&lt;br /&gt;
| Citing &lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/intel-mkl Intel MKL Homepage] &amp;amp;#124; [https://software.intel.com/en-us/articles/intel-math-kernel-library-documentation Online-Documentation]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
&#039;&#039;&#039;Intel MKL (Math Kernel Library)&#039;&#039;&#039; is a library of optimized math routines for numerical computations such as linear algebra (using BLAS, LAPACK, ScaLAPACK) and discrete Fourier Transformation.&lt;br /&gt;
With its standard interface in matrix computation and the interface of the popular fast Fourier transformation library fftw, MKL can be used to replace other libraries with minimal code changes. In fact a program which uses FFTW without MPI doesn&#039;t need to be changed at all. Just recompile it with the MKL linker flags.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation Online-Documentation]&lt;br /&gt;
&lt;br /&gt;
= Versions and Availability =&lt;br /&gt;
A list of currently available MKL modules can be obtained from the&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
[https://cis-hpc.uni-konstanz.de/prod.cis/ Cluster Information System CIS] &amp;lt;/big&amp;gt;&lt;br /&gt;
{{#widget:Iframe&lt;br /&gt;
|url=https://cis-hpc.uni-konstanz.de/prod.cis/bwUniCluster/numlib/mkl&lt;br /&gt;
|width=99%&lt;br /&gt;
|height=700&lt;br /&gt;
|border=0&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Show a list of available versions using &#039;module avail numlib/mkl&#039; on any HPC-C5 cluster.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
: EXAMPLE bwUniCluster&lt;br /&gt;
$ module avail numlib/mkl&lt;br /&gt;
------------------------------ /opt/bwhpc/common/modulefiles ------------------------------&lt;br /&gt;
numlib/mkl/10.3.12         numlib/mkl/11.1.4(default)&lt;br /&gt;
numlib/mkl/11.0.5          numlib/mkl/11.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Local documentation =&lt;br /&gt;
There is some information in the module help file accessible via &#039;module help numlib/mkl&#039;-&lt;br /&gt;
command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
: EXCERPT ONLY&lt;br /&gt;
$ module help numlib/mkl&lt;br /&gt;
----------- Module Specific Help for &#039;numlib/mkl/11.1.4&#039; ----------&lt;br /&gt;
This module provides the Intel(R) Math Kernel Library (MKL)&lt;br /&gt;
version 11.1.4, a fast and reliable implementation&lt;br /&gt;
of BLAS/LAPACK/FFTW (see also &#039;http://software.intel.com/en-us/intel-mkl/&#039;).&lt;br /&gt;
&lt;br /&gt;
The preferable compiler for this MKL version is &#039;compiler/intel/14.0&#039;. Linking&lt;br /&gt;
with other compilers like GNU, PGI and SUN is possible. The desired compiler&lt;br /&gt;
module (exception system GNU compiler) has to be loaded before using MKL.&lt;br /&gt;
&lt;br /&gt;
Local documentation:&lt;br /&gt;
&lt;br /&gt;
  Man pages in &#039;$MKL_MAN_DIR/man3&#039;, e.g. &#039;man dotc&#039;.&lt;br /&gt;
  firefox  $MKL_DOC_DIR/mkl_documentation.htm&lt;br /&gt;
  acroread $MKL_DOC_DIR/l_mkl_11.1.4.211.mklman.pdf&lt;br /&gt;
  acroread $MKL_DOC_DIR/l_mkl_11.1.4.211.mkl_11.1.4_lnx_userguide.pdf&lt;br /&gt;
&lt;br /&gt;
Linking examples (ifort compiler with support for blas and lapack):&lt;br /&gt;
&lt;br /&gt;
* Dynamic linking of myprog.f and parallel MKL supporting the LP64 interface:&lt;br /&gt;
&lt;br /&gt;
  ifort myprog.f -L${MKL_LIB_DIR} -I${MKL_INC_DIR}            \&lt;br /&gt;
        -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread&lt;br /&gt;
[... t.b.c. ...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After loading the module, the environment variable $MKL_DOC_DIR points to the local documentation folder. Various examples can be found in $MKLROOT/examples.&lt;br /&gt;
&lt;br /&gt;
= MKL-Specific Environments =&lt;br /&gt;
To see a list of all MKL environments set by the &#039;module load&#039;-command use &#039;env | grep MKL&#039;. Or use the command &#039;module display numlib/mkl/version&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Example &amp;lt;small&amp;gt;(bwUniCluster)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
$ env | grep MKL&lt;br /&gt;
MKLROOT=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl&lt;br /&gt;
MKL_LIB_MIC_COM=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/lib/mic&lt;br /&gt;
MKL_DOC_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/composerxe/Documentation/en_US/mkl&lt;br /&gt;
MKL_NUM_THREADS=1&lt;br /&gt;
MKL_HOME=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl&lt;br /&gt;
MKL_LIB_MIC=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/lib/mic&lt;br /&gt;
MKL_MAN_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/man/en_US&lt;br /&gt;
MKL_EXA_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/composerxe/Samples/en_US&lt;br /&gt;
MKL_STA_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/lib/intel64_static&lt;br /&gt;
MKL_INC_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/include&lt;br /&gt;
MKL_BIN_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/bin&lt;br /&gt;
MKL_LIB_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/lib/intel64&lt;br /&gt;
MKL_VERSION=11.1.4&lt;br /&gt;
MKL_LIB_COM=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/lib/intel64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling and linking =&lt;br /&gt;
Compilation is possible with both GCC and Intel compilers but it is easier for Intel compilers, so this case is explained here.&lt;br /&gt;
After loading the compiler and the library module with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load compiler/intel&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can include the MKL header file in your program:&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;#include &amp;lt;mkl.h&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Compilation is simple:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc -c example_mkl.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
When linking the program you have to tell the compiler to link against the mkl library:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc example_mkl.o -mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the -mkl switch the intel compiler automatically sets the correct linker flags but you can specify them explicitly for example to enable static linking or when non-intel compilers are used. Information about the different options can be found at https://software.intel.com/en-us/node/438568 and especially helpful is the MKL link line advisor at https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor.&lt;br /&gt;
By default $MKL_NUM_THREADS is set to 1 and so only one thread will be created, but if you feel the need to run the computation on more cores (after benchmarking) you can set $MKL_NUM_THREADS to a higher number.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== FFTW Interface to Intel Math Kernel Library (MKL) ==&lt;br /&gt;
Sometimes, [[FFTW|FFTW]] is not available on your cluster. You can use the MKL library&lt;br /&gt;
instead and include the FFTW functions, too.&lt;br /&gt;
&lt;br /&gt;
Intel Math Kernel Library (MKL) offers FFTW2 and FFTW3 interfaces to Intel MKL Fast Fourier Transform and Trigonometric Transform functionality. The purpose of these interfaces is to enable applications using FFTW to gain performance with Intel MKL without changing the program source code.&lt;br /&gt;
To include the proper header files use the compiler option&lt;br /&gt;
 -I${MKL_INC_DIR}/fftw&lt;br /&gt;
&lt;br /&gt;
If you want to link dynamically against the fftw functions you can just use the flag&lt;br /&gt;
 -mkl&lt;br /&gt;
&lt;br /&gt;
but when using static linking you have to link against the correct library in the directory &lt;br /&gt;
 ${MKL_HOME}/interfaces/&lt;br /&gt;
&lt;br /&gt;
See the corresponding webpages:&lt;br /&gt;
* [https://software.intel.com/en-us/node/471410 FFTW Interface to Intel Math Kernel Library]&lt;br /&gt;
* [https://software.intel.com/de-de/node/471414 FFTW2 Interface to Intel Math Kernel Library]&lt;br /&gt;
* [https://software.intel.com/en-us/node/471456 FFTW3 Interface to Intel Math Kernel Library]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
To help getting started we provide two C++ examples. The first one computes the square of a 2x2 matrix:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    double m[2][2] = {{2,1}, {0,2}};&lt;br /&gt;
    double c[2][2];&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 2, 2, 2, 1.0, &amp;amp;m[0][0], 2, &amp;amp;m[0][0], 2, 0.0, &amp;amp;c[0][0], 2);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; c[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And the second one does a fast Fourier transformation using the Intel MKL interface (DFTI):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;complex&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    const int N = 3;&lt;br /&gt;
    complex&amp;lt;double&amp;gt; x[N] = {2, -1, 0.5};&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Input: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    DFTI_DESCRIPTOR_HANDLE desc;&lt;br /&gt;
&lt;br /&gt;
    DftiCreateDescriptor(&amp;amp;desc, DFTI_DOUBLE, DFTI_COMPLEX, 1, N);&lt;br /&gt;
    DftiCommitDescriptor(desc);&lt;br /&gt;
    DftiComputeForward(desc, x);&lt;br /&gt;
    DftiFreeDescriptor(&amp;amp;desc);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nOutput: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nTest the interpolation function f:&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        double t = i/(double)N;&lt;br /&gt;
        complex&amp;lt;double&amp;gt; u(0, 2*M_PI*t);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; z = exp(u);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; w = 1.0/N * (x[0] + x[1]*z + x[2]*z*z);&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;f(&amp;quot; &amp;lt;&amp;lt; t &amp;lt;&amp;lt; &amp;quot;) = &amp;quot; &amp;lt;&amp;lt; w &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Numerical_libraries]][[Category:bwUniCluster]][[Category:bwForCluster_Chemistry]][[Category:BwForCluster_BinAC]][[Category:bwForCluster_MLS&amp;amp;WISO_Production]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=5388</id>
		<title>Development/MKL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=5388"/>
		<updated>2018-03-29T07:14:46Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* FFTW Interface to Intel Math Kernel Library (MKL) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=600px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description !! Content&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| numlib/mkl&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial. See [https://software.intel.com/en-us/articles/end-user-license-agreement EULA].&lt;br /&gt;
|-&lt;br /&gt;
| Citing &lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/intel-mkl Intel MKL Homepage] &amp;amp;#124; [https://software.intel.com/en-us/articles/intel-math-kernel-library-documentation Online-Documentation]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Description =&lt;br /&gt;
&#039;&#039;&#039;Intel MKL (Math Kernel Library)&#039;&#039;&#039; is a library of optimized math routines for numerical computations such as linear algebra (using BLAS, LAPACK, ScaLAPACK) and discrete Fourier Transformation.&lt;br /&gt;
With its standard interface in matrix computation and the interface of the popular fast Fourier transformation library fftw, MKL can be used to replace other libraries with minimal code changes. In fact a program which uses FFTW without MPI doesn&#039;t need to be changed at all. Just recompile it with the MKL linker flags.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation Online-Documentation]&lt;br /&gt;
&lt;br /&gt;
= Versions and Availability =&lt;br /&gt;
A list of currently available MKL modules can be obtained from the&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
[https://cis-hpc.uni-konstanz.de/prod.cis/ Cluster Information System CIS] &amp;lt;/big&amp;gt;&lt;br /&gt;
{{#widget:Iframe&lt;br /&gt;
|url=https://cis-hpc.uni-konstanz.de/prod.cis/bwUniCluster/numlib/mkl&lt;br /&gt;
|width=99%&lt;br /&gt;
|height=700&lt;br /&gt;
|border=0&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Show a list of available versions using &#039;module avail numlib/mkl&#039; on any HPC-C5 cluster.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
: EXAMPLE bwUniCluster&lt;br /&gt;
$ module avail numlib/mkl&lt;br /&gt;
------------------------------ /opt/bwhpc/common/modulefiles ------------------------------&lt;br /&gt;
numlib/mkl/10.3.12         numlib/mkl/11.1.4(default)&lt;br /&gt;
numlib/mkl/11.0.5          numlib/mkl/11.2.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Local documentation =&lt;br /&gt;
There is some information in the module help file accessible via &#039;module help numlib/mkl&#039;-&lt;br /&gt;
command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
: EXCERPT ONLY&lt;br /&gt;
$ module help numlib/mkl&lt;br /&gt;
----------- Module Specific Help for &#039;numlib/mkl/11.1.4&#039; ----------&lt;br /&gt;
This module provides the Intel(R) Math Kernel Library (MKL)&lt;br /&gt;
version 11.1.4, a fast and reliable implementation&lt;br /&gt;
of BLAS/LAPACK/FFTW (see also &#039;http://software.intel.com/en-us/intel-mkl/&#039;).&lt;br /&gt;
&lt;br /&gt;
The preferable compiler for this MKL version is &#039;compiler/intel/14.0&#039;. Linking&lt;br /&gt;
with other compilers like GNU, PGI and SUN is possible. The desired compiler&lt;br /&gt;
module (exception system GNU compiler) has to be loaded before using MKL.&lt;br /&gt;
&lt;br /&gt;
Local documentation:&lt;br /&gt;
&lt;br /&gt;
  Man pages in &#039;$MKL_MAN_DIR/man3&#039;, e.g. &#039;man dotc&#039;.&lt;br /&gt;
  firefox  $MKL_DOC_DIR/mkl_documentation.htm&lt;br /&gt;
  acroread $MKL_DOC_DIR/l_mkl_11.1.4.211.mklman.pdf&lt;br /&gt;
  acroread $MKL_DOC_DIR/l_mkl_11.1.4.211.mkl_11.1.4_lnx_userguide.pdf&lt;br /&gt;
&lt;br /&gt;
Linking examples (ifort compiler with support for blas and lapack):&lt;br /&gt;
&lt;br /&gt;
* Dynamic linking of myprog.f and parallel MKL supporting the LP64 interface:&lt;br /&gt;
&lt;br /&gt;
  ifort myprog.f -L${MKL_LIB_DIR} -I${MKL_INC_DIR}            \&lt;br /&gt;
        -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread&lt;br /&gt;
[... t.b.c. ...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After loading the module, the environment variable $MKL_DOC_DIR points to the local documentation folder. Various examples can be found in $MKLROOT/examples.&lt;br /&gt;
&lt;br /&gt;
= MKL-Specific Environments =&lt;br /&gt;
To see a list of all MKL environments set by the &#039;module load&#039;-command use &#039;env | grep MKL&#039;. Or use the command &#039;module display numlib/mkl/version&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Example &amp;lt;small&amp;gt;(bwUniCluster)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
$ env | grep MKL&lt;br /&gt;
MKLROOT=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl&lt;br /&gt;
MKL_LIB_MIC_COM=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/lib/mic&lt;br /&gt;
MKL_DOC_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/composerxe/Documentation/en_US/mkl&lt;br /&gt;
MKL_NUM_THREADS=1&lt;br /&gt;
MKL_HOME=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl&lt;br /&gt;
MKL_LIB_MIC=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/lib/mic&lt;br /&gt;
MKL_MAN_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/man/en_US&lt;br /&gt;
MKL_EXA_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/composerxe/Samples/en_US&lt;br /&gt;
MKL_STA_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/lib/intel64_static&lt;br /&gt;
MKL_INC_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/include&lt;br /&gt;
MKL_BIN_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/bin&lt;br /&gt;
MKL_LIB_DIR=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/mkl/lib/intel64&lt;br /&gt;
MKL_VERSION=11.1.4&lt;br /&gt;
MKL_LIB_COM=/opt/bwhpc/common/compiler/intel/compxe.2013.sp1.4.211/lib/intel64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling and linking =&lt;br /&gt;
Compilation is possible with both GCC and Intel compilers but it is easier for Intel compilers, so this case is explained here.&lt;br /&gt;
After loading the compiler and the library module with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load compiler/intel&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can include the MKL header file in your program:&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;#include &amp;lt;mkl.h&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Compilation is simple:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc -c example_mkl.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
When linking the program you have to tell the compiler to link against the mkl library:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc example_mkl.o -mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the -mkl switch the intel compiler automatically sets the correct linker flags but you can specify them explicitly for example to enable static linking or when non-intel compilers are used. Information about the different options can be found at https://software.intel.com/en-us/node/438568 and especially helpful is the MKL link line advisor at https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor.&lt;br /&gt;
By default $MKL_NUM_THREADS is set to 1 and so only one thread will be created, but if you feel the need to run the computation on more cores (after benchmarking) you can set $MKL_NUM_THREADS to a higher number.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== FFTW Interface to Intel Math Kernel Library (MKL) ==&lt;br /&gt;
Sometimes, [[FFTW|FFTW]] is not available on your cluster. You can use the MKL library&lt;br /&gt;
instead and include the FFTW functions, too.&lt;br /&gt;
&lt;br /&gt;
Intel Math Kernel Library (MKL) offers FFTW2 and FFTW3 interfaces to Intel MKL Fast Fourier Transform and Trigonometric Transform functionality. The purpose of these interfaces is to enable applications using FFTW to gain performance with Intel MKL without changing the program source code.&lt;br /&gt;
To include the proper header files use the compiler option&lt;br /&gt;
 -I${MKL_INC_DIR}/fftw&lt;br /&gt;
&lt;br /&gt;
If you want to link dynamically against the fftw functions you can just use the flag&lt;br /&gt;
 -mkl&lt;br /&gt;
&lt;br /&gt;
but when using static linking you have to link against the right library in the directory&lt;br /&gt;
  ${MKL_HOME}/interfaces/  &lt;br /&gt;
See the corresponding webpages:&lt;br /&gt;
* [https://software.intel.com/en-us/node/471410 FFTW Interface to Intel Math Kernel Library]&lt;br /&gt;
* [https://software.intel.com/de-de/node/471414 FFTW2 Interface to Intel Math Kernel Library]&lt;br /&gt;
* [https://software.intel.com/en-us/node/471456 FFTW3 Interface to Intel Math Kernel Library]&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
To help getting started we provide two C++ examples. The first one computes the square of a 2x2 matrix:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    double m[2][2] = {{2,1}, {0,2}};&lt;br /&gt;
    double c[2][2];&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 2, 2, 2, 1.0, &amp;amp;m[0][0], 2, &amp;amp;m[0][0], 2, 0.0, &amp;amp;c[0][0], 2);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; c[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And the second one does a fast Fourier transformation using the Intel MKL interface (DFTI):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;complex&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    const int N = 3;&lt;br /&gt;
    complex&amp;lt;double&amp;gt; x[N] = {2, -1, 0.5};&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Input: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    DFTI_DESCRIPTOR_HANDLE desc;&lt;br /&gt;
&lt;br /&gt;
    DftiCreateDescriptor(&amp;amp;desc, DFTI_DOUBLE, DFTI_COMPLEX, 1, N);&lt;br /&gt;
    DftiCommitDescriptor(desc);&lt;br /&gt;
    DftiComputeForward(desc, x);&lt;br /&gt;
    DftiFreeDescriptor(&amp;amp;desc);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nOutput: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nTest the interpolation function f:&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        double t = i/(double)N;&lt;br /&gt;
        complex&amp;lt;double&amp;gt; u(0, 2*M_PI*t);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; z = exp(u);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; w = 1.0/N * (x[0] + x[1]*z + x[2]*z*z);&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;f(&amp;quot; &amp;lt;&amp;lt; t &amp;lt;&amp;lt; &amp;quot;) = &amp;quot; &amp;lt;&amp;lt; w &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Numerical_libraries]][[Category:bwUniCluster]][[Category:bwForCluster_Chemistry]][[Category:BwForCluster_BinAC]][[Category:bwForCluster_MLS&amp;amp;WISO_Production]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Batch_Jobs_-_bwUniCluster_Features&amp;diff=5254</id>
		<title>Batch Jobs - bwUniCluster Features</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Batch_Jobs_-_bwUniCluster_Features&amp;diff=5254"/>
		<updated>2018-01-25T15:04:42Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Environment Variables for Batch Jobs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;font color=green size=+2&amp;gt;This article contains information on features of the [[Batch_Jobs|batch job system]] only applicable on bwUniCluster.&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
= Job Submission =&lt;br /&gt;
== msub Command ==&lt;br /&gt;
=== Interactive Jobs ===&lt;br /&gt;
The bwUniCluster supports the following additional msub option(s):&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | msub Options&lt;br /&gt;
|-&lt;br /&gt;
! Command line&lt;br /&gt;
! Script&lt;br /&gt;
! Purpose&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|  -I&lt;br /&gt;
| &lt;br /&gt;
|  Declares the job is to be run interactively.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== msub -l &#039;&#039;resource_list&#039;&#039; ===&lt;br /&gt;
No deviation or additional features to general [[Batch_Jobs|batch job]] setting.&lt;br /&gt;
&lt;br /&gt;
=== msub -q &#039;&#039;queues&#039;&#039; ===&lt;br /&gt;
Compute resources such as walltime, nodes and memory are restricted and must fit into &#039;&#039;&#039;queues&#039;&#039;&#039;. Since requested compute resources are NOT always automatically mapped to the correct queue class, you must add to your msub command the correct queue class. Details are:&lt;br /&gt;
&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; style=&amp;quot;background-color:#999999;padding:3px&amp;quot;| msub -q &#039;&#039;queue&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;width:10%;height=20px; text-align:left;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:10%;padding:3px&amp;quot;| &#039;&#039;queue&#039;&#039;&lt;br /&gt;
! style=&amp;quot;width:5%;padding:3px&amp;quot;| &#039;&#039;node&#039;&#039;&lt;br /&gt;
! style=&amp;quot;width:15%;padding:3px&amp;quot;| &#039;&#039;default resources&#039;&#039;&lt;br /&gt;
! style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;minimum resources&#039;&#039;&lt;br /&gt;
! style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;maximum resources&#039;&#039;&lt;br /&gt;
! style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;node access policy&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:3px ; style=&amp;quot;color:#00a000&amp;quot;| develop*&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| thin&lt;br /&gt;
| style=&amp;quot;width:15%;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:10:00,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4000mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1:&#039;&#039;ppn&#039;&#039;=16, &#039;&#039;walltime&#039;&#039;=00:30:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| shared&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px ; style=&amp;quot;color:#00a000&amp;quot; | singlenode* &lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| thin&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:30:01,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4000mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1, &#039;&#039;walltime&#039;&#039;=00:30:01&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1:&#039;&#039;ppn&#039;&#039;=16, &#039;&#039;walltime&#039;&#039;=3:00:00:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| shared&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:10%;vertical-align:top;height=20px; text-align:left;padding:3px ; style=&amp;quot;color:#00a000&amp;quot; | verylong*&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| thin&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=3:00:00:01,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4000mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1&#039;&#039;, walltime&#039;&#039;=3:00:00:01&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes=1:&#039;&#039;ppn&#039;&#039;=16, &#039;&#039;walltime&#039;&#039;=6:00:00:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| shared&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px ; style=&amp;quot;color:#36c&amp;quot; | extralong**&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| thin&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=6:00:00:01,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4000mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1&#039;&#039;, walltime&#039;&#039;=6:00:00:01&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes=1:&#039;&#039;ppn&#039;&#039;=16, &#039;&#039;walltime&#039;&#039;=14:00:00:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| singlejob (Only one job can run at a time)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px&amp;quot; | fat&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| fat&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:10:00,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=32000mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1:&#039;&#039;ppn&#039;&#039;=32, &#039;&#039;walltime&#039;&#039;=3:00:00:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| shared&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px ; style=&amp;quot;color:#00a000&amp;quot; | multinode*&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| broadwell&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:10:00,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4500mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=2&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=128:&#039;&#039;ppn&#039;&#039;=28, &#039;&#039;walltime&#039;&#039;=48:00:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| singlejob&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px&amp;quot; | dev_multinode&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| broadwell&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:10:00,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4500mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=2&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=16:&#039;&#039;ppn&#039;&#039;=28, &#039;&#039;walltime&#039;&#039;=00:30:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| singlejob&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px ; style=&amp;quot;color:#b32425&amp;quot; | special**&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| broadwell&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:30:00,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4500mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1, &#039;&#039;walltime&#039;&#039;=00:30:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1:&#039;&#039;ppn&#039;&#039;=28, &#039;&#039;walltime&#039;&#039;=48:00:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| shared&lt;br /&gt;
|- style=&amp;quot;vertical-align:top; height=20px; text-align:left&amp;quot; &lt;br /&gt;
| style=&amp;quot;width:10%;padding:3px ; style=&amp;quot;color:#b32425&amp;quot; | dev_special**&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| broadwell&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;walltime&#039;&#039;=00:10:00,&#039;&#039;procs&#039;&#039;=1, &#039;&#039;pmem&#039;&#039;=4500mb&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1, &#039;&#039;walltime&#039;&#039;=00:10:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| &#039;&#039;nodes&#039;&#039;=1:&#039;&#039;ppn&#039;&#039;=28, &#039;&#039;walltime&#039;&#039;=00:30:00&lt;br /&gt;
| style=&amp;quot;padding:3px&amp;quot;| shared&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#00a000&amp;quot;&amp;gt; *Automatic routing.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#b32425&amp;quot;&amp;gt;**Only accessible to predefined user groups. &amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#36c&amp;quot;&amp;gt; **It can be accessed only limited amount of time. Also only accessible to predefined user groups. &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;node access policy&#039;&#039;=singlejob means that, irrespective of the requested number of cores, node access is exclusive. &lt;br /&gt;
Default resources of a queue class defines walltime, processes and memory if not explicitly given with msub command. Resource list acronyms &#039;&#039;walltime&#039;&#039;, &#039;&#039;procs&#039;&#039;, &#039;&#039;nodes&#039;&#039; and &#039;&#039;ppn&#039;&#039; are described [[Batch_Jobs#msub_-l_resource_list|here]].&lt;br /&gt;
&lt;br /&gt;
==== Queue class examples ====&lt;br /&gt;
&lt;br /&gt;
* To run your batch job longer than 3 days, please use&amp;lt;span style=&amp;quot;background:#edeae2;margin:10px;padding:1px;border:1px dotted #808080&amp;quot;&amp;gt;$ msub -q verylong&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
* To run your batch job on one of the [[BwUniCluster_File_System#Components_of_bwUniCluster|fat nodes]], please use&amp;lt;span style=&amp;quot;background:#edeae2;margin:10px;padding:1px;border:1px dotted #808080&amp;quot;&amp;gt;$ msub -q fat&amp;lt;/span&amp;gt;. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Environment Variables for Batch Jobs =&lt;br /&gt;
== Additional Moab Environments ==&lt;br /&gt;
The bwUniCluster expands the [[Batch_Jobs#Moab Environment Variables|common set of MOAB environment variables]] by the following variable:&lt;br /&gt;
{| width=700px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color:#999999;padding:3px&amp;quot;| bwUniCluster specific MOAB variables&lt;br /&gt;
|-&lt;br /&gt;
! Environment variable&lt;br /&gt;
! Description&lt;br /&gt;
|- &lt;br /&gt;
| MOAB_SUBMITDIR&lt;br /&gt;
| Directory of job submission&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Additional Slurm Environments ==&lt;br /&gt;
Since the work load manager MOAB on [[bwUniCluster]] uses the resource manager SLURM, the following environment variables of SLURM are added to your environment once your job has started:&lt;br /&gt;
{| width=750px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot;background-color:#999999;padding:3px&amp;quot;| SLURM variables&lt;br /&gt;
|- style=&amp;quot;width:25%;height=20px; text-align:left;padding:3px&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:20%;height=20px; text-align:left;padding:3px&amp;quot;| Environment variables&lt;br /&gt;
! style=&amp;quot;height=20px; text-align:left;padding:3px&amp;quot;| Description&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:20%;height=20px; text-align:left;padding:3px&amp;quot; | SLURM_JOB_CPUS_PER_NODE &lt;br /&gt;
| style=&amp;quot;height=20px; text-align:left;padding:3px&amp;quot;|  Number of processes per node dedicated to the job&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:20%;height=20px; text-align:left;padding:3px&amp;quot; | SLURM_JOB_NODELIST &lt;br /&gt;
| style=&amp;quot;height=20px; text-align:left;padding:3px&amp;quot;|  List of nodes dedicated to the job&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:20%;height=20px; text-align:left;padding:3px&amp;quot; | SLURM_JOB_NUM_NODES &lt;br /&gt;
| style=&amp;quot;height=20px; text-align:left;padding:3px&amp;quot;| Number of nodes dedicated to the job&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:20%;height=20px; text-align:left;padding:3px&amp;quot; | SLURM_MEM_PER_NODE &lt;br /&gt;
| style=&amp;quot;height=20px; text-align:left;padding:3px&amp;quot;| Memory per node dedicated to the job &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:20%;height=20px; text-align:left;padding:3px&amp;quot; | SLURM_NPROCS&lt;br /&gt;
| style=&amp;quot;height=20px; text-align:left;padding:3px&amp;quot;|  Total number of processes dedicated to the job &lt;br /&gt;
|}&lt;br /&gt;
See also:&lt;br /&gt;
* [[Batch_Jobs#Batch_Job_.28Slurm.29_Variables_:_bwUniCluster|List of almost all important Slurm environments]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Interactive Job Monitoring per Node ==&lt;br /&gt;
By default nodes are not used exclusive unless they are requested with &#039;&#039;-l naccesspolicy=singlejob&#039;&#039; as described [[Batch_Jobs#msub_-l_resource_list|here]]. &amp;lt;br&amp;gt;&lt;br /&gt;
If a Job runs exclusive on one node you may do a ssh login to that node. The ssh access will be limited by the set walltime. To get the nodes of your job need to read the environment variable SLURM_JOB_NODELIST during the runtime of the job. It contains all nodes in a shortened way e.g. &#039;&#039;uc1n[344,386]&#039;&#039; or &#039;&#039;uc1n[344-345]&#039;&#039;. To expand this string to &#039;&#039;uc1n344 uc1n345&#039;&#039; you can you can use the command expandnodes like:&lt;br /&gt;
&lt;br /&gt;
  expandnodes $SLURM_JOB_NODELIST &amp;gt; nodelist&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Intel MPI parallel Programs =&lt;br /&gt;
== Intel MPI without Multithreading ==&lt;br /&gt;
MPI parallel programs run faster than serial programs on multi CPU and multi core systems. N-fold spawned processes of the MPI program, i.e., &#039;&#039;&#039;MPI tasks&#039;&#039;&#039;,  run simultaneously and communicate via the Message Passing Interface (MPI) paradigm. MPI tasks do not share memory but can be spawned over different nodes. &lt;br /&gt;
&lt;br /&gt;
Generate a wrapper script for &#039;&#039;&#039;Intel MPI&#039;&#039;&#039;, &#039;&#039;job_impi.sh&#039;&#039; containing the following lines:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
module load mpi/impi/&amp;lt;placeholder_for_version&amp;gt;&lt;br /&gt;
mpiexec.hydra -bootstrap slurm my_par_program&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;font color=red&amp;gt;&#039;&#039;&#039;Attention:&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Do &#039;&#039;&#039;NOT&#039;&#039;&#039; add mpirun options &#039;&#039;-n &amp;lt;number_of_processes&amp;gt;&#039;&#039; or any other option defining processes or nodes, since MOAB instructs mpirun about number of processes and node hostnames. &lt;br /&gt;
Moreover, replace &amp;lt;placeholder_for_version&amp;gt; with the wished version of &#039;&#039;&#039;Intel MPI&#039;&#039;&#039; to enable the MPI environment.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Launching and running 32 Intel MPI tasks on 4 nodes, each requiring 1000 MByte, and running for 5 hours, execute:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ msub -q multinode -l nodes=4:ppn=16,pmem=1000mb,walltime=05:00:00 job_impi.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intel MPI with Multithreading ==&lt;br /&gt;
Multithreaded + MPI parallel programs operate faster than serial programs on multi CPUs with multiple cores. All threads of one process share resources such as memory. On the contrary MPI tasks do not share memory but can be spawned over different nodes.  &lt;br /&gt;
&lt;br /&gt;
Multiple Intel MPI tasks must be launched by the MPI parallel program &#039;&#039;&#039;mpiexec.hydra&#039;&#039;&#039;. For multithreaded programs based on &#039;&#039;&#039;Open&#039;&#039;&#039; &#039;&#039;&#039;M&#039;&#039;&#039;ulti-&#039;&#039;&#039;P&#039;&#039;&#039;rocessing (OpenMP) number of threads are defined by the environment variable OMP_NUM_THREADS. By default this variable is set to 1 (OMP_NUM_THREADS=1).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Intel MPI&#039;&#039;&#039; a job-script to submit a batch job called &#039;&#039;job_impi_omp.sh&#039;&#039; that runs a Intel MPI program with 8 tasks and a tenfold threaded program &#039;&#039;impi_omp_program&#039;&#039; requiring 32000 MByte of total physical memory per task and total wall clock time of 6 hours looks like: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--b)--&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#MSUB -l nodes=4:ppn=20&lt;br /&gt;
#MSUB -l walltime=06:00:00&lt;br /&gt;
#MSUB -l pmem=3200mb&lt;br /&gt;
#MSUB -v MPI_MODULE=mpi/impi&lt;br /&gt;
#MSUB -v OMP_NUM_THREADS=10&lt;br /&gt;
#MSUB -v MPIRUN_OPTIONS=&amp;quot;-binding &amp;quot;domain=omp&amp;quot; -print-rank-map -ppn 2 -envall&amp;quot;&lt;br /&gt;
#MSUB -v EXE=./impi_omp_program&lt;br /&gt;
#MSUB -N test_impi_omp&lt;br /&gt;
&lt;br /&gt;
#If using more than one MPI task per node please set&lt;br /&gt;
export KMP_AFFINITY=scatter&lt;br /&gt;
#export KMP_AFFINITY=verbose,scatter  prints messages concerning the supported affinity &lt;br /&gt;
#KMP_AFFINITY Description: https://software.intel.com/en-us/node/524790#KMP_AFFINITY_ENVIRONMENT_VARIABLE&lt;br /&gt;
 &lt;br /&gt;
module load ${MPI_MODULE}&lt;br /&gt;
TASK_COUNT=$((${MOAB_PROCCOUNT}/${OMP_NUM_THREADS}))&lt;br /&gt;
echo &amp;quot;${EXE} running on ${MOAB_PROCCOUNT} cores with ${TASK_COUNT} MPI-tasks and ${OMP_NUM_THREADS} threads&amp;quot;&lt;br /&gt;
startexe=&amp;quot;mpiexec.hydra -bootstrap slurm ${MPIRUN_OPTIONS} -n ${TASK_COUNT} ${EXE}&amp;quot;&lt;br /&gt;
echo $startexe&lt;br /&gt;
exec $startexe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Using Intel compiler the environment variable KMP_AFFINITY switches on binding of threads to specific cores. If you only run one MPI task per node please set KMP_AFFINITY=compact,1,0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Execute the script &#039;&#039;&#039;job_impi_omp.sh&#039;&#039;&#039; adding the queue class &#039;&#039;multinode&#039;&#039; to your msub command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ msub -q multinode job_impi_omp.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The mpirun option &#039;&#039;-print-rank-map&#039;&#039; shows the bindings between MPI tasks and nodes (not very beneficial). The option &#039;&#039;-binding&#039;&#039; binds MPI tasks (processes) to a particular processor; &#039;&#039;domain=omp&#039;&#039; means that the domain size is determined by the number of threads. In the above examples (2 MPI tasks per node) you could also choose &#039;&#039;-binding &amp;quot;cell=unit;map=bunch&amp;quot;&#039;&#039;; this binding maps one MPI process to each socket. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
= Interactive Jobs =&lt;br /&gt;
Interactive jobs on bwUniCluster [[BwUniCluster_User_Access#Allowed_activities_on_login_nodes|must &#039;&#039;&#039;NOT&#039;&#039;&#039; run on the logins nodes]], however resources for interactive jobs can be requested using msub. Considering a serial application with a graphical frontend that requires 5000 MByte of memory and limiting the interactive run to 2 hours execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ msub  -I  -V  -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The option -V defines that all environment variables are exported to the compute node of the interactive session.&lt;br /&gt;
After execution of this command &#039;&#039;&#039;DO NOT CLOSE&#039;&#039;&#039; your current terminal session but wait until the queueing system MOAB has granted you the requested resources on the compute system. Once granted you will be automatically logged on the dedicated resource. Now you have an interactive session with 1 core and 5000 MByte of memory on the compute system for 2 hours. Simply execute now your application:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd to_path&lt;br /&gt;
$ ./application&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that, once the walltime limit has been reached you will be automatically logged out of the compute system.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Chain Jobs ==&lt;br /&gt;
The CPU time requirements of many applications exceed the limits of the job classes. In those situations it is recommended to solve the problem by a job chain. A job chain is a sequence of jobs where each job automatically starts its successor. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
##################################################&lt;br /&gt;
## simple MOAB submitter script to setup        ## &lt;br /&gt;
## a chain of jobs for bwUniCluster             ##&lt;br /&gt;
##################################################&lt;br /&gt;
## ver.  : 2015-09-17, KIT, SCC&lt;br /&gt;
&lt;br /&gt;
## Define maximum number of jobs via positional parameter 1, default is 5&lt;br /&gt;
max_nojob=${1:-5}&lt;br /&gt;
&lt;br /&gt;
## Define your jobscript (e.g. &amp;quot;~/chain_link_job.sh&amp;quot;)&lt;br /&gt;
chain_link_job=${PWD}/chain_link_job.sh&lt;br /&gt;
&lt;br /&gt;
## Define type of dependency via positional parameter 2, default is &#039;afterok&#039;&lt;br /&gt;
dep_type=&amp;quot;${2:-afterok}&amp;quot;&lt;br /&gt;
## -&amp;gt; List of all dependencies:&lt;br /&gt;
## http://docs.adaptivecomputing.com/suite/8-0/enterprise/help.htm#topics/\&lt;br /&gt;
##    moabWorkloadManager/topics/jobAdministration/jobdependencies.html&lt;br /&gt;
&lt;br /&gt;
myloop_counter=1&lt;br /&gt;
## Submit loop&lt;br /&gt;
while [ ${myloop_counter} -le ${max_nojob} ] ; do&lt;br /&gt;
   ##&lt;br /&gt;
   ## Differ msub_opt depending on chain link number&lt;br /&gt;
   if [ ${myloop_counter} -eq 1 ] ; then&lt;br /&gt;
      msub_opt=&amp;quot;&amp;quot;&lt;br /&gt;
   else&lt;br /&gt;
      ## Attention: do NOT use &#039;-W depend&#039; together with msub&lt;br /&gt;
      msub_opt=&amp;quot;-l depend=${dep_type}:${jobID}&amp;quot;&lt;br /&gt;
   fi&lt;br /&gt;
   ##&lt;br /&gt;
   ## Print current iteration number and msub command&lt;br /&gt;
   echo &amp;quot;Chain job iteration = ${myloop_counter}&amp;quot;&lt;br /&gt;
   echo &amp;quot;   msub -v myloop_counter=${myloop_counter} ${msub_opt} ${chain_link_job}&amp;quot;&lt;br /&gt;
   ## Store job ID for next iteration by storing output of msub command with empty lines&lt;br /&gt;
   jobID=$(msub -v myloop_counter=${myloop_counter} ${msub_opt} ${chain_link_job} 2&amp;gt;&amp;amp;1 | sed &#039;/^$/d&#039;)&lt;br /&gt;
   ##   &lt;br /&gt;
   ## Check if ERROR occurred&lt;br /&gt;
   if [[ &amp;quot;${jobID}&amp;quot; =~ &amp;quot;ERROR&amp;quot; ]] ; then&lt;br /&gt;
      echo &amp;quot;   -&amp;gt; submission failed!&amp;quot; ; exit 1&lt;br /&gt;
   else&lt;br /&gt;
      echo &amp;quot;   -&amp;gt; job number = ${jobID}&amp;quot;&lt;br /&gt;
   fi&lt;br /&gt;
   ##&lt;br /&gt;
   ## Increase counter&lt;br /&gt;
   let myloop_counter+=1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwUniCluster|Batch Jobs - bwUniCluster features]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=5253</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=5253"/>
		<updated>2018-01-24T10:03:32Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Implicit Multithreading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=600px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description !! Content&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial. See [http://www.wolfram.com/mathematica/pricing/ Mathematica Pricing].&lt;br /&gt;
|-&lt;br /&gt;
| Citing &lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage] &amp;amp;#124; [http://www.wolfram.com/support/?source=nav Documentation]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]])&lt;br /&gt;
|-&lt;br /&gt;
| Comments&lt;br /&gt;
| Mathematica might not be available on all locations and clusters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Description == &lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features such as powerful visualization and application specific functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Versions and Availability ==&lt;br /&gt;
A list of versions currently available on all bwHPC-C5-Clusters can be obtained from the&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[https://cis-hpc.uni-konstanz.de/prod.cis/ Cluster Information System CIS]&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
{{#widget:Iframe&lt;br /&gt;
|url=https://cis-hpc.uni-konstanz.de/prod.cis/bwUniCluster/math/mathematica&lt;br /&gt;
|width=90%&lt;br /&gt;
|height=330&lt;br /&gt;
|border=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Loading =&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
= General Usage =&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
*Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ mathematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Interactive with command line:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. Looks like interactive with command line but input is taken from script.m:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math &amp;lt; script.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. You have to explicitly specify what you want to print&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math -script script.m&amp;lt;/pre&amp;gt;However, the output is done in InputForm which is suitable for input in other Mathematica calculations but if you want pretty output you have to change the output format to OutputForm like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;SetOptions[$Output, FormatType -&amp;gt; OutputForm]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/language/ Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
= Parallel Computation =&lt;br /&gt;
== Implicit Multithreading ==&lt;br /&gt;
Some functions are already internally multithreaded by using the built-in MKL library. To benefit from this you have to set the environment variable MKL_NUM_THREADS to the number of cores you requested for your job. The effect can be seen in the following example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a = RandomReal[{1, 2}, {5000, 5000}]&lt;br /&gt;
b = RandomReal[1, {5000}]&lt;br /&gt;
&lt;br /&gt;
Print[ First[AbsoluteTiming[LinearSolve[a, b]]] ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When you call this example in a job file with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load math/mathematica&lt;br /&gt;
export MKL_NUM_THREADS=2&lt;br /&gt;
math -script example.m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you should see that it executes about twice as fast as without the setting of MKL_NUM_THREADS.&lt;br /&gt;
&lt;br /&gt;
If you want to turn on MKL threading just for a specific part of the code you can use the command (16-core example)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SetSystemOptions[&amp;quot;ParallelOptions&amp;quot; -&amp;gt; &amp;quot;MKLThreadNumber&amp;quot; -&amp;gt; 16]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to turn on multithreading and later turn it off (e.g. because of memory requirements) with a corresponding call to SetSystemOptions.&lt;br /&gt;
&lt;br /&gt;
== ParallelTable ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up time-consuming computations, but it should also be used for multiple computations with different input data files (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the correct amount of processors in your [[Batch Jobs]] script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to adjust your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of a numerical solution for the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.4}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
SetOptions[$Output, FormatType -&amp;gt; OutputForm]    (* better output when called with -script *)&lt;br /&gt;
Print[ Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]] ]    (* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ParallelSubmit ==&lt;br /&gt;
Mathematica features some further functions similar to ParallelTable which are documented on the [http://reference.wolfram.com/mathematica/guide/ParallelComputing.html Mathematica parallel computing webpage] from Wolfram. One such function is ParallelSubmit which can be used to start two (or more) completely unrelated functions in parallel. But bear in mind that the functions should have similar running times because the scheduler reserves the requested resources for the runtime of the whole job. The following code shows how to pack two 1-core jobs into one 2-core job.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f[r_] := (&lt;br /&gt;
    d = 0.000001;&lt;br /&gt;
    {time, sol} = Timing[NDSolve[{x&#039;[t] == r*x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;3, MaxSteps-&amp;gt;10000000]];&lt;br /&gt;
    {time, x[1/d]/.sol[[1]]}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
g[r_] := (&lt;br /&gt;
    {time, sol} = Timing[NDSolve[{y&#039;&#039;[t] + (r+1)*y&#039;[t] + r*y[t] == 0, y[0] == 1, y&#039;[0] == 0},  y, {t, 0, 30}, MaxStepSize-&amp;gt;0.000002, MaxSteps-&amp;gt;10000000000]];&lt;br /&gt;
    {time, y[30]/.sol[[1]]}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kernel1 := (&lt;br /&gt;
    file = OpenWrite[&amp;quot;out1.txt&amp;quot;, FormatType -&amp;gt; OutputForm];&lt;br /&gt;
    $Output = {file};&lt;br /&gt;
    Print[f[1.2]];&lt;br /&gt;
    Close[file];&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kernel2 := (&lt;br /&gt;
    file = OpenWrite[&amp;quot;out2.txt&amp;quot;, FormatType -&amp;gt; OutputForm];&lt;br /&gt;
    $Output = {file};&lt;br /&gt;
    Print[g[1000]];&lt;br /&gt;
    Close[file];&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
LaunchKernels[2]&lt;br /&gt;
DistributeDefinitions[kernel1, kernel2]&lt;br /&gt;
e = {ParallelSubmit[kernel1], ParallelSubmit[kernel2]}&lt;br /&gt;
WaitAll[e]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The helper functions kernel1 and kernel2 get started in different threads and then they execute f and g. The output of these functions is redirected to different files so the results can clearly be distinguished and examined as soon as one function is done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]] [[Category:bwUniCluster]][[Category:bwForCluster_MLS&amp;amp;WISO_Production]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=5252</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=5252"/>
		<updated>2018-01-19T08:07:13Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Parallel Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=600px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description !! Content&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial. See [http://www.wolfram.com/mathematica/pricing/ Mathematica Pricing].&lt;br /&gt;
|-&lt;br /&gt;
| Citing &lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage] &amp;amp;#124; [http://www.wolfram.com/support/?source=nav Documentation]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]])&lt;br /&gt;
|-&lt;br /&gt;
| Comments&lt;br /&gt;
| Mathematica might not be available on all locations and clusters.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Description == &lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features such as powerful visualization and application specific functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Versions and Availability ==&lt;br /&gt;
A list of versions currently available on all bwHPC-C5-Clusters can be obtained from the&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[https://cis-hpc.uni-konstanz.de/prod.cis/ Cluster Information System CIS]&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
{{#widget:Iframe&lt;br /&gt;
|url=https://cis-hpc.uni-konstanz.de/prod.cis/bwUniCluster/math/mathematica&lt;br /&gt;
|width=90%&lt;br /&gt;
|height=330&lt;br /&gt;
|border=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Loading =&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
= General Usage =&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
*Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ mathematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Interactive with command line:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. Looks like interactive with command line but input is taken from script.m:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math &amp;lt; script.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. You have to explicitly specify what you want to print&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math -script script.m&amp;lt;/pre&amp;gt;However, the output is done in InputForm which is suitable for input in other Mathematica calculations but if you want pretty output you have to change the output format to OutputForm like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;SetOptions[$Output, FormatType -&amp;gt; OutputForm]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/language/ Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
= Parallel Computation =&lt;br /&gt;
== Implicit Multithreading ==&lt;br /&gt;
Some functions are already internally multithreaded by using the built-in MKL library. To benefit from this you have to set the environment variable MKL_NUM_THREADS to the number of cores you requested for your job. The effect can be seen in the following example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a = RandomReal[{1, 2}, {5000, 5000}]&lt;br /&gt;
b = RandomReal[1, {5000}]&lt;br /&gt;
&lt;br /&gt;
Print[ First[AbsoluteTiming[LinearSolve[a, b]]] ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When you call this example in a job file with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module load math/mathematica&lt;br /&gt;
export MKL_NUM_THREADS=2&lt;br /&gt;
math -script example.m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you should see that it executes about twice as fast as without the setting of MKL_NUM_THREADS.&lt;br /&gt;
&lt;br /&gt;
== ParallelTable ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up time-consuming computations, but it should also be used for multiple computations with different input data files (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the correct amount of processors in your [[Batch Jobs]] script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to adjust your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of a numerical solution for the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.4}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
SetOptions[$Output, FormatType -&amp;gt; OutputForm]    (* better output when called with -script *)&lt;br /&gt;
Print[ Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]] ]    (* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ParallelSubmit ==&lt;br /&gt;
Mathematica features some further functions similar to ParallelTable which are documented on the [http://reference.wolfram.com/mathematica/guide/ParallelComputing.html Mathematica parallel computing webpage] from Wolfram. One such function is ParallelSubmit which can be used to start two (or more) completely unrelated functions in parallel. But bear in mind that the functions should have similar running times because the scheduler reserves the requested resources for the runtime of the whole job. The following code shows how to pack two 1-core jobs into one 2-core job.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f[r_] := (&lt;br /&gt;
    d = 0.000001;&lt;br /&gt;
    {time, sol} = Timing[NDSolve[{x&#039;[t] == r*x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;3, MaxSteps-&amp;gt;10000000]];&lt;br /&gt;
    {time, x[1/d]/.sol[[1]]}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
g[r_] := (&lt;br /&gt;
    {time, sol} = Timing[NDSolve[{y&#039;&#039;[t] + (r+1)*y&#039;[t] + r*y[t] == 0, y[0] == 1, y&#039;[0] == 0},  y, {t, 0, 30}, MaxStepSize-&amp;gt;0.000002, MaxSteps-&amp;gt;10000000000]];&lt;br /&gt;
    {time, y[30]/.sol[[1]]}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kernel1 := (&lt;br /&gt;
    file = OpenWrite[&amp;quot;out1.txt&amp;quot;, FormatType -&amp;gt; OutputForm];&lt;br /&gt;
    $Output = {file};&lt;br /&gt;
    Print[f[1.2]];&lt;br /&gt;
    Close[file];&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kernel2 := (&lt;br /&gt;
    file = OpenWrite[&amp;quot;out2.txt&amp;quot;, FormatType -&amp;gt; OutputForm];&lt;br /&gt;
    $Output = {file};&lt;br /&gt;
    Print[g[1000]];&lt;br /&gt;
    Close[file];&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
LaunchKernels[2]&lt;br /&gt;
DistributeDefinitions[kernel1, kernel2]&lt;br /&gt;
e = {ParallelSubmit[kernel1], ParallelSubmit[kernel2]}&lt;br /&gt;
WaitAll[e]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The helper functions kernel1 and kernel2 get started in different threads and then they execute f and g. The output of these functions is redirected to different files so the results can clearly be distinguished and examined as soon as one function is done.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]] [[Category:bwUniCluster]][[Category:bwForCluster_MLS&amp;amp;WISO_Production]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BWUniCluster_User_Access_Members_Uni_Ulm&amp;diff=4824</id>
		<title>BWUniCluster User Access Members Uni Ulm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BWUniCluster_User_Access_Members_Uni_Ulm&amp;diff=4824"/>
		<updated>2017-04-19T06:07:50Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Login prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Access to bwUniCluster/bwForCluster for members of Ulm University =&lt;br /&gt;
&lt;br /&gt;
== Login prerequisites == &lt;br /&gt;
&lt;br /&gt;
* A valid kiz account is required for access to bwUniCluster and bwForCluster. &lt;br /&gt;
&lt;br /&gt;
* As part of the login procedure, you will be directed to a registration page. There you find the item &amp;quot;User Properties&amp;quot;  under which your data that will be transferred from Ulm University to the cluster is shown including your entitlements. Make sure that you have the following entitlement:&amp;lt;pre&amp;gt;http://bwidm.de/entitlement/bwUniCluster&amp;lt;/pre&amp;gt; or &amp;lt;pre&amp;gt;http://bwidm.de/entitlement/bwForCluster&amp;lt;/pre&amp;gt;   If not, please contact the [https://www.uni-ulm.de/einrichtungen/kiz/weiteres/formulare/helpdesk/ Uni Ulm Helpdesk] to receive the entitlement.&lt;br /&gt;
&lt;br /&gt;
== kiz Account ==&lt;br /&gt;
&lt;br /&gt;
Enrolled students,  faculty and staff members of Ulm University&lt;br /&gt;
usually have a kiz account granting access to kiz compute resources such as the bwUniCluster. In case you don&#039;t have such an account please visit the related kiz web pages: https://www.uni-ulm.de/einrichtungen/kiz/weiteres/formulare/&lt;br /&gt;
&lt;br /&gt;
== Terms of Use ==&lt;br /&gt;
&lt;br /&gt;
As with any other kiz service, users of bwUniCluster must strictly adhere to the [http://www.uni-ulm.de/fileadmin/website_uni_ulm/kiz/org/kiz-bo.pdf kiz terms of use].&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster_2.0_User_Access&amp;diff=4823</id>
		<title>BwUniCluster 2.0 User Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster_2.0_User_Access&amp;diff=4823"/>
		<updated>2017-04-19T05:54:22Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{| style=&amp;quot;border-style: solid; border-width: 1px&amp;quot;&lt;br /&gt;
! Navigation: [[BwHPC_Best_Practices_Repository|bwHPC BPR]] / [[BwUniCluster_User_Guide|bwUniCluster]] &lt;br /&gt;
|}--&amp;gt;&lt;br /&gt;
[[bwUniCluster]] is Baden-Württemberg&#039;s general purpose tier 3 high performance computing (HPC)&lt;br /&gt;
cluster co-financed by Baden-Württemberg&#039;s ministry of science, research and arts and &lt;br /&gt;
the shareholders:&lt;br /&gt;
* Albert Ludwig University of Freiburg&lt;br /&gt;
* Eberhard Karls University, Tübingen&lt;br /&gt;
* Karlsruhe Institute of Technology (KIT)&lt;br /&gt;
* Ruprecht-Karls-Universität Heidelberg&lt;br /&gt;
* Ulm University&lt;br /&gt;
* University of Hohenheim&lt;br /&gt;
* University of Konstanz&lt;br /&gt;
* University of Mannheim&lt;br /&gt;
* University of Stuttgart&lt;br /&gt;
* HAW BW e.V. (an association of university of applied sciences in Baden-Württemberg) &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To &#039;&#039;&#039;log on&#039;&#039;&#039; [[bwUniCluster]] a user account is required. All members of  the shareholder&lt;br /&gt;
universities can apply for an account.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%; border-spacing: 5px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;text-align:left; color:#000;vertical-align:top;&amp;quot; |__TOC__ &lt;br /&gt;
|&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:bwUniCluster_17Jan2014_p044-rot_t10.10.00.jpg|center|border|250px|bwUniCluster wiring by Holger Obermaier, copyright: KIT (SCC)]] &amp;lt;span style=&amp;quot;font-size:80%&amp;quot;&amp;gt;bwUniCluster wiring © KIT (SCC)&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Registration =&lt;br /&gt;
&lt;br /&gt;
Granting access and issuing a user account for &#039;&#039;&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&#039;&#039; requires the registration at the KIT service website [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu] (step B). However, this registration depends on the &#039;&#039;&#039;bwUniCluster entitlement&#039;&#039;&#039; issued by your university (step A).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step A: bwUniCluster entitlement for registration ==&lt;br /&gt;
Each university issues the bwUniCluster entitlement &#039;&#039;&#039;only&#039;&#039;&#039; for their own members. Details on the issuing process and/or the entitlement application forms are listed hereafter:  &lt;br /&gt;
&lt;br /&gt;
* [[BwCluster_User_Access_Uni_Freiburg|Albert Ludwig University of Freiburg]]&lt;br /&gt;
* [http://www.zdv.uni-tuebingen.de/dienstleistungen/computing/zugang-zu-den-ressourcen.html Eberhard Karls University Tübingen]&lt;br /&gt;
* [http://www.scc.kit.edu/downloads/sdo/Antrag_Benutzernummer_bwUniCluster.pdf Karlsruhe Institute of Technology (KIT)]&lt;br /&gt;
* [[‎BWUniCluster_User_Access_Members_Uni_Heidelberg|Ruprecht-Karls-Universität Heidelberg]]&lt;br /&gt;
* [[BWUniCluster_User_Access_Members_Uni_Ulm|Ulm University]]&lt;br /&gt;
* [http://www.kim.uni-hohenheim.de/bwhpc University of Hohenheim]&lt;br /&gt;
* [[BWUniCluster_User_Access_Members_Uni_Konstanz|University of Konstanz]]&lt;br /&gt;
* [[BWUniCluster_User_Access_Members_Uni_Mannheim|University of Mannheim]]&lt;br /&gt;
* [https://www.hlrs.de/solutions-services/academic-users/bwunicluster-access/ University of Stuttgart]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step B: Web Registration ==&lt;br /&gt;
After step A, i.e., after issueing the bwUniCluster entitlement, please visit: &lt;br /&gt;
* [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu] &lt;br /&gt;
*# Select your home organization from the list and click &#039;&#039;&#039;Proceed&#039;&#039;&#039;&lt;br /&gt;
*# You will be directed to the &#039;&#039;Identity Provider&#039;&#039; of your home organisation  &lt;br /&gt;
*# Enter your home-organisational user ID / username  and your home-organisational password and click &#039;&#039;&#039;Login&#039;&#039;&#039; button&lt;br /&gt;
*# You will be redirected back to the registration website [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu/] &lt;br /&gt;
*# &amp;lt;div&amp;gt;Select unter &#039;&#039;&#039;The following services are available&#039;&#039;&#039; the service &#039;&#039;&#039;bwUniCluster&#039;&#039;&#039; &amp;lt;br&amp;gt;[[File:bwRegWebApp_avail_services_pic01.png|center|border|]]&amp;lt;/div&amp;gt;&lt;br /&gt;
*# Click &#039;&#039;&#039;Register&#039;&#039;&#039;&lt;br /&gt;
*# Finally&lt;br /&gt;
*#* for all non-KIT members &#039;&#039;&#039;mandatorily&#039;&#039;&#039; set a service password for authentication on bwUniCluster&lt;br /&gt;
*#* for KIT members &#039;&#039;&#039;optionally&#039;&#039;&#039; set a service password for authentication on bwUniCluster&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- old description&lt;br /&gt;
** login with your home-organizational user account and user password,&lt;br /&gt;
** select service &#039;&#039;&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&#039;&#039; (on the left side) and &lt;br /&gt;
** follow the instructions to complete the registration.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step B: &amp;lt;span style=&amp;quot;color:red;font-size:100%;font-weight:bold&amp;quot;&amp;gt;Amendment:&amp;lt;/span&amp;gt; bwUniCluster questionnaire ==&lt;br /&gt;
Starting June 1st, 2015, usage of bwUniCluster mandatorily requires the&lt;br /&gt;
questionnaire&lt;br /&gt;
&lt;br /&gt;
   https://www.bwhpc-c5.de/en/ZAS/bwunicluster_survey.php&lt;br /&gt;
&lt;br /&gt;
to be answered. The input is solely used for the&lt;br /&gt;
elaboration of future support activities and for planning future HPC&lt;br /&gt;
resources. From June 1st, 2015, login to bwUniCluster is only permitted&lt;br /&gt;
to users who have already answered the questionnaire. &#039;&#039;&#039;&#039;&#039;Exception&#039;&#039;&#039;: For the first 14 days after the web registration login to bwUniCluster is permitted without participation in the questionnaire.&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changing Password ==&lt;br /&gt;
By default, for KIT members your bwUniCluster &#039;&#039;&#039;password&#039;&#039;&#039; to log on matches  that one of your KIT &lt;br /&gt;
account, while for all non-KIT members your bwUniCluster &#039;&#039;&#039;password&#039;&#039;&#039; is that one you saved during the web registration (compare step 7 of chapter 1.2). &lt;br /&gt;
At any time, you can set a new bwUniCluster password via the registration website [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu] by carrying out the following steps:&lt;br /&gt;
# visit [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu] and select your home organization &lt;br /&gt;
# authenticate yourself via your home-organizational user id / username and your home-organizational password&lt;br /&gt;
# find on the left side &#039;&#039;&#039;bwUniCluster&#039;&#039;&#039; and select &#039;&#039;&#039;Set Service Password&#039;&#039;&#039;&lt;br /&gt;
# set new service, i.e. bwUniCluster, password, repeat it and click &#039;&#039;&#039;Save&#039;&#039;&#039; button.&lt;br /&gt;
# the page answers e.g. &amp;quot;Das Passwort wurde bei dem Dienst geändert&amp;quot; (&amp;quot;password has been changed&amp;quot;)&lt;br /&gt;
# proceed to log in using the new password in the next step&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Contact ==&lt;br /&gt;
If you have questions or problems concerning bwUniCluster registration, please [[Registration_Support_-_bwUniCluster|contact your local hotline]]. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Login =&lt;br /&gt;
After finishing the web registration &#039;&#039;&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&#039;&#039; is ready for your &#039;&#039;&#039;SSH&#039;&#039;&#039; based login.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&#039;&#039; has two dedicated login nodes. The selection of the login node is done automatically and is based on a round-robin scheduling. Logging in another time the session might run &lt;br /&gt;
on the other login node.&lt;br /&gt;
&lt;br /&gt;
Only the secure shell &#039;&#039;&#039;SSH&#039;&#039;&#039; is allowed to login. Other protocols like &#039;&#039;&#039;telnet&#039;&#039;&#039; or &#039;&#039;&#039;rlogin&#039;&#039;&#039;&lt;br /&gt;
are not allowed for security reasons.&lt;br /&gt;
&lt;br /&gt;
A connection to &#039;&#039;&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&#039;&#039; can be established by the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh &amp;lt;UserID&amp;gt;@bwunicluster.scc.kit.edu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using &#039;&#039;&#039;OpenSSH&#039;&#039;&#039; (usually installed on Linux based systems) and you want to use a GUI-based application on &#039;&#039;&#039;&#039;&#039;bwUniCluster&#039;&#039;&#039;&#039;&#039; you should use the &lt;br /&gt;
&#039;&#039;ssh&#039;&#039; command with the option &#039;&#039;-X&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -X &amp;lt;UserID&amp;gt;@bwunicluster.scc.kit.edu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hints for using PuTTY ==&lt;br /&gt;
Start PuTTY, fill in at window &#039;&#039;PuTTY Configuration&#039;&#039; under category &#039;&#039;Session&#039;&#039; the following fields &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host Name        : &amp;lt;UserID&amp;gt;@bwunicluster.scc.kit.edu&lt;br /&gt;
Port                  : 22&lt;br /&gt;
Connection type : SSH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and click on &#039;&#039;Open&#039;&#039;, enter your password and accept adding &#039;&#039;host key&#039;&#039;. Note that you can also name the configured session via &#039;&#039;Save&#039;&#039; and load it later via the given name. &lt;br /&gt;
&lt;br /&gt;
== Hints for using WinSCP ==&lt;br /&gt;
&lt;br /&gt;
Start WinSCP, fill in the following fields:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File Protocol    : SCP&lt;br /&gt;
Host name        : bwunicluster.scc.kit.edu&lt;br /&gt;
Port             : 22&lt;br /&gt;
User name        : &amp;lt;UserID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and click on &#039;Login&#039; and enter your password. Note that you can also name the configured session via &#039;&#039;Save&#039;&#039; and load it later via the given name.&lt;br /&gt;
&lt;br /&gt;
== About UserID / Username ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;UserID&amp;gt;&#039;&#039;&#039; of the ssh command is a placeholder for your &#039;&#039;&#039;&#039;&#039;username&#039;&#039;&#039;&#039;&#039; at your home &lt;br /&gt;
organization together with a &#039;&#039;&#039;&#039;&#039;prefix&#039;&#039;&#039;&#039;&#039; as followed:&lt;br /&gt;
&lt;br /&gt;
{| width=450px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Home organization !! &amp;lt;UserID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Universität Freiburg || &#039;&#039;fr_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Universität Heidelberg || &#039;&#039;hd_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Universität Hohenheim || &#039;&#039;ho_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| KIT || username &#039;&#039;(without any prefix)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Universität Konstanz || &#039;&#039;kn_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Universität Mannheim || &#039;&#039;ma_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Universität Stuttgart ||  &#039;&#039;st_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Universität Tübingen || &#039;&#039;tu_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Universität Ulm  || &#039;&#039;ul_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Aalen || &#039;&#039;aa_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Albstadt-Sigmaringen || &#039;&#039;as_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Esslingen || &#039;&#039;es_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Furtwangen || &#039;&#039;hf_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Karlsruhe || &#039;&#039;hk_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| HTWG Konstanz || &#039;&#039;ht_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Reutlingen || &#039;&#039;hr_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Rottenburg || &#039;&#039;ro_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule für Technik Stuttgart || &#039;&#039;hs_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
| Hochschule Ulm || &#039;&#039;hu_&#039;&#039;username&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Allowed activities on login nodes ==&lt;br /&gt;
&lt;br /&gt;
The login nodes of bwUniCluster are the access point to the compute system and to your bwUniCluster $HOME directory. The login nodes are shared with all the users of bwUniCluster. Therefore, your activities on the login nodes are limited to primarily set up your batch jobs. Your activities may also be:&lt;br /&gt;
* &#039;&#039;&#039;short&#039;&#039;&#039; compilation of your program code and&lt;br /&gt;
* &#039;&#039;&#039;short&#039;&#039;&#039; pre- and postprocessing of your batch jobs.&lt;br /&gt;
&lt;br /&gt;
To guarantee usability for all the users of bwUniCluster &amp;lt;span style=&amp;quot;color:red;font-size:100%;&amp;quot;&amp;gt;&#039;&#039;&#039;you must not run your compute jobs on the login nodes&#039;&#039;&#039;&amp;lt;/span&amp;gt;. Compute jobs must be submitted to the&lt;br /&gt;
[[bwUniCluster Batch Jobs|queueing system]]. Any compute job running on the login nodes will be terminated without any notice. Any long-running compilation or any long-running pre- or postprocessing of batch jobs must also be submitted to the [[bwUniCluster Batch Jobs|queueing system]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= First steps on bwUniCluster =&lt;br /&gt;
For setting up your environment to use compilers and installed software please visit:&lt;br /&gt;
* [[BwUniCluster_Environment_Modules|bwUniCluster user environment]]&lt;br /&gt;
For guides on how to submit compute jobs to bwUniCluster please visit:&lt;br /&gt;
* [[bwUniCluster Batch Jobs|bwUniCluster batch jobs]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Deregistration =&lt;br /&gt;
If you plan to permanently leave the bwUniCluster, follow the deregister checklist:&lt;br /&gt;
# Transfer all your data in $HOME and workspace to your local computer/storage and after that clear off all your data&lt;br /&gt;
# Visit [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu] &lt;br /&gt;
#* Select your home organization from the list and click &#039;&#039;&#039;Proceed&#039;&#039;&#039;  &lt;br /&gt;
#* Enter your home-organisational user ID / username  and your home-organisational password and click &#039;&#039;&#039;Login&#039;&#039;&#039; button&lt;br /&gt;
#* You will be redirected back to the registration website [https://bwidm.scc.kit.edu/ https://bwidm.scc.kit.edu/] &lt;br /&gt;
#* &amp;lt;div&amp;gt;Select &#039;&#039;&#039;Registry Info&#039;&#039;&#039; of the service &#039;&#039;&#039;bwUniCluster&#039;&#039;&#039; (on the left hand side)&amp;lt;br&amp;gt;[[File:bwUniCluster_registration_sidebar.png|center|border|]]&amp;lt;/div&amp;gt;&lt;br /&gt;
#* Click &#039;&#039;&#039;Deregister&#039;&#039;&#039;&lt;br /&gt;
Note that Step 2 will automatically unsubscribe you from the bwunicluster mail list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwUniCluster|Access]][[Category:Access|bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BWUniCluster_User_Access_Members_Uni_Ulm&amp;diff=4673</id>
		<title>BWUniCluster User Access Members Uni Ulm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BWUniCluster_User_Access_Members_Uni_Ulm&amp;diff=4673"/>
		<updated>2017-01-18T13:38:52Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Access to bwUniCluster/bwForCluster for members of Ulm University =&lt;br /&gt;
&lt;br /&gt;
== Login prerequisites == &lt;br /&gt;
&lt;br /&gt;
* A valid kiz account is required for access to bwUniCluster and bwForCluster. &lt;br /&gt;
&lt;br /&gt;
* As part of the login procedure, you will get a page that shows the data on your account that will be transferred from Ulm University to the cluster. This page shows your entitlements. It should list the entitlement: &amp;lt;pre&amp;gt;http://bwidm.de/entitlement/bwUniCluster&amp;lt;/pre&amp;gt; or &amp;lt;pre&amp;gt;http://bwidm.de/entitlement/bwForCluster&amp;lt;/pre&amp;gt;   If it does not, please contact the [https://www.uni-ulm.de/einrichtungen/kiz/weiteres/formulare/helpdesk/ Uni Ulm Helpdesk] to receive the entitlement.&lt;br /&gt;
&lt;br /&gt;
== kiz Account ==&lt;br /&gt;
&lt;br /&gt;
Enrolled students,  faculty and staff members of Ulm University&lt;br /&gt;
usually have a kiz account granting access to kiz compute resources such as the bwUniCluster. In case you don&#039;t have such an account please visit the related kiz web pages: https://www.uni-ulm.de/einrichtungen/kiz/weiteres/formulare/&lt;br /&gt;
&lt;br /&gt;
== Terms of Use ==&lt;br /&gt;
&lt;br /&gt;
As with any other kiz service, users of bwUniCluster must strictly adhere to the [http://www.uni-ulm.de/fileadmin/website_uni_ulm/kiz/org/kiz-bo.pdf kiz terms of use].&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=4596</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=4596"/>
		<updated>2016-11-08T12:03:59Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=600px class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Description !! Content&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] &amp;amp;#124; [[BwForCluster_Chemistry]]&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Citing &lt;br /&gt;
| n/a&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
= Introduction to TigerVNC =&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
= Versions and Availability =&lt;br /&gt;
A list of versions currently available on all bwHPC-C5-Clusters can be obtained from the&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://cis-hpc.uni-konstanz.de/prod.cis/ Cluster Information System CIS]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
{{#widget:Iframe&lt;br /&gt;
|url=https://cis-hpc.uni-konstanz.de/prod.cis/bwUniCluster/vis/tigervnc&lt;br /&gt;
|width=99%&lt;br /&gt;
|height=180&lt;br /&gt;
|border=0&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Start =&lt;br /&gt;
First, you need to start the VNC server. The exact startup mechanism depends on the cluster.&lt;br /&gt;
* [[Start VNC Server - bwUniCluster]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry - 3D Acceleration]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
= Login =&lt;br /&gt;
The startup script of the VNC server should print detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TurboVNC Java Viewer which is a tool that can simplify the process a little bit but needs the Java Development Kit (JDK) to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TurboVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://turbovnc.org/ TurboVNC 2.0], JDK&amp;lt;br /&amp;gt; Open TurboVNC Java Viewer. Go to Options... -&amp;gt; Security -&amp;gt; Gateway and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. You can save these settings in the &amp;quot;Global&amp;quot; tab if you want to. Now you can click &amp;quot;OK&amp;quot;, supply the VNC server and connect to the server. You should be prompted for your ssh password and your VNC password and after that the connection is established.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc or turbovnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Shutdown =&lt;br /&gt;
To exit your VNC session it is not sufficient to only close the window of the viewer, because this will not terminate the VNC server. The server will keep running and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later on. Please use the &amp;quot;log out&amp;quot; function of the desktop environment inside the VNC session, this will terminate the server properly.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
= Starting OpenGL programs =&lt;br /&gt;
Starting an OpenGL program in a 3D accelerated VNC session results in an error message. In order to fix this issue and redirect OpenGL commands to the graphics card on the cluster you have to use the vglrun command like in the following example:&lt;br /&gt;
 $ vglrun glxgears -info&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4577</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4577"/>
		<updated>2016-11-04T14:38:20Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Updated and new software modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system was &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for maintenance which had been completed as planned. &lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile your source code after the maintenance due to operating system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
All pending jobs had been canceled due to possibly obsolete dependencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== REPLACED SSH Host Key ==&lt;br /&gt;
The original SSH host key of bwUniCluster has been generated under Redhat 6 with [https://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA]. Redhat 7 and latest SSH clients recommend improved key generation algorithm such as ECDSA and ED25519. Indeed, Redhat 7 has opted out DSA key generation. Following the recommendations the original SSH host key of bwUniCluster has been replaced with a new one based on [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA].&lt;br /&gt;
=== HowTo: Putty users ===&lt;br /&gt;
If you have used the putty client before the maintenance the original SSH host key has been cached. Putty will pop up the following message to you (cf. screen shot below):&lt;br /&gt;
[[File:BwUniCluster_howto_replace_ssh_host_key_putty_2016-10-21.png|650px|center|border|]]&lt;br /&gt;
By accepting it (button &#039;&#039;&#039;Yes&#039;&#039;&#039;) putty will stored the new SSH host key.&lt;br /&gt;
&lt;br /&gt;
=== HowTo: Linux and macOS users ===&lt;br /&gt;
Remove the SSH host key of the bwUniCluster host name (bwunicluster.scc.kit.edu or uc1.scc.kit.edu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for hostname in uc1.scc.kit.edu bwunicluster.scc.kit.edu uc1-login1.scc.kit.edu uc1-login2.scc.kit.edu; do ssh-keygen -f &amp;quot;${HOME}/.ssh/known_hosts&amp;quot; -R $hostname ; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Afterwards and during login accept the new host key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECDSA key fingerprint is e0:3b:1e:36:80:44:c5:48:e9:b3:eb:65:34:ba:72:5c.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updated and new software modules ==&lt;br /&gt;
* devel/python/2.7.12&lt;br /&gt;
* devel/python/3.5.2&lt;br /&gt;
* math/R/3.3.1&lt;br /&gt;
* math/rstudio/0.99&lt;br /&gt;
* math/sagemath/7.3&lt;br /&gt;
* numlib/gsl/2.2.1-gnu-4.8&lt;br /&gt;
* numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
* numlib/fftw/3.3.5-impi-5.1.3-gnu-4.8&lt;br /&gt;
* numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/python_numpy/1.11.2-python-2.7.12&lt;br /&gt;
* chem/gromacs/5.1.4&lt;br /&gt;
* chem/amber/12 with Intel 14 only (Amber 14 available on bwFor-Cluster Justus)&lt;br /&gt;
* chem/dalton/2016&lt;br /&gt;
* phys/alps/2.1.1-python_numpy-1.11.2-hdf5-1.8-intel-16.0&lt;br /&gt;
* bio/qiime/1.9.1&lt;br /&gt;
&lt;br /&gt;
== CHANGED Software Defaults ==&lt;br /&gt;
Software modules for which a newer version has been set as the default.&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* devel/python/2.7.10 -&amp;gt; devel/python/2.7.12 (actually not the default but newest 2.7 release)&lt;br /&gt;
* devel/python/3.5.0 -&amp;gt; devel/python/3.5.2 &lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.3.1&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1 -&amp;gt; numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1 -&amp;gt; numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== RECOMPILED Software Modules==&lt;br /&gt;
Software modules which have been recompiled with different compiler or libraries&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
* chem/xcrysden/1.5.60&lt;br /&gt;
&lt;br /&gt;
== REMOVED Software Modules==&lt;br /&gt;
=== Intel compiler and related software  ===&lt;br /&gt;
Very old Intel compiler and related modules &#039;&#039;(which was available to all bwUniCluster users (/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* compiler/intel/12.1&lt;br /&gt;
* compiler/intel/13.1&lt;br /&gt;
* numlib/mkl/10.3.12&lt;br /&gt;
* numlib/mkl/11.0.5&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
* mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
* mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
* devel/itac/8.1.1&lt;br /&gt;
* devel/itac/8.1.2&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-13.1&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note that all dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Common software ===&lt;br /&gt;
Software that was available to all bwUniCluster users &#039;&#039;(/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/turbomole/6.5&lt;br /&gt;
* chem/turbomole/6.6&lt;br /&gt;
* chem/tmolex/4.0&lt;br /&gt;
* chem/molden/5.2.1&lt;br /&gt;
* devel/cmake/2.8.11 (now system default version)&lt;br /&gt;
* lib/hdf5/1.8.13-gnu-4.4&lt;br /&gt;
* lib/hdf5/1.8.13-openmpi-1.8-gnu-4.4&lt;br /&gt;
* math/R/3.0.2&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-gnu-4.4&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1&lt;br /&gt;
* numlib/gsl/1.16-gnu-4.4&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1&lt;br /&gt;
* phys/qutip/2.2.0&lt;br /&gt;
* lib/matplotlib/1.3.1&lt;br /&gt;
* chem/dalton/2013&lt;br /&gt;
* chem/gromacs/4.5.3_gridcount-1.4&lt;br /&gt;
* chem/gromacs/4.6.2&lt;br /&gt;
* chem/gromacs/5.0&lt;br /&gt;
* chem/gromacs/5.0.2&lt;br /&gt;
* phys/alps/2.1.1-python_numpy-1.10.1-hdf-1.8.14-impi-4.1.3&lt;br /&gt;
* bio/qiime/1.8.0&lt;br /&gt;
&lt;br /&gt;
=== Freiburg software ===&lt;br /&gt;
Software that was &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg &#039;&#039;(/opt/bwhpc/fr/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/lammps/5Sep2014_linux&lt;br /&gt;
* chem/lammps/5Sep2014_mkl&lt;br /&gt;
* cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
* cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
* devel/cmake/3.0.1&lt;br /&gt;
* devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4576</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4576"/>
		<updated>2016-11-04T14:38:06Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Common software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system was &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for maintenance which had been completed as planned. &lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile your source code after the maintenance due to operating system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
All pending jobs had been canceled due to possibly obsolete dependencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== REPLACED SSH Host Key ==&lt;br /&gt;
The original SSH host key of bwUniCluster has been generated under Redhat 6 with [https://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA]. Redhat 7 and latest SSH clients recommend improved key generation algorithm such as ECDSA and ED25519. Indeed, Redhat 7 has opted out DSA key generation. Following the recommendations the original SSH host key of bwUniCluster has been replaced with a new one based on [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA].&lt;br /&gt;
=== HowTo: Putty users ===&lt;br /&gt;
If you have used the putty client before the maintenance the original SSH host key has been cached. Putty will pop up the following message to you (cf. screen shot below):&lt;br /&gt;
[[File:BwUniCluster_howto_replace_ssh_host_key_putty_2016-10-21.png|650px|center|border|]]&lt;br /&gt;
By accepting it (button &#039;&#039;&#039;Yes&#039;&#039;&#039;) putty will stored the new SSH host key.&lt;br /&gt;
&lt;br /&gt;
=== HowTo: Linux and macOS users ===&lt;br /&gt;
Remove the SSH host key of the bwUniCluster host name (bwunicluster.scc.kit.edu or uc1.scc.kit.edu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for hostname in uc1.scc.kit.edu bwunicluster.scc.kit.edu uc1-login1.scc.kit.edu uc1-login2.scc.kit.edu; do ssh-keygen -f &amp;quot;${HOME}/.ssh/known_hosts&amp;quot; -R $hostname ; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Afterwards and during login accept the new host key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECDSA key fingerprint is e0:3b:1e:36:80:44:c5:48:e9:b3:eb:65:34:ba:72:5c.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updated and new software modules ==&lt;br /&gt;
* devel/python/2.7.12&lt;br /&gt;
* devel/python/3.5.2&lt;br /&gt;
* math/R/3.3.1&lt;br /&gt;
* math/rstudio/0.99&lt;br /&gt;
* math/sagemath/7.3&lt;br /&gt;
* numlib/gsl/2.2.1-gnu-4.8&lt;br /&gt;
* numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
* numlib/fftw/3.3.5-impi-5.1.3-gnu-4.8&lt;br /&gt;
* numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/python_numpy/1.11.2-python-2.7.12&lt;br /&gt;
* chem/gromacs/5.1.4&lt;br /&gt;
* chem/amber/12 with Intel 14 only (Amber 14 available on bwFor-Cluster Justus)&lt;br /&gt;
* chem/dalton/2016&lt;br /&gt;
* phys/alps/2.1.1-python_numpy-1.11.2-hdf5-1.8-intel-16.0&lt;br /&gt;
&lt;br /&gt;
== CHANGED Software Defaults ==&lt;br /&gt;
Software modules for which a newer version has been set as the default.&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* devel/python/2.7.10 -&amp;gt; devel/python/2.7.12 (actually not the default but newest 2.7 release)&lt;br /&gt;
* devel/python/3.5.0 -&amp;gt; devel/python/3.5.2 &lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.3.1&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1 -&amp;gt; numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1 -&amp;gt; numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== RECOMPILED Software Modules==&lt;br /&gt;
Software modules which have been recompiled with different compiler or libraries&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
* chem/xcrysden/1.5.60&lt;br /&gt;
&lt;br /&gt;
== REMOVED Software Modules==&lt;br /&gt;
=== Intel compiler and related software  ===&lt;br /&gt;
Very old Intel compiler and related modules &#039;&#039;(which was available to all bwUniCluster users (/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* compiler/intel/12.1&lt;br /&gt;
* compiler/intel/13.1&lt;br /&gt;
* numlib/mkl/10.3.12&lt;br /&gt;
* numlib/mkl/11.0.5&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
* mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
* mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
* devel/itac/8.1.1&lt;br /&gt;
* devel/itac/8.1.2&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-13.1&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note that all dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Common software ===&lt;br /&gt;
Software that was available to all bwUniCluster users &#039;&#039;(/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/turbomole/6.5&lt;br /&gt;
* chem/turbomole/6.6&lt;br /&gt;
* chem/tmolex/4.0&lt;br /&gt;
* chem/molden/5.2.1&lt;br /&gt;
* devel/cmake/2.8.11 (now system default version)&lt;br /&gt;
* lib/hdf5/1.8.13-gnu-4.4&lt;br /&gt;
* lib/hdf5/1.8.13-openmpi-1.8-gnu-4.4&lt;br /&gt;
* math/R/3.0.2&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-gnu-4.4&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1&lt;br /&gt;
* numlib/gsl/1.16-gnu-4.4&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1&lt;br /&gt;
* phys/qutip/2.2.0&lt;br /&gt;
* lib/matplotlib/1.3.1&lt;br /&gt;
* chem/dalton/2013&lt;br /&gt;
* chem/gromacs/4.5.3_gridcount-1.4&lt;br /&gt;
* chem/gromacs/4.6.2&lt;br /&gt;
* chem/gromacs/5.0&lt;br /&gt;
* chem/gromacs/5.0.2&lt;br /&gt;
* phys/alps/2.1.1-python_numpy-1.10.1-hdf-1.8.14-impi-4.1.3&lt;br /&gt;
* bio/qiime/1.8.0&lt;br /&gt;
&lt;br /&gt;
=== Freiburg software ===&lt;br /&gt;
Software that was &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg &#039;&#039;(/opt/bwhpc/fr/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/lammps/5Sep2014_linux&lt;br /&gt;
* chem/lammps/5Sep2014_mkl&lt;br /&gt;
* cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
* cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
* devel/cmake/3.0.1&lt;br /&gt;
* devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4473</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4473"/>
		<updated>2016-11-03T13:57:48Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system was &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for maintenance which had been completed as planned. &lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile your source code after the maintenance due to operating system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
All pending jobs had been canceled due to possibly obsolete dependencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== REPLACED SSH Host Key ==&lt;br /&gt;
The original SSH host key of bwUniCluster has been generated under Redhat 6 with [https://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA]. Redhat 7 and latest SSH clients recommend improved key generation algorithm such as ECDSA and ED25519. Indeed, Redhat 7 has opted out DSA key generation. Following the recommendations the original SSH host key of bwUniCluster has been replaced with a new one based on [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA].&lt;br /&gt;
=== HowTo: Putty users ===&lt;br /&gt;
If you have used the putty client before the maintenance the original SSH host key has been cached. Putty will pop up the following message to you (cf. screen shot below):&lt;br /&gt;
[[File:BwUniCluster_howto_replace_ssh_host_key_putty_2016-10-21.png|650px|center|border|]]&lt;br /&gt;
By accepting it (button &#039;&#039;&#039;Yes&#039;&#039;&#039;) putty will stored the new SSH host key.&lt;br /&gt;
&lt;br /&gt;
=== HowTo: Linux and macOS users ===&lt;br /&gt;
Remove the SSH host key of the bwUniCluster host name (bwunicluster.scc.kit.edu or uc1.scc.kit.edu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for hostname in uc1.scc.kit.edu bwunicluster.scc.kit.edu uc1-login1.scc.kit.edu uc1-login2.scc.kit.edu; do ssh-keygen -f &amp;quot;${HOME}/.ssh/known_hosts&amp;quot; -R $hostname ; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Afterwards and during login accept the new host key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECDSA key fingerprint is e0:3b:1e:36:80:44:c5:48:e9:b3:eb:65:34:ba:72:5c.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updated and new software modules ==&lt;br /&gt;
* devel/python/2.7.12&lt;br /&gt;
* devel/python/3.5.2&lt;br /&gt;
* math/R/3.3.1&lt;br /&gt;
* math/rstudio/0.99&lt;br /&gt;
* math/sagemath/7.3&lt;br /&gt;
* numlib/gsl/2.2.1-gnu-4.8&lt;br /&gt;
* numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
* numlib/fftw/3.3.5-impi-5.1.3-gnu-4.8&lt;br /&gt;
* numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/python_numpy/1.11.2-python-2.7.12&lt;br /&gt;
* chem/gromacs/5.1.4&lt;br /&gt;
* chem/amber/12 with Intel 14 only (Amber 14 available on bwFor-Cluster Justus)&lt;br /&gt;
* chem/dalton/2016&lt;br /&gt;
* phys/alps/2.1.1-python_numpy-1.11.2-hdf5-1.8-intel-16.0&lt;br /&gt;
&lt;br /&gt;
== CHANGED Software Defaults ==&lt;br /&gt;
Software modules for which a newer version has been set as the default.&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* devel/python/2.7.10 -&amp;gt; devel/python/2.7.12 (actually not the default but newest 2.7 release)&lt;br /&gt;
* devel/python/3.5.0 -&amp;gt; devel/python/3.5.2 &lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.3.1&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1 -&amp;gt; numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1 -&amp;gt; numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== RECOMPILED Software Modules==&lt;br /&gt;
Software modules which have been recompiled with different compiler or libraries&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
* chem/xcrysden/1.5.60&lt;br /&gt;
&lt;br /&gt;
== REMOVED Software Modules==&lt;br /&gt;
=== Intel compiler and related software  ===&lt;br /&gt;
Very old Intel compiler and related modules &#039;&#039;(which was available to all bwUniCluster users (/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* compiler/intel/12.1&lt;br /&gt;
* compiler/intel/13.1&lt;br /&gt;
* numlib/mkl/10.3.12&lt;br /&gt;
* numlib/mkl/11.0.5&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
* mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
* mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
* devel/itac/8.1.1&lt;br /&gt;
* devel/itac/8.1.2&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-13.1&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note that all dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Common software ===&lt;br /&gt;
Software that was available to all bwUniCluster users &#039;&#039;(/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/turbomole/6.5&lt;br /&gt;
* chem/turbomole/6.6&lt;br /&gt;
* chem/tmolex/4.0&lt;br /&gt;
* chem/molden/5.2.1&lt;br /&gt;
* devel/cmake/2.8.11 (now system default version)&lt;br /&gt;
* lib/hdf5/1.8.13-gnu-4.4&lt;br /&gt;
* lib/hdf5/1.8.13-openmpi-1.8-gnu-4.4&lt;br /&gt;
* math/R/3.0.2&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-gnu-4.4&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1&lt;br /&gt;
* numlib/gsl/1.16-gnu-4.4&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1&lt;br /&gt;
* phys/qutip/2.2.0&lt;br /&gt;
* lib/matplotlib/1.3.1&lt;br /&gt;
* chem/dalton/2013&lt;br /&gt;
* chem/gromacs/4.5.3_gridcount-1.4&lt;br /&gt;
* chem/gromacs/4.6.2&lt;br /&gt;
* chem/gromacs/5.0&lt;br /&gt;
* chem/gromacs/5.0.2&lt;br /&gt;
* phys/alps/2.1.1-python_numpy-1.10.1-hdf-1.8.14-impi-4.1.3&lt;br /&gt;
&lt;br /&gt;
=== Freiburg software ===&lt;br /&gt;
Software that was &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg &#039;&#039;(/opt/bwhpc/fr/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/lammps/5Sep2014_linux&lt;br /&gt;
* chem/lammps/5Sep2014_mkl&lt;br /&gt;
* cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
* cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
* devel/cmake/3.0.1&lt;br /&gt;
* devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4462</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4462"/>
		<updated>2016-10-21T14:07:21Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* RECOMPILED Software Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system will be &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for scheduled maintenance.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile all your binaries after the maintenance due to operational system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
The batch system queues will be closed starting a couple of days before&lt;br /&gt;
the maintenance window and will then be cleared. Data on the parallel&lt;br /&gt;
file systems will remain intact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== REPLACED SSH Host Key ==&lt;br /&gt;
The original SSH host key of bwUniCluster has been generated under Redhat 6 with [https://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA]. Redhat 7 and latest SSH clients recommend improved key generation algorithm such as ECDSA and ED25519. Indeed, Redhat 7 has opted out DSA key generation. Following the recommendations the original SSH host key of bwUniCluster has been replaced with a new one based on [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA].&lt;br /&gt;
=== HowTo: Putty users ===&lt;br /&gt;
If you have used the putty client before the maintenance the original SSH host key has been cached. Putty will pop up the following message to you (cf. screen shot below):&lt;br /&gt;
[[File:BwUniCluster_howto_replace_ssh_host_key_putty_2016-10-21.png|650px|center|border|]]&lt;br /&gt;
By accepting it (button &#039;&#039;&#039;Yes&#039;&#039;&#039;) putty will stored the new SSH host key.&lt;br /&gt;
&lt;br /&gt;
=== HowTo: Linux and macOS users ===&lt;br /&gt;
Remove the SSH host key of the bwUniCluster host name (bwunicluster.scc.kit.edu or uc1.scc.kit.edu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for hostname in uc1.scc.kit.edu bwunicluster.scc.kit.edu ; do ssh-keygen -f &amp;quot;${HOME}/.ssh/known_hosts&amp;quot; -R $hostname ; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Afterwards and during login accept the new host key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECDSA key fingerprint is e0:3b:1e:36:80:44:c5:48:e9:b3:eb:65:34:ba:72:5c.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CHANGED Software Defaults ==&lt;br /&gt;
Software modules for which a newer version has been set as the default.&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* devel/python/2.7.10 -&amp;gt; devel/python/2.7.12 (actually not the default but newest 2.7 release)&lt;br /&gt;
* devel/python/3.5.0 -&amp;gt; devel/python/3.5.2 &lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.3.1&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1 -&amp;gt; numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1 -&amp;gt; numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== RECOMPILED Software Modules==&lt;br /&gt;
Software modules which have been recompiled with different compiler or libraries&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
* chem/xcrysden/1.5.60&lt;br /&gt;
&lt;br /&gt;
== REMOVED Software Modules==&lt;br /&gt;
=== Intel compiler and related software  ===&lt;br /&gt;
Very old Intel compiler and related modules &#039;&#039;(which was available to all bwUniCluster users (/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* compiler/intel/12.1&lt;br /&gt;
* compiler/intel/13.1&lt;br /&gt;
* numlib/mkl/10.3.12&lt;br /&gt;
* numlib/mkl/11.0.5&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
* mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
* mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
* devel/itac/8.1.1&lt;br /&gt;
* devel/itac/8.1.2&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.6.5-gnu-4.4&lt;br /&gt;
* mpi/openmpi/1.8-gnu-4.4&lt;br /&gt;
* mpi/openmpi/1.10-gnu-4.4&lt;br /&gt;
* mpi/openmpi/2.0-gnu-4.4&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note that all dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Common software ===&lt;br /&gt;
Software that was available to all bwUniCluster users &#039;&#039;(/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/turbomole/6.5&lt;br /&gt;
* chem/turbomole/6.6&lt;br /&gt;
* chem/tmolex/4.0&lt;br /&gt;
* chem/molden/5.2.1&lt;br /&gt;
* devel/cmake/2.8.11 (now system default version)&lt;br /&gt;
* lib/hdf5/1.8.13-gnu-4.4&lt;br /&gt;
* lib/hdf5/1.8.13-openmpi-1.8-gnu-4.4&lt;br /&gt;
* math/R/3.0.2&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-gnu-4.4&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1&lt;br /&gt;
* numlib/gsl/1.16-gnu-4.4&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1&lt;br /&gt;
* phys/qutip/2.2.0&lt;br /&gt;
* lib/matplotlib/1.3.1&lt;br /&gt;
&lt;br /&gt;
=== Freiburg software ===&lt;br /&gt;
Software that was &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg &#039;&#039;(/opt/bwhpc/fr/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/lammps/5Sep2014_linux&lt;br /&gt;
* chem/lammps/5Sep2014_mkl&lt;br /&gt;
* cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
* cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
* devel/cmake/3.0.1&lt;br /&gt;
* devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4461</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4461"/>
		<updated>2016-10-21T13:49:49Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system will be &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for scheduled maintenance.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile all your binaries after the maintenance due to operational system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
The batch system queues will be closed starting a couple of days before&lt;br /&gt;
the maintenance window and will then be cleared. Data on the parallel&lt;br /&gt;
file systems will remain intact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== REPLACED SSH Host Key ==&lt;br /&gt;
The original SSH host key of bwUniCluster has been generated under Redhat 6 with [https://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA]. Redhat 7 and latest SSH clients recommend improved key generation algorithm such as ECDSA and ED25519. Indeed, Redhat 7 has opted out DSA key generation. Following the recommendations the original SSH host key of bwUniCluster has been replaced with a new one based on [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA].&lt;br /&gt;
=== HowTo: Putty users ===&lt;br /&gt;
If you have used the putty client before the maintenance the original SSH host key has been cached. Putty will pop up the following message to you (cf. screen shot below):&lt;br /&gt;
[[File:BwUniCluster_howto_replace_ssh_host_key_putty_2016-10-21.png|650px|center|border|]]&lt;br /&gt;
By accepting it (button &#039;&#039;&#039;Yes&#039;&#039;&#039;) putty will stored the new SSH host key.&lt;br /&gt;
&lt;br /&gt;
=== HowTo: Linux and macOS users ===&lt;br /&gt;
Remove the SSH host key of the bwUniCluster host name (bwunicluster.scc.kit.edu or uc1.scc.kit.edu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for hostname in uc1.scc.kit.edu bwunicluster.scc.kit.edu ; do ssh-keygen -f &amp;quot;${HOME}/.ssh/known_hosts&amp;quot; -R $hostname ; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Afterwards and during login accept the new host key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECDSA key fingerprint is e0:3b:1e:36:80:44:c5:48:e9:b3:eb:65:34:ba:72:5c.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CHANGED Software Defaults ==&lt;br /&gt;
Software modules for which a newer version has been set as the default.&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* devel/python/2.7.10 -&amp;gt; devel/python/2.7.12 (actually not the default but newest 2.7 release)&lt;br /&gt;
* devel/python/3.5.0 -&amp;gt; devel/python/3.5.2 &lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.3.1&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1 -&amp;gt; numlib/fftw/3.3.5-impi-5.1.3-intel-16.0&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1 -&amp;gt; numlib/gsl/2.2.1-intel-16.0&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== RECOMPILED Software Modules==&lt;br /&gt;
Software modules which has been recompiled with different compiler or libraries&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
* chem/xcrysden/1.5.60&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== REMOVED Software Modules==&lt;br /&gt;
=== Intel compiler and related software  ===&lt;br /&gt;
Very old Intel compiler and related modules &#039;&#039;(which was available to all bwUniCluster users (/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* compiler/intel/12.1&lt;br /&gt;
* compiler/intel/13.1&lt;br /&gt;
* numlib/mkl/10.3.12&lt;br /&gt;
* numlib/mkl/11.0.5&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
* mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
* mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
* mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
* devel/itac/8.1.1&lt;br /&gt;
* devel/itac/8.1.2&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.6.5-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.8-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-12.1&lt;br /&gt;
* mpi/openmpi/1.10-intel-13.1&lt;br /&gt;
* mpi/openmpi/1.6.5-gnu-4.4&lt;br /&gt;
* mpi/openmpi/1.8-gnu-4.4&lt;br /&gt;
* mpi/openmpi/1.10-gnu-4.4&lt;br /&gt;
* mpi/openmpi/2.0-gnu-4.4&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Note that all dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Common software ===&lt;br /&gt;
Software that was available to all bwUniCluster users &#039;&#039;(/opt/bwhpc/common/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/turbomole/6.5&lt;br /&gt;
* chem/turbomole/6.6&lt;br /&gt;
* chem/tmolex/4.0&lt;br /&gt;
* chem/molden/5.2.1&lt;br /&gt;
* devel/cmake/2.8.11 (now system default version)&lt;br /&gt;
* lib/hdf5/1.8.13-gnu-4.4&lt;br /&gt;
* lib/hdf5/1.8.13-openmpi-1.8-gnu-4.4&lt;br /&gt;
* math/R/3.0.2&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-gnu-4.4&lt;br /&gt;
* numlib/fftw/3.3.3-impi-4.1.1-intel-13.1&lt;br /&gt;
* numlib/gsl/1.16-gnu-4.4&lt;br /&gt;
* numlib/gsl/1.16-intel-13.1&lt;br /&gt;
* phys/qutip/2.2.0&lt;br /&gt;
* lib/matplotlib/1.3.1&lt;br /&gt;
&lt;br /&gt;
=== Freiburg software ===&lt;br /&gt;
Software that was &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg &#039;&#039;(/opt/bwhpc/fr/modulefiles)&#039;&#039;:&lt;br /&gt;
* chem/lammps/5Sep2014_linux&lt;br /&gt;
* chem/lammps/5Sep2014_mkl&lt;br /&gt;
* cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
* cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
* devel/cmake/3.0.1&lt;br /&gt;
* devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4447</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4447"/>
		<updated>2016-10-20T06:29:22Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system will be &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for scheduled maintenance.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile all your binaries after the maintenance due to operational system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
The batch system queues will be closed starting a couple of days before&lt;br /&gt;
the maintenance window and will then be cleared. Data on the parallel&lt;br /&gt;
file systems will remain intact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
== Software Module Updates ==&lt;br /&gt;
&lt;br /&gt;
=== Change of Software Defaults ===&lt;br /&gt;
&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.2.1 (or newer)&lt;br /&gt;
&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== Software Modules which will be REMOVED ==&lt;br /&gt;
&lt;br /&gt;
* Very old Intel compiler (and related) modules currently available to all bwUniCluster users (/opt/bwhpc/common/modulefiles):&lt;br /&gt;
** compiler/intel/12.1&lt;br /&gt;
** compiler/intel/13.1&lt;br /&gt;
** numlib/mkl/10.3.12&lt;br /&gt;
** numlib/mkl/11.0.5&lt;br /&gt;
** mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
** mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
** mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
** mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
** mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
** mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
** devel/itac/8.1.1&lt;br /&gt;
** devel/itac/8.1.2&lt;br /&gt;
** &#039;&#039;&#039;All dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Software currently available to all bwUniCluster users (/opt/bwhpc/common/modulefiles):&lt;br /&gt;
** chem/turbomole/6.5&lt;br /&gt;
** chem/turbomole/6.6&lt;br /&gt;
** chem/tmolex/4.0&lt;br /&gt;
** chem/molden/5.2.1&lt;br /&gt;
** math/R/3.0.2&lt;br /&gt;
** phys/qutip/2.2.0&lt;br /&gt;
** lib/matplotlib/1.3.1&lt;br /&gt;
&lt;br /&gt;
* Software currently &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg (/opt/bwhpc/fr/modulefiles):&lt;br /&gt;
** chem/lammps/5Sep2014_linux&lt;br /&gt;
** chem/lammps/5Sep2014_mkl&lt;br /&gt;
** cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
** cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
** devel/cmake/3.0.1&lt;br /&gt;
** devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
== Software modules which will be recompiled with different compiler or libraries ==&lt;br /&gt;
&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4446</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4446"/>
		<updated>2016-10-20T06:26:16Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Software Module Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system will be &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for scheduled maintenance.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile all your binaries after the maintenance due to operational system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
The batch system queues will be closed starting a couple of days before&lt;br /&gt;
the maintenance window and will then be cleared. Data on the parallel&lt;br /&gt;
file systems will remain intact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
== Software Module Updates ==&lt;br /&gt;
&lt;br /&gt;
=== Change of Software Defaults ===&lt;br /&gt;
&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.2.1 (or newer)&lt;br /&gt;
&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
=== Recompiled with different compiler or libraries ===&lt;br /&gt;
&lt;br /&gt;
* phys/qutip/3.1.0&lt;br /&gt;
&lt;br /&gt;
== Software Modules which will be REMOVED ==&lt;br /&gt;
&lt;br /&gt;
* Very old Intel compiler (and related) modules currently available to all bwUniCluster users (/opt/bwhpc/common/modulefiles):&lt;br /&gt;
** compiler/intel/12.1&lt;br /&gt;
** compiler/intel/13.1&lt;br /&gt;
** numlib/mkl/10.3.12&lt;br /&gt;
** numlib/mkl/11.0.5&lt;br /&gt;
** mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
** mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
** mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
** mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
** mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
** mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
** devel/itac/8.1.1&lt;br /&gt;
** devel/itac/8.1.2&lt;br /&gt;
** &#039;&#039;&#039;All dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Software currently available to all bwUniCluster users (/opt/bwhpc/common/modulefiles):&lt;br /&gt;
** chem/turbomole/6.5&lt;br /&gt;
** chem/turbomole/6.6&lt;br /&gt;
** chem/tmolex/4.0&lt;br /&gt;
** chem/molden/5.2.1&lt;br /&gt;
** math/R/3.0.2&lt;br /&gt;
** phys/qutip/2.2.0&lt;br /&gt;
** lib/matplotlib/1.3.1&lt;br /&gt;
&lt;br /&gt;
* Software currently &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg (/opt/bwhpc/fr/modulefiles):&lt;br /&gt;
** chem/lammps/5Sep2014_linux&lt;br /&gt;
** chem/lammps/5Sep2014_mkl&lt;br /&gt;
** cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
** cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
** devel/cmake/3.0.1&lt;br /&gt;
** devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4442</id>
		<title>BwUniCluster/Maintenance/2016-10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster/Maintenance/2016-10&amp;diff=4442"/>
		<updated>2016-10-19T11:05:04Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Software Modules which will be REMOVED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--__TOC__&lt;br /&gt;
&lt;br /&gt;
= 2016-10-17: bwUniCluster Maintenance =&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The bwUniCluster system will be &#039;&#039;&#039;unavailable&#039;&#039;&#039; between &#039;&#039;&#039;October 17, 2016&#039;&#039;&#039; and &#039;&#039;&#039;October 21, 2016&#039;&#039;&#039; for scheduled maintenance.&lt;br /&gt;
&lt;br /&gt;
We strongly recommend to recompile all your binaries after the maintenance due to operational system as well as software and libraries upgrade. This does also apply to binaries that may &lt;br /&gt;
have been built as add-ons for existing software modules, e.g. private packages for R and &lt;br /&gt;
Octave, Matlab MEX files, etc.&lt;br /&gt;
&lt;br /&gt;
The batch system queues will be closed starting a couple of days before&lt;br /&gt;
the maintenance window and will then be cleared. Data on the parallel&lt;br /&gt;
file systems will remain intact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Operational System Upgrade ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade from Red Hat Enterprise Linux Server release &#039;&#039;&#039;6.8&#039;&#039;&#039; (Santiago) to Red Hat Enterprise Linux Server release &#039;&#039;&#039;7.2&#039;&#039;&#039; (Maipo)&lt;br /&gt;
&lt;br /&gt;
== Software Module Updates ==&lt;br /&gt;
&lt;br /&gt;
=== Change of Software Defaults ===&lt;br /&gt;
&lt;br /&gt;
* chem/turbomole/7.0 -&amp;gt;  chem/turbomole/7.1&lt;br /&gt;
* chem/tmolex/4.1 -&amp;gt; chem/tmolex/4.2&lt;br /&gt;
* math/R/3.1.2 -&amp;gt; math/R/3.2.1 (or newer)&lt;br /&gt;
&lt;br /&gt;
Planned default changes (if no showstopper is found):&lt;br /&gt;
&lt;br /&gt;
* compiler/intel/15.0 -&amp;gt; compiler/intel/16.0&lt;br /&gt;
* numlib/mkl/11.2.3 -&amp;gt; numlib/mkl/11.3.4&lt;br /&gt;
* mpi/impi/5.0.3-intel-15.0 -&amp;gt; mpi/impi/5.1.3-intel-16.0&lt;br /&gt;
* devel/itac/9.0.3 -&amp;gt; devel/itac/9.1.2&lt;br /&gt;
&lt;br /&gt;
== Software Modules which will be REMOVED ==&lt;br /&gt;
&lt;br /&gt;
* Very old Intel compiler (and related) modules currently available to all bwUniCluster users (/opt/bwhpc/common/modulefiles):&lt;br /&gt;
** compiler/intel/12.1&lt;br /&gt;
** compiler/intel/13.1&lt;br /&gt;
** numlib/mkl/10.3.12&lt;br /&gt;
** numlib/mkl/11.0.5&lt;br /&gt;
** mpi/impi/4.1.0-gnu-4.4&lt;br /&gt;
** mpi/impi/4.1.0-gnu-4.5&lt;br /&gt;
** mpi/impi/4.1.0-intel-12.1&lt;br /&gt;
** mpi/impi/4.1.1-gnu-4.4&lt;br /&gt;
** mpi/impi/4.1.1-gnu-4.7&lt;br /&gt;
** mpi/impi/4.1.1-intel-13.1&lt;br /&gt;
** devel/itac/8.1.1&lt;br /&gt;
** devel/itac/8.1.2&lt;br /&gt;
** &#039;&#039;&#039;All dependent modules and binaries will stop working thereafter. So rebuild your modules and/or binaries with newer versions of the Intel compiler.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Software currently available to all bwUniCluster users (/opt/bwhpc/common/modulefiles):&lt;br /&gt;
** chem/turbomole/6.5&lt;br /&gt;
** chem/turbomole/6.6&lt;br /&gt;
** chem/tmolex/4.0&lt;br /&gt;
** chem/molden/5.2.1&lt;br /&gt;
** math/R/3.0.2&lt;br /&gt;
** phys/qutip/2.2.0&lt;br /&gt;
** lib/matplotlib/1.3.1&lt;br /&gt;
&lt;br /&gt;
* Software currently &#039;&#039;&#039;ONLY&#039;&#039;&#039; available to users from Freiburg (/opt/bwhpc/fr/modulefiles):&lt;br /&gt;
** chem/lammps/5Sep2014_linux&lt;br /&gt;
** chem/lammps/5Sep2014_mkl&lt;br /&gt;
** cns/nest/2.2.2-python-2.7.6_cns&lt;br /&gt;
** cns/nest/2.8.0-python-2.7.6_cns&lt;br /&gt;
** devel/cmake/3.0.1&lt;br /&gt;
** devel/python/2.7.6_cns&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:bwHPC News|UniCluster]]|[[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=File:Perf_reports.png&amp;diff=4058</id>
		<title>File:Perf reports.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=File:Perf_reports.png&amp;diff=4058"/>
		<updated>2016-04-18T13:36:00Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=2439</id>
		<title>Development/MKL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=2439"/>
		<updated>2015-07-27T09:29:05Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | MKL&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| numlib/mkl/xxx&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/intel-mkl Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Intel MKL (Math Kernel Library)&#039;&#039;&#039; is a library of optimized math routines for numerical computations such as linear algebra (using BLAS, LAPACK, ScaLAPACK) and discrete Fourier Transformation.&lt;br /&gt;
With its standard interface in matrix computation and the interface of the popular fast Fourier transformation library fftw, MKL can be used to replace other libraries with minimal code changes. In fact a program which uses FFTW without MPI doesn&#039;t need to be changed at all. Just recompile it with the MKL linker flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039; http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039;&lt;br /&gt;
There is some information in the module help file accessible via&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module help numlib/mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
and after loading the module, the environment variable $MKL_DOC_DIR points to the local documentation folder. Various examples can be found in $MKLROOT/examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiling and linking:&#039;&#039;&#039;&lt;br /&gt;
Compilation is possible with both GCC and Intel compilers but it is easier for Intel compilers, so this case is explained here.&lt;br /&gt;
After loading the compiler and the library module with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load compiler/intel&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can include the MKL header file in your program:&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;#include &amp;lt;mkl.h&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Compilation is simple:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc -c example_mkl.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
When linking the program you have to tell the compiler to link against the mkl library:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc example_mkl.o -mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the -mkl switch the intel compiler automatically sets the correct linker flags but you can specify them explicitly for example to enable static linking or when non-intel compilers are used. Information about the different options can be found at http://software.intel.com/en-us/node/438568 and especially helpful is the MKL link line advisor at http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor.&lt;br /&gt;
By default $MKL_NUM_THREADS is set to 1 and so only one thread will be created, but if you feel the need to run the computation on more cores (after benchmarking) you can set $MKL_NUM_THREADS to a higher number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
To help getting started we provide two C++ examples. The first one computes the square of a 2x2 matrix:&lt;br /&gt;
{| style=&amp;quot;width: 100%; border:1px solid #d0cfcc; background:#f2f7ff;border-spacing: 2px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:280px; white-space:nowrap; color:#000;&amp;quot; |&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    double m[2][2] = {{2,1}, {0,2}};&lt;br /&gt;
    double c[2][2];&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 2, 2, 2, 1.0, &amp;amp;m[0][0], 2, &amp;amp;m[0][0], 2, 0.0, &amp;amp;c[0][0], 2);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; c[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
And the second one does a fast Fourier transformation using the Intel MKL interface (DFTI):&lt;br /&gt;
{| style=&amp;quot;width: 100%; border:1px solid #d0cfcc; background:#f2f7ff;border-spacing: 2px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:280px; white-space:nowrap; color:#000;&amp;quot; |&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;complex&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    const int N = 3;&lt;br /&gt;
    complex&amp;lt;double&amp;gt; x[N] = {2, -1, 0.5};&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Input: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    DFTI_DESCRIPTOR_HANDLE desc;&lt;br /&gt;
&lt;br /&gt;
    DftiCreateDescriptor(&amp;amp;desc, DFTI_DOUBLE, DFTI_COMPLEX, 1, N);&lt;br /&gt;
    DftiCommitDescriptor(desc);&lt;br /&gt;
    DftiComputeForward(desc, x);&lt;br /&gt;
    DftiFreeDescriptor(&amp;amp;desc);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nOutput: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nTest the interpolation function f:&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        double t = i/(double)N;&lt;br /&gt;
        complex&amp;lt;double&amp;gt; u(0, 2*M_PI*t);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; z = exp(u);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; w = 1.0/N * (x[0] + x[1]*z + x[2]*z*z);&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;f(&amp;quot; &amp;lt;&amp;lt; t &amp;lt;&amp;lt; &amp;quot;) = &amp;quot; &amp;lt;&amp;lt; w &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Numerical_libraries]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2420</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2420"/>
		<updated>2015-07-20T09:34:09Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Start ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server. The exact startup mechanism depends on the cluster.&lt;br /&gt;
* [[Start VNC Server - bwUniCluster]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry - 3D Acceleration]]&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
The startup script of the VNC server should print detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TurboVNC Java Viewer which is a tool that can simplify the process a little bit but needs the Java Development Kit (JDK) to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TurboVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://turbovnc.org/ TurboVNC 2.0], JDK&amp;lt;br /&amp;gt; Open TurboVNC Java Viewer. Go to Options... -&amp;gt; Security -&amp;gt; Gateway and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. You can save these settings in the &amp;quot;Global&amp;quot; tab if you want to. Now you can click &amp;quot;OK&amp;quot;, supply the VNC server and connect to the server. You should be prompted for your ssh password and your VNC password and after that the connection is established.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc or turbovnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
To exit your VNC session it is not sufficient to only close the window of the viewer, because this will not terminate the VNC server. The server will keep running and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later on. Please use the &amp;quot;log out&amp;quot; function of the desktop environment inside the VNC session, this will terminate the server properly.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;br /&gt;
&lt;br /&gt;
== Starting OpenGL programs ==&lt;br /&gt;
Starting an OpenGL program in a 3D accelerated VNC session results in an error message. In order to fix this issue and redirect OpenGL commands to the graphics card on the cluster you have to use the vglrun command like in the following example:&lt;br /&gt;
 $ vglrun glxgears -info&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2283</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2283"/>
		<updated>2015-05-05T08:03:45Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Start ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server. The exact startup mechanism depends on the cluster.&lt;br /&gt;
* [[Start VNC Server - bwUniCluster]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry - 3D Acceleration]]&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
The startup script of the VNC server should print detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TurboVNC Java Viewer which is a tool that can simplify the process a little bit but needs the Java Development Kit (JDK) to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TurboVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.turbovnc.org/DeveloperInfo/PreReleases TurboVNC 2.0 Beta], JDK&amp;lt;br /&amp;gt; Open TurboVNC Java Viewer. Go to Options... -&amp;gt; Security -&amp;gt; Gateway and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. You can save these settings in the &amp;quot;Global&amp;quot; tab if you want to. Now you can click &amp;quot;OK&amp;quot;, supply the VNC server and connect to the server. You should be prompted for your ssh password and your VNC password and after that the connection is established.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc or turbovnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
To exit your VNC session it is not sufficient to only close the window of the viewer, because this will not terminate the VNC server. The server will keep running and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later on. Please use the &amp;quot;log out&amp;quot; function of the desktop environment inside the VNC session, this will terminate the server properly.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;br /&gt;
&lt;br /&gt;
== Starting OpenGL programs ==&lt;br /&gt;
Starting an OpenGL program in a 3D accelerated VNC session results in an error message. In order to fix this issue and redirect OpenGL commands to the graphics card on the cluster you have to use the vglrun command like in the following example:&lt;br /&gt;
 $ vglrun glxgears -info&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2282</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2282"/>
		<updated>2015-04-29T15:10:51Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Start ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server. The exact startup mechanism depends on the cluster.&lt;br /&gt;
* [[Start VNC Server - bwUniCluster]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry - 3D Acceleration]]&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
The startup script of the VNC server should print detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TurboVNC Java Viewer which is a tool that can simplify the process a little bit but needs the Java Development Kit (JDK) to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TurboVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.turbovnc.org/DeveloperInfo/PreReleases TurboVNC 2.0 Beta], JDK&amp;lt;br /&amp;gt; Open TurboVNC Java Viewer (the executable is called VncViewer.jar). Go to Options... -&amp;gt; Security -&amp;gt; Gateway and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. You can save these settings in the &amp;quot;Global&amp;quot; tab if you want to. Now you can click &amp;quot;OK&amp;quot;, supply the VNC server and connect to the server. You should be prompted for your ssh password and your VNC password and after that the connection is established.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc or turbovnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TurboVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
To exit your VNC session it is not sufficient to only close the window of the viewer, because this will not terminate the VNC server. The server will keep running and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later on. Please use the &amp;quot;log out&amp;quot; function of the desktop environment inside the VNC session, this will terminate the server properly.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;br /&gt;
&lt;br /&gt;
== Starting OpenGL programs ==&lt;br /&gt;
Starting an OpenGL program in a 3D accelerated VNC session results in an error message. In order to fix this issue and redirect OpenGL commands to the graphics card on the cluster you have to use the vglrun command like in the following example:&lt;br /&gt;
 $ vglrun glxgears -info&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwUniCluster&amp;diff=2281</id>
		<title>Start VNC Server - bwUniCluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwUniCluster&amp;diff=2281"/>
		<updated>2015-04-29T14:23:32Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start a VNC Server on the bwUniCluster ==&lt;br /&gt;
To start a VNC Server on the bwUniCluster you must log into the cluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -V -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. &#039;&#039;&#039;Use a strong password because otherwise an attacker could take control of your VNC session.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwUniCluster&amp;diff=2280</id>
		<title>Start VNC Server - bwUniCluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwUniCluster&amp;diff=2280"/>
		<updated>2015-04-29T14:13:27Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start a VNC Server on the bwUniCluster ==&lt;br /&gt;
To start a VNC Server on the bwUniCluster you must log into the cluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -V -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. &#039;&#039;&#039;Use a strong password because otherwise an attacker could take control of your VNC session.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwForCluster_Chemistry_-_3D_Acceleration&amp;diff=2279</id>
		<title>Start VNC Server - bwForCluster Chemistry - 3D Acceleration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwForCluster_Chemistry_-_3D_Acceleration&amp;diff=2279"/>
		<updated>2015-04-29T14:01:01Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: Created page with &amp;quot;== Start a VNC Server on the bwForCluster Chemistry with 3D acceleration == If you want to do graphically intensive tasks such as visualizing systems of molecules you should u...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start a VNC Server on the bwForCluster Chemistry with 3D acceleration ==&lt;br /&gt;
If you want to do graphically intensive tasks such as visualizing systems of molecules you should use the visualization nodes with high performance graphics cards. To start a VNC Server on such a visualization node you must log into one of the nodes via ssh with your usual username and password:&lt;br /&gt;
 $ ssh &amp;lt;UserID&amp;gt;@justus-vis.uni-ulm.de&lt;br /&gt;
Here you can start the VNC server with the following commands&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. &#039;&#039;&#039;Use a strong password because otherwise an attacker could take control of your VNC session.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2257</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2257"/>
		<updated>2015-04-16T09:53:40Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* TigerVNC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Start ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server. The exact startup mechanism depends on the cluster.&lt;br /&gt;
* [[Start VNC Server - bwUniCluster]]&lt;br /&gt;
* [[Start VNC Server - bwForCluster Chemistry]]&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
The startup script of the VNC server should print detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TightVNC Java Viewer which is a tool that can simplify the process a little bit but needs at least Java version 1.6 to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TightVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.tightvnc.com/download.php TightVNC Java Viewer], Java&amp;lt;br /&amp;gt; Open TightVNC Java Viewer (the executable is called tightvnc-jviewer.jar), check &amp;quot;Use SSH tunneling&amp;quot; and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. Now you can click on the &amp;quot;Connect&amp;quot; button and enter your passwords.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
To exit your VNC session it is not sufficient to only close the window of the viewer, because this will not terminate the VNC server. The server will keep running and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later on. Please use the &amp;quot;log out&amp;quot; function of the desktop environment inside the VNC session, this will terminate the server properly.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwUniCluster&amp;diff=2255</id>
		<title>Start VNC Server - bwUniCluster</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Start_VNC_Server_-_bwUniCluster&amp;diff=2255"/>
		<updated>2015-04-16T09:44:30Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: Created page with &amp;quot;== Start a VNC Server on the bwUniCluster == To start a VNC Server on the bwUniCluster you must log into the cluster with your username and password as usual. You should not s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start a VNC Server on the bwUniCluster ==&lt;br /&gt;
To start a VNC Server on the bwUniCluster you must log into the cluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. &#039;&#039;&#039;Use a strong password because otherwise an attacker could take control of your VNC session.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2015</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=2015"/>
		<updated>2015-01-07T09:24:22Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Shutdown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwUniCluster. Therefore you must log into the bwUniCluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. &#039;&#039;&#039;Use a strong password because otherwise an attacker could take control of your VNC session.&#039;&#039;&#039;&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TightVNC Java Viewer which is a tool that can simplify the process a little bit but needs at least Java version 1.6 to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TightVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.tightvnc.com/download.php TightVNC Java Viewer], Java&amp;lt;br /&amp;gt; Open TightVNC Java Viewer (the executable is called tightvnc-jviewer.jar), check &amp;quot;Use SSH tunneling&amp;quot; and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. Now you can click on the &amp;quot;Connect&amp;quot; button and enter your passwords.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
To exit your VNC session it is not sufficient to only close the window of the viewer, because this will not terminate the VNC server. The server will keep running and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later on. Please use the &amp;quot;log out&amp;quot; function of Gnome inside the VNC session, this will terminate the server properly.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/Intel_Compiler&amp;diff=1775</id>
		<title>Development/Intel Compiler</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/Intel_Compiler&amp;diff=1775"/>
		<updated>2014-11-03T13:07:16Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Intel Compiler&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| compiler/intel/xxx&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/c-compilers Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| icc, icpc, ifort, idb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Intel Compiler&#039;&#039;&#039; of the &#039;&#039;&#039;Intel Composer XE Suite&#039;&#039;&#039; consists of tools to compile and debug C, C++ and Fortran programs:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;margin:5px;border-collapse:collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| icc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel C compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| icpc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel C++ compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| ifort&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel Fortran compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| idb&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel debugger in GUI mode&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| idbc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel debugger in console mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Aside from that the suite also includes the TBB (Threading Building Blocks) and IPP (Integrated Performance Primitives) libraries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Loading:&#039;&#039;&#039; There are different versions of the Intel compilers installed. To get a list of these installations execute the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module avail compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is a default version which will be loaded when no version is explicitly specified, so the command&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
will load the default version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039;&lt;br /&gt;
http://software.intel.com/en-us/articles/intel-c-composer-xe-documentation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039; For version specific documentation see the help page of the module. For example&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module help compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show the information for the default version.&lt;br /&gt;
For detailed lists of the different program options consult the particular man page:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man icc&lt;br /&gt;
$ man icpc&lt;br /&gt;
$ man ifort&lt;br /&gt;
$ man idb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optimizations:&#039;&#039;&#039; You can turn on various optimization options to enhance the performance of your program. Which options are the best depends on the specific program and can be determined by benchmarking your code. A command which gives good performance and a decent file size is&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -xHost -O2 ex.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more aggressive optimization flags and levels (e.g. -O3 or -fast and implied options) but the compiled programs can get quite large due to inlining. Additionally the compilation process will probably take longer. Moreover it may happen that the compiled program is even slower -- or may require installation of additional statically-linked libraries. Such a command would be for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -fast ex.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Profiling:&#039;&#039;&#039;&lt;br /&gt;
Profiling an application means augmenting the compiled binary with information on execution counts per source-line (and basic blocks) -- e.g. one may see how many times an if-statement has been evaluated to true. To do so, compile your code with the profile flag:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -p ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
Using the gprof tool, one may manually inspect execution count of each executed line of source code.&lt;br /&gt;
&lt;br /&gt;
For compiler optimization, recompile Your source using &lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -prof-gen ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
then execute the most common and typical use-case of Your application, and then recompile using the generated profile count (and using optimization):&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -prof-use -O2 ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Further literature:&#039;&#039;&#039;&lt;br /&gt;
A tutorial on optimization can be found at https://software.intel.com/sites/default/files/managed/c1/61/compiler-essentials.1.pdf&lt;br /&gt;
and to get the different optimization options execute&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ icc -help opt&lt;br /&gt;
$ icc -help advanced&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or the previously described catch-all option &#039;&#039;&#039;-v --help&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiler_software]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1663</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1663"/>
		<updated>2014-10-08T09:03:38Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]]) &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
*Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ mathematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Interactive with command line:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. Looks like interactive with command line but input is taken from script.m:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math &amp;lt; script.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. You have to explicitly specify what you want to print&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math -script script.m&amp;lt;/pre&amp;gt;However, the output is done in InputForm which is suitable for input in other Mathematica calculations but if you want pretty output you have to change the output format to OutputForm like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;SetOptions[$Output, FormatType -&amp;gt; OutputForm]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/mathematica/guide/Mathematica.html Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up time-consuming computations, but it should also be used for multiple computations with different input data files (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the correct amount of processors in your [[Batch Jobs]] script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to adjust your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of a numerical solution for the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.4}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
SetOptions[$Output, FormatType -&amp;gt; OutputForm]    (* better output when called with -script *)&lt;br /&gt;
Print[ Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]] ]    (* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mathematica features some further functions similar to ParallelTable which are documented on the [http://reference.wolfram.com/mathematica/guide/ParallelComputing.html Mathematica parallel computing webpage] from Wolfram. One such function is ParallelSubmit which can be used to start two (or more) completely unrelated functions in parallel. But bear in mind that the functions should have similar running times because the scheduler reserves the requested resources for the runtime of the whole job. The following code shows how to pack two 1-core jobs into one 2-core job.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f[r_] := (&lt;br /&gt;
    d = 0.000001;&lt;br /&gt;
    {time, sol} = Timing[NDSolve[{x&#039;[t] == r*x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;3, MaxSteps-&amp;gt;10000000]];&lt;br /&gt;
    {time, x[1/d]/.sol[[1]]}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
g[r_] := (&lt;br /&gt;
    {time, sol} = Timing[NDSolve[{y&#039;&#039;[t] + (r+1)*y&#039;[t] + r*y[t] == 0, y[0] == 1, y&#039;[0] == 0},  y, {t, 0, 30}, MaxStepSize-&amp;gt;0.000002, MaxSteps-&amp;gt;10000000000]];&lt;br /&gt;
    {time, y[30]/.sol[[1]]}&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kernel1 := (&lt;br /&gt;
    file = OpenWrite[&amp;quot;out1.txt&amp;quot;, FormatType -&amp;gt; OutputForm];&lt;br /&gt;
    $Output = {file};&lt;br /&gt;
    Print[f[1.2]];&lt;br /&gt;
    Close[file];&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
kernel2 := (&lt;br /&gt;
    file = OpenWrite[&amp;quot;out2.txt&amp;quot;, FormatType -&amp;gt; OutputForm];&lt;br /&gt;
    $Output = {file};&lt;br /&gt;
    Print[g[1000]];&lt;br /&gt;
    Close[file];&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
LaunchKernels[2]&lt;br /&gt;
DistributeDefinitions[kernel1, kernel2]&lt;br /&gt;
e = {ParallelSubmit[kernel1], ParallelSubmit[kernel2]}&lt;br /&gt;
WaitAll[e]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The helper functions kernel1 and kernel2 get started in different threads and then they execute f and g. The output of these functions is redirected to different files so the results can clearly be distinguished and examined as soon as one function is done.&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1554</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1554"/>
		<updated>2014-08-27T08:20:29Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]]) &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
*Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ mathematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Interactive with command line:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. Looks like interactive with command line but input is taken from script.m:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math &amp;lt; script.m&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Non-Interactive. You have to explicitly specify what you want to print&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ math -script script.m&amp;lt;/pre&amp;gt;However, the output is done in InputForm which is suitable for input in other Mathematica calculations but if you want pretty output you have to change the output format to OutputForm like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;SetOptions[$Output, FormatType -&amp;gt; OutputForm]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/mathematica/guide/Mathematica.html Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up time-consuming computations, but it should also be used for multiple computations with different input data files (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the correct amount of processors in your [[Batch Jobs]] script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to adjust your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of a numerical solution for the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.4}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
SetOptions[$Output, FormatType -&amp;gt; OutputForm]    (* better output when called with -script *)&lt;br /&gt;
Print[ Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]] ]    (* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mathematica features some further functions similar to ParallelTable which are documented on the [http://reference.wolfram.com/mathematica/guide/ParallelComputing.html Mathematica parallel computing webpage] from Wolfram. &lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1212</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1212"/>
		<updated>2014-07-17T12:18:31Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: /* Parallel Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]]) &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 $ math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&lt;br /&gt;
 $ mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interactive:&lt;br /&gt;
 $ math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/mathematica/guide/Mathematica.html Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up time-consuming computations, but it should also be used for multiple computations with different input data files (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the correct amount of processors in your [[Batch Jobs]] script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to adjust your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of a numerical solution for the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.4}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mathematica features some further functions similar to ParallelTable which are documented on the [http://reference.wolfram.com/mathematica/guide/ParallelComputing.html Mathematica parallel computing webpage] from Wolfram. &lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1118</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1118"/>
		<updated>2014-07-11T08:57:03Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]]) &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 $ math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&lt;br /&gt;
 $ mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interactive:&lt;br /&gt;
 $ math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/mathematica/guide/Mathematica.html Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up time-consuming computations, but it should also be used for multiple computations with different input data files (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the correct amount of processors in your [[Batch Jobs]] script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to adjust your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of a numerical solution for the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mathematica features some further functions similar to ParallelTable which are documented on the [http://reference.wolfram.com/mathematica/guide/ParallelComputing.html Mathematica parallel computing webpage] from Wolfram. &lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1115</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1115"/>
		<updated>2014-07-08T08:15:37Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes (See [[VNC]]) &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 $ math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs [[X11 forwarding]] or [[VNC]]):&lt;br /&gt;
 $ mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interactive:&lt;br /&gt;
 $ math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation ([http://reference.wolfram.com/mathematica/guide/Mathematica.html Mathematica Documentation Center]). Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up a long running computation but it should also be used&lt;br /&gt;
when multiple computations with different input data are needed (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the right amount of processors in your job script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to change your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of the numerical solution of the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are other functions similar to ParallelTable which are documented on the site&lt;br /&gt;
http://reference.wolfram.com/mathematica/guide/ParallelComputing.html which provides general information on parallel computing with Mathematica.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=1112</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=1112"/>
		<updated>2014-07-08T08:09:39Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwUniCluster. Therefore you must log into the bwUniCluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password which will be required for clients trying to access your VNC desktop. &#039;&#039;&#039;Use a strong password because otherwise an attacker could take control of your VNC session.&#039;&#039;&#039;&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server from your local computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TightVNC Java Viewer which is a tool that can simplify the process a little bit but needs at least Java version 1.6 to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TightVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.tightvnc.com/download.php TightVNC Java Viewer], Java&amp;lt;br /&amp;gt; Open TightVNC Java Viewer (the executable is called tightvnc-jviewer.jar), check &amp;quot;Use SSH tunneling&amp;quot; and fill in the parameters provided by the &#039;&#039;run_vncserver&#039;&#039; script. Now you can click on the &amp;quot;Connect&amp;quot; button and enter your passwords.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the &#039;&#039;run_vncserver&#039;&#039; script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by &#039;&#039;run_vncserver&#039;&#039;. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start the tigervnc client and connect to localhost:n where n is the display number printed by &#039;&#039;run_vncserver&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
If you want to exit your VNC session don&#039;t just close the window because then the VNC server won&#039;t terminate and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1111</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1111"/>
		<updated>2014-07-08T08:07:46Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| [http://www.bwhpc-c5.de/wiki/index.php/BwHPC_BPG_for_Visualization Yes] &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 $ module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 $ module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 $ math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs X11 forwarding):&lt;br /&gt;
 $ mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interactive:&lt;br /&gt;
 $ math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation. Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up a long running computation but it should also be used&lt;br /&gt;
when multiple computations with different input data are needed (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the right amount of processors in your job script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to change your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of the numerical solution of the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t *)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are other functions similar to ParallelTable which are documented on the site&lt;br /&gt;
http://reference.wolfram.com/mathematica/guide/ParallelComputing.html which provides general information on parallel computing with Mathematica.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1107</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1107"/>
		<updated>2014-07-07T15:14:44Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%; vertical-align:top; background:#f5fffa;border:1px solid #e7aa01;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:2px;&amp;quot; | &amp;lt;div style=&amp;quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #e7aa01; text-align:left; color:#000; padding:0.2em 0.4em;&amp;quot;&amp;gt;Mathematica might not be available on all locations.&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| [http://www.bwhpc-c5.de/wiki/index.php/BwHPC_BPG_for_Visualization Yes] &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check if Mathematica is available execute&lt;br /&gt;
 module avail math&lt;br /&gt;
&lt;br /&gt;
If Mathematica is available you can load a specific version or you can load the default version with&lt;br /&gt;
 module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 ./math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs X11 forwarding):&lt;br /&gt;
 ./mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interatice:&lt;br /&gt;
 ./math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation. Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up a long running computation but it should also be used&lt;br /&gt;
when multiple computations with different input data are needed (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram. There are two types of licenses. &lt;br /&gt;
* Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
* Each time Mathematica spawns a subprocess, a license called SubMathKernel is used up.&lt;br /&gt;
Because usually there are much more SubMathKernel licenses than MathKernel licenses it is recommended to start multiple subprocesses instead of submitting multiple jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the right amount of processors in your job script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to change your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of the numerical solution of the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t*)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]][[1]]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are other functions similar to ParallelTable which are documented on the site&lt;br /&gt;
http://reference.wolfram.com/mathematica/guide/ParallelComputing.html which provides general information on parallel computing with Mathematica.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematics software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1106</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1106"/>
		<updated>2014-07-07T14:21:04Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| [http://www.bwhpc-c5.de/wiki/index.php/BwHPC_BPG_for_Visualization Yes] &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check which versions of Mathematica are available execute&lt;br /&gt;
 module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
The default version can be loaded as usual with&lt;br /&gt;
 module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 ./math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs X11 forwarding):&lt;br /&gt;
 ./mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interatice:&lt;br /&gt;
 ./math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation. Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up a long running computation but it should also be used&lt;br /&gt;
when multiple computations with different input data are needed (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram.&lt;br /&gt;
There are two types of licenses. Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
For each subprocesses Mathematica spawns, a license called SubMathKernel is used up.&lt;br /&gt;
Because we have only a small number of MathKernel licenses it is necessary to start many subprocesses instead of submitting many jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the right amount of processors in your job script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to change your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of the numerical solution of the following initial value problem&lt;br /&gt;
 x&#039;(t) = x(t)^2 - x(t)^3&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t*)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]]][[1]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are other functions similar to ParallelTable which are documented on the site&lt;br /&gt;
http://reference.wolfram.com/mathematica/guide/ParallelComputing.html which provides general information on parallel computing with Mathematica.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1105</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1105"/>
		<updated>2014-07-07T14:18:31Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| [http://www.bwhpc-c5.de/wiki/index.php/BwHPC_BPG_for_Visualization Yes] &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check which versions of Mathematica are available execute&lt;br /&gt;
 module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
The default version can be loaded as usual with&lt;br /&gt;
 module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 ./math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs X11 forwarding):&lt;br /&gt;
 ./mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interatice:&lt;br /&gt;
 ./math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation. Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up a long running computation but it should also be used&lt;br /&gt;
when multiple computations with different input data are needed (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram.&lt;br /&gt;
There are two types of licenses. Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
For each subprocesses Mathematica spawns, a license called SubMathKernel is used up.&lt;br /&gt;
Because we have only a small number of MathKernel licenses it is necessary to start many subprocesses instead of submitting many jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the right amount of processors in your job script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to change your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of the numerical solution of the following initial value problem&lt;br /&gt;
 x&#039;(t) = x^2(t) - x^3(t)&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t*)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]]][[1]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are other functions similar to ParallelTable which are documented on the site&lt;br /&gt;
http://reference.wolfram.com/mathematica/guide/ParallelComputing.html which provides general information on parallel computing with Mathematica.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1100</id>
		<title>BwUniCluster2.0/Software/Mathematica</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=BwUniCluster2.0/Software/Mathematica&amp;diff=1100"/>
		<updated>2014-07-07T13:05:21Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: Created page with &amp;quot;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt; {|{{Softwarebox}} |- ! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica |- | module load | math/mathematica &amp;lt;!-- Neben CIS auc…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Mathematica&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| math/mathematica&lt;br /&gt;
&amp;lt;!-- Neben CIS auch bereits über Kategorien  abgedeckt&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| [[bwUniCluster]] [[bwForFreiburg]],  [[bwForMannheim-Heidelberg]],  [[bwForUlm]],  [[bwForTübingen]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| Commercial&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.wolfram.com/mathematica/ Homepage]; [http://www.wolfram.com/support/?source=nav Documentation];&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| Yes &amp;lt;!-- Yes could link to some x11-forwarding/vnc instructions --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &amp;lt;!-- mention if there is more than one software in the module, i.e. icc, ifort and debugger --&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Mathematica&#039;&#039;&#039; is a software from Wolfram for symbolic and numerical computation with many features&lt;br /&gt;
such as powerful visualization and application specific functions.&lt;br /&gt;
&lt;br /&gt;
== Loading ==&lt;br /&gt;
To check which versions of Mathematica are available execute&lt;br /&gt;
 module avail math/mathematica&lt;br /&gt;
&lt;br /&gt;
The default version can be loaded as usual with&lt;br /&gt;
 module load math/mathematica&lt;br /&gt;
&lt;br /&gt;
== General Usage ==&lt;br /&gt;
Mathematica can be used interactively on the command line or with a graphical front-end.&lt;br /&gt;
Alternatively Mathematica can run a script in batch mode which is useful when submitting batch jobs to the cluster.&lt;br /&gt;
After loading Mathematica the different modes can be used as follows.&lt;br /&gt;
&lt;br /&gt;
Interactive with command line:&lt;br /&gt;
 ./math&lt;br /&gt;
&lt;br /&gt;
Interactive with GUI (needs X11 forwarding):&lt;br /&gt;
 ./mathematica&lt;br /&gt;
&lt;br /&gt;
Non-Interatice:&lt;br /&gt;
 ./math &amp;lt; script.m&lt;br /&gt;
&lt;br /&gt;
For an introduction to Mathematica we refer to the online documentation. Specific information on the use in a compute cluster is in the next section.&lt;br /&gt;
&lt;br /&gt;
== Parallel Computation ==&lt;br /&gt;
Obviously parallel computation can be useful to speed up a long running computation but it should also be used&lt;br /&gt;
when multiple computations with different input data are needed (e.g. for parametric studies). The reason for this&lt;br /&gt;
is the license model from Wolfram.&lt;br /&gt;
There are two types of licenses. Each time an instance of Mathematica starts, a so called MathKernel license is used up.&lt;br /&gt;
For each subprocesses Mathematica spawns, a license called SubMathKernel is used up.&lt;br /&gt;
Because we have only a small number of MathKernel licenses it is necessary to start many subprocesses instead of submitting many jobs.&lt;br /&gt;
&lt;br /&gt;
Remember to request the right amount of processors in your job script but note that Mathematica will not automatically use these processors.&lt;br /&gt;
In general you have to change your code to benefit from more cores.&lt;br /&gt;
To do this you first have to start a number of kernels which are then used by ParallelTable to run the computations in parallel.&lt;br /&gt;
This basic example computes the first eight square numbers in parallel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LaunchKernels[8]&lt;br /&gt;
f[i_] := i^2&lt;br /&gt;
DistributeDefinitions[f]&lt;br /&gt;
ParallelTable[f[i], {i,0,7}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the use of DistributeDefinitions is necessary for f is a user defined function and the definition of this function must be available to all kernels.&lt;br /&gt;
&lt;br /&gt;
The next example is the computation of the numerical solution of the following initial value problem&lt;br /&gt;
 x&#039;(t) = x^2(t) - x^3(t)&lt;br /&gt;
 x(0) = d&lt;br /&gt;
It is difficult to solve this equation with high accuracy at the point 1/d.&lt;br /&gt;
We decrease the step size of the algorithm to see how the execution time and the relative error at the point 1/d change.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
d = 0.00001&lt;br /&gt;
&lt;br /&gt;
y[t_] := 1/(ProductLog[(1/d-1)*Exp[1/d-1-t]]+1)	(* analytical solution *)&lt;br /&gt;
relerr[t_, s_] := Abs[(y[t] - x[t]/.s)/y[t]]			(* relative error of solution s at time t*)&lt;br /&gt;
g[v_] := {v[[1]], v[[2]][[1]], relerr[1/d, v[[2]][[2]]][[1]]}	(* helper function *)&lt;br /&gt;
&lt;br /&gt;
(* compute numerical solutions for 6 different step sizes *)&lt;br /&gt;
LaunchKernels[6]&lt;br /&gt;
tbl = ParallelTable[{step, Timing[NDSolve[{x&#039;[t] == x[t]^2 - x[t]^3, x[0] == d}, x, {t, 0, 2/d}, MaxStepSize-&amp;gt;step, MaxSteps-&amp;gt;10000000]]}, {step,5,3,-0.2}]&lt;br /&gt;
CloseKernels[]&lt;br /&gt;
&lt;br /&gt;
Grid[Join[{{&amp;quot;Stepsize&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Error at 1/d&amp;quot;}}, Map[g, tbl]]]	(* print the result *)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are other functions similar to ParallelTable which are documented on the site&lt;br /&gt;
http://reference.wolfram.com/mathematica/guide/ParallelComputing.html which provides general information on parallel computing with Mathematica.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=1038</id>
		<title>Development/MKL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/MKL&amp;diff=1038"/>
		<updated>2014-05-12T14:54:42Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | MKL&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| numlib/mkl/xxx&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/intel-mkl Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Intel MKL (Math Kernel Library)&#039;&#039;&#039; is a library of optimized math routines for numerical computations such as linear algebra (using BLAS, LAPACK, ScaLAPACK) and discrete Fourier Transformation.&lt;br /&gt;
With its standard interface in matrix computation and the interface of the popular fast Fourier transformation library fftw, MKL can be used to replace other libraries with minimal code changes. In fact a program which uses FFTW without MPI doesn&#039;t need to be changed at all. Just recompile it with the MKL linker flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039; http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039;&lt;br /&gt;
There is some information in the module help file accessible via&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module help numlib/mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
and after loading the module, the environment variable $MKL_DOC_DIR points to the local documentation folder. Various examples can be found in $MKLROOT/examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiling and linking:&#039;&#039;&#039;&lt;br /&gt;
Compilation is possible with both GCC and Intel compilers but it is easier for Intel compilers, so this case is explained here.&lt;br /&gt;
After loading the compiler and the library module with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ module load compiler/intel&lt;br /&gt;
$ module load numlib/mkl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
you can include the MKL header file in your program:&lt;br /&gt;
&amp;lt;source lang=cpp&amp;gt;#include &amp;lt;mkl.h&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Compilation is simple:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc -c example_mkl.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
When linking the program you have to tell the compiler to link against the mkl library:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icpc example_mkl.o -mkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
With the -mkl switch the intel compiler automatically sets the correct linker flags but you can specify them explicitly for example to enable static linking or when non-intel compilers are used. Information about the different options can be found at http://software.intel.com/en-us/node/438568 and especially helpful is the MKL link line advisor at http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor.&lt;br /&gt;
By default $MKL_NUM_THREADS is set to 1 and so only one thread will be created, but if you feel the need to run the computation on more cores (after benchmarking) you can set $MKL_NUM_THREADS to a higher number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Examples:&#039;&#039;&#039;&lt;br /&gt;
To help getting started we provide two C++ examples. The first one computes the square of a 2x2 matrix:&lt;br /&gt;
{| style=&amp;quot;width: 100%; border:1px solid #d0cfcc; background:#f2f7ff;border-spacing: 2px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:280px; text-align:center; white-space:nowrap; color:#000;&amp;quot; |&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    double m[2][2] = {{2,1}, {0,2}};&lt;br /&gt;
    double c[2][2];&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 2, 2, 2, 1.0, &amp;amp;m[0][0], 2, &amp;amp;m[0][0], 2, 0.0, &amp;amp;c[0][0], 2);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; 2; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for(int j = 0; j &amp;lt; 2; ++j)&lt;br /&gt;
            cout &amp;lt;&amp;lt; c[i][j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
And the second one does a fast Fourier transformation using the Intel MKL interface (DFTI):&lt;br /&gt;
{| style=&amp;quot;width: 100%; border:1px solid #d0cfcc; background:#f2f7ff;border-spacing: 2px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:280px; text-align:center; white-space:nowrap; color:#000;&amp;quot; |&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;complex&amp;gt;&lt;br /&gt;
#include &amp;lt;cmath&amp;gt;&lt;br /&gt;
#include &amp;lt;mkl.h&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    const int N = 3;&lt;br /&gt;
    complex&amp;lt;double&amp;gt; x[N] = {2, -1, 0.5};&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Input: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    DFTI_DESCRIPTOR_HANDLE desc;&lt;br /&gt;
&lt;br /&gt;
    DftiCreateDescriptor(&amp;amp;desc, DFTI_DOUBLE, DFTI_COMPLEX, 1, N);&lt;br /&gt;
    DftiCommitDescriptor(desc);&lt;br /&gt;
    DftiComputeForward(desc, x);&lt;br /&gt;
    DftiFreeDescriptor(&amp;amp;desc);&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nOutput: &amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
        cout &amp;lt;&amp;lt; x[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nTest the interpolation function f:&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
    for(int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        double t = i/(double)N;&lt;br /&gt;
        complex&amp;lt;double&amp;gt; u(0, 2*M_PI*t);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; z = exp(u);&lt;br /&gt;
        complex&amp;lt;double&amp;gt; w = 1.0/N * (x[0] + x[1]*z + x[2]*z*z);&lt;br /&gt;
&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;f(&amp;quot; &amp;lt;&amp;lt; t &amp;lt;&amp;lt; &amp;quot;) = &amp;quot; &amp;lt;&amp;lt; w &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Numerical_libraries]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/Valgrind&amp;diff=1037</id>
		<title>Development/Valgrind</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/Valgrind&amp;diff=1037"/>
		<updated>2014-05-12T14:49:53Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Valgrind&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://valgrind.org/ Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
Valgrind can be used for debugging and profiling programs. It ships with various tools, some of them are described in the following table.&lt;br /&gt;
&lt;br /&gt;
{| {{Table}}&lt;br /&gt;
|-&lt;br /&gt;
! Tool&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| memcheck&lt;br /&gt;
| Detects heap array overruns, memory leaks and incorrect freeing of heap memory.&lt;br /&gt;
|-&lt;br /&gt;
| exp-sgcheck&lt;br /&gt;
| Detects stack and global array overruns.&lt;br /&gt;
|-&lt;br /&gt;
| callgrind&lt;br /&gt;
| Profiler. Helps finding bottlenecks.&lt;br /&gt;
|-&lt;br /&gt;
| helgrind&lt;br /&gt;
| Detects race conditions and deadlocks.&lt;br /&gt;
|-&lt;br /&gt;
| drd&lt;br /&gt;
| Detects race conditions. Does not detect deadlocks but needs less memory than helgrind.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Loading:&#039;&#039;&#039; There is no need for loading valgrind because it is available by default.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039; http://valgrind.org/docs/&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039; &amp;lt;pre&amp;gt;man valgrind&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage:&#039;&#039;&#039;&lt;br /&gt;
To simulate your program and gather information about it using a specific tool, valgrind can be called like this&lt;br /&gt;
&amp;lt;pre&amp;gt;$ valgrind --tool=&amp;lt;tool&amp;gt; --log-file=&amp;lt;logfile&amp;gt; ./example&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example to check for race conditions the command would look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ valgrind --tool=drd --log-file=log.mem ./example&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beware that the simulation via valgrind can take much longer and can consume much more memory compared to a normal execution.&lt;br /&gt;
Furthermore the tools can give false positives, i.e. they report errors even though the are none.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example for helgrind and drd:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This small program demonstrates how to detect data races in parallel programs. Both helgrind and drd support POSIX Threads (Pthreads) but not OpenMP so prepare to get many false positives when using these tools with OpenMP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c&amp;gt;&lt;br /&gt;
/* pthreads.c */&lt;br /&gt;
#include &amp;lt;pthread.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;math.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define NUM_THREADS 2&lt;br /&gt;
&lt;br /&gt;
int v = 0;&lt;br /&gt;
&lt;br /&gt;
void* f(void* x)&lt;br /&gt;
{&lt;br /&gt;
    int j = 0;&lt;br /&gt;
    int k = *(int*)x;&lt;br /&gt;
    &lt;br /&gt;
    for(j = 0; j &amp;lt; 100; j++)&lt;br /&gt;
        v += sin(j) + 1 + k;&lt;br /&gt;
&lt;br /&gt;
    return NULL;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    pthread_t threads[NUM_THREADS];&lt;br /&gt;
    int idx[NUM_THREADS];&lt;br /&gt;
    int t;&lt;br /&gt;
   &lt;br /&gt;
    for(t=0; t&amp;lt;NUM_THREADS; t++) {&lt;br /&gt;
        idx[t] = t;&lt;br /&gt;
        pthread_create(&amp;amp;threads[t], NULL, f, (void*)&amp;amp;idx[t]);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    for(t=0; t&amp;lt;NUM_THREADS; t++)&lt;br /&gt;
        pthread_join(threads[t], NULL);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%i\n&amp;quot;, v);&lt;br /&gt;
&lt;br /&gt;
    pthread_exit(NULL);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The program can be compiled with&lt;br /&gt;
&amp;lt;pre&amp;gt;$ gcc -Wall pthreads.c -o pthreads -pthread -lm -O2&amp;lt;/pre&amp;gt;&lt;br /&gt;
where -pthread tells the compiler to link against the Pthreads library and -lm is needed for linking against the math library.&lt;br /&gt;
This program has a race condition, consecutive executions can give different outputs. Such errors are hard to find because they can show up very rarely.&lt;br /&gt;
Helgrind can tell you the problematic part of your code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ valgrind --tool=helgrind ./pthreads&lt;br /&gt;
...&lt;br /&gt;
==29237== ----------------------------------------------------------------&lt;br /&gt;
==29237== &lt;br /&gt;
==29237== Possible data race during read of size 4 at 0x600C78 by thread #3&lt;br /&gt;
==29237== Locks held: none&lt;br /&gt;
==29237==    at 0x4007BC: f(void*) (in /pfs/data2/home/xx/xxxx/xxxx/pthreads)&lt;br /&gt;
==29237==    by 0x4A0C0D4: mythread_wrapper (hg_intercepts.c:219)&lt;br /&gt;
==29237==    by 0x3EDA6079D0: start_thread (in /lib64/libpthread-2.12.so)&lt;br /&gt;
==29237==    by 0x3ED9AE8B6C: clone (in /lib64/libc-2.12.so)&lt;br /&gt;
==29237== &lt;br /&gt;
==29237== This conflicts with a previous write of size 4 by thread #2&lt;br /&gt;
==29237== Locks held: none&lt;br /&gt;
==29237==    at 0x4007FB: f(void*) (in /pfs/data2/home/xx/xxxx/xxxx/pthreads)&lt;br /&gt;
==29237==    by 0x4A0C0D4: mythread_wrapper (hg_intercepts.c:219)&lt;br /&gt;
==29237==    by 0x3EDA6079D0: start_thread (in /lib64/libpthread-2.12.so)&lt;br /&gt;
==29237==    by 0x3ED9AE8B6C: clone (in /lib64/libc-2.12.so)&lt;br /&gt;
==29237== &lt;br /&gt;
==29237== ----------------------------------------------------------------&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we know that we have to check the function f for a possible data race. A similar output can be achieved using drd with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ valgrind --tool=drd ./pthreads&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Valgrind can give even better hints when compiled with debug information (helgrind produces similar output):  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ gcc -g -Wall pthreads.c -o pthreads -pthread -lm&lt;br /&gt;
$ valgrind --tool=drd ./pthreads&lt;br /&gt;
...&lt;br /&gt;
==604== Thread 3:&lt;br /&gt;
==604== Conflicting load by thread 3 at 0x00600cc0 size 4&lt;br /&gt;
==604==    at 0x400749: f(void*) (pthreads.c:17)&lt;br /&gt;
==604==    by 0x4A128B4: vgDrd_thread_wrapper (drd_pthread_intercepts.c:355)&lt;br /&gt;
==604==    by 0x3EDA6079D0: start_thread (in /lib64/libpthread-2.12.so)&lt;br /&gt;
==604==    by 0x3ED9AE8B6C: clone (in /lib64/libc-2.12.so)&lt;br /&gt;
==604== Allocation context: BSS section of fs/data2/home/xx/xxxx/xxxx/pthreads&lt;br /&gt;
==604== Other segment start (thread 2)&lt;br /&gt;
==604==    (thread finished, call stack no longer available)&lt;br /&gt;
==604== Other segment end (thread 2)&lt;br /&gt;
==604==    (thread finished, call stack no longer available)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The execution can take longer but now we know that the problem is most likely in line 17 (which is correct).&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugger software]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/Intel_Compiler&amp;diff=1036</id>
		<title>Development/Intel Compiler</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/Intel_Compiler&amp;diff=1036"/>
		<updated>2014-05-12T14:47:31Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Intel Compiler&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| compiler/intel/xxx&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [https://software.intel.com/en-us/c-compilers Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| icc, icpc, ifort, idb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Intel Compiler&#039;&#039;&#039; of the &#039;&#039;&#039;Intel Composer XE Suite&#039;&#039;&#039; consists of tools to compile and debug C, C++ and Fortran programs:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;margin:5px;border-collapse:collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| icc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel C compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| icpc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel C++ compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| ifort&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel Fortran compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| idb&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel debugger in GUI mode&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| idbc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel debugger in console mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Aside from that the suite also includes the TBB (Threading Building Blocks) and IPP (Integrated Performance Primitives) libraries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Loading:&#039;&#039;&#039; There are different versions of the Intel compilers installed. To get a list of these installations execute the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module avail compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is a default version which will be loaded when no version is explicitly specified, so the command&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
will load the default version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039;&lt;br /&gt;
http://software.intel.com/en-us/articles/intel-c-composer-xe-documentation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039; For version specific documentation see the help page of the module. For example&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module help compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show the information for the default version.&lt;br /&gt;
For detailed lists of the different program options consult the particular man page:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man icc&lt;br /&gt;
$ man icpc&lt;br /&gt;
$ man ifort&lt;br /&gt;
$ man idb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optimizations:&#039;&#039;&#039; You can turn on various optimization options to enhance the performance of your program. Which options are the best depends on the specific program and can be determined by benchmarking your code. A command which gives good performance and a decent file size is&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -xHost -O2 ex.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more aggressive optimization flags and levels (e.g. -O3 or -fast and implied options) but the compiled programs can get quite large due to inlining. Additionally the compilation process will probably take longer. Moreover it may happen that the compiled program is even slower -- or may require installation of additional statically-linked libraries. Such a command would be for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -fast ex.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Profiling:&#039;&#039;&#039;&lt;br /&gt;
Profiling an application means augmenting the compiled binary with information on execution counts per source-line (and basic blocks) -- e.g. one may see how many times an if-statement has been evaluated to true. To do so, compile your code with the profile flag:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -p ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
Using the gprof tool, one may manually inspect execution count of each executed line of source code.&lt;br /&gt;
&lt;br /&gt;
For compiler optimization, recompile Your source using &lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc --prof-gen ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
then execute the most common and typical use-case of Your application, and then recompile using the generated profile count (and using optimization):&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc --prof-use -O2 ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Further literature:&#039;&#039;&#039;&lt;br /&gt;
A tutorial on optimization can be found at http://download-software.intel.com/sites/default/files/article/301481/compiler-essentials.1.pdf&lt;br /&gt;
and to get the different optimization options execute&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ icc -help opt&lt;br /&gt;
$ icc -help advanced&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or the previously described catch-all option &#039;&#039;&#039;-v --help&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiler_software]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/Intel_Compiler&amp;diff=1035</id>
		<title>Development/Intel Compiler</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/Intel_Compiler&amp;diff=1035"/>
		<updated>2014-05-12T14:44:40Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | Intel Compiler&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| compiler/intel/xxx&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://software.intel.com/en-us/articles/intel-c-composer-xe-documentation Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| icc, icpc, ifort, idb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Intel Compiler&#039;&#039;&#039; of the &#039;&#039;&#039;Intel Composer XE Suite&#039;&#039;&#039; consists of tools to compile and debug C, C++ and Fortran programs:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;margin:5px;border-collapse:collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| icc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel C compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| icpc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel C++ compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| ifort&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel Fortran compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| idb&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel debugger in GUI mode&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| idbc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| Intel debugger in console mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Aside from that the suite also includes the TBB (Threading Building Blocks) and IPP (Integrated Performance Primitives) libraries.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Loading:&#039;&#039;&#039; There are different versions of the Intel compilers installed. To get a list of these installations execute the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module avail compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is a default version which will be loaded when no version is explicitly specified, so the command&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
will load the default version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039;&lt;br /&gt;
http://software.intel.com/en-us/articles/intel-c-composer-xe-documentation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039; For version specific documentation see the help page of the module. For example&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module help compiler/intel&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show the information for the default version.&lt;br /&gt;
For detailed lists of the different program options consult the particular man page:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man icc&lt;br /&gt;
$ man icpc&lt;br /&gt;
$ man ifort&lt;br /&gt;
$ man idb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optimizations:&#039;&#039;&#039; You can turn on various optimization options to enhance the performance of your program. Which options are the best depends on the specific program and can be determined by benchmarking your code. A command which gives good performance and a decent file size is&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -xHost -O2 ex.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more aggressive optimization flags and levels (e.g. -O3 or -fast and implied options) but the compiled programs can get quite large due to inlining. Additionally the compilation process will probably take longer. Moreover it may happen that the compiled program is even slower -- or may require installation of additional statically-linked libraries. Such a command would be for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -fast ex.c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Profiling:&#039;&#039;&#039;&lt;br /&gt;
Profiling an application means augmenting the compiled binary with information on execution counts per source-line (and basic blocks) -- e.g. one may see how many times an if-statement has been evaluated to true. To do so, compile your code with the profile flag:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc -p ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
Using the gprof tool, one may manually inspect execution count of each executed line of source code.&lt;br /&gt;
&lt;br /&gt;
For compiler optimization, recompile Your source using &lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc --prof-gen ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
then execute the most common and typical use-case of Your application, and then recompile using the generated profile count (and using optimization):&lt;br /&gt;
&amp;lt;pre&amp;gt;$ icc --prof-use -O2 ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Further literature:&#039;&#039;&#039;&lt;br /&gt;
A tutorial on optimization can be found at http://download-software.intel.com/sites/default/files/article/301481/compiler-essentials.1.pdf&lt;br /&gt;
and to get the different optimization options execute&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ icc -help opt&lt;br /&gt;
$ icc -help advanced&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or the previously described catch-all option &#039;&#039;&#039;-v --help&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiler_software]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=Development/GCC&amp;diff=1034</id>
		<title>Development/GCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=Development/GCC&amp;diff=1034"/>
		<updated>2014-05-12T14:40:05Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{|  align=&amp;quot;right&amp;quot; {{Table|width=40%}}   --&amp;gt;&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | GCC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| compiler/gnu/xxx&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
|Citing&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://gcc.gnu.org/ Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Included in module&lt;br /&gt;
| gcc, g++, gfortran&lt;br /&gt;
|}&lt;br /&gt;
The &#039;&#039;&#039;GNU Compiler Collection (GCC)&#039;&#039;&#039; consists of tools to compile C, C++ and Fortran programs:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;margin:5px;border-collapse:collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| gcc&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| GNU C compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| g++&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| GNU C++ compiler&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| gfortran&lt;br /&gt;
|style=&amp;quot;padding:3px&amp;quot;| GNU Fortran compiler&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Loading:&#039;&#039;&#039; There is a version of GCC available on the system without loading a module but it may be outdated and it is recommended to load the GNU compiler module. To get a list of all the different versions installed on the system execute the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module avail compiler/gnu&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is a default version which will be loaded when no version is explicitly specified, so the command&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module load compiler/gnu&amp;lt;/pre&amp;gt;&lt;br /&gt;
will load the default version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Online documentation:&#039;&#039;&#039; http://gcc.gnu.org/onlinedocs/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Local documentation:&#039;&#039;&#039; For version specific documentation see the help page of the module. For example&lt;br /&gt;
&amp;lt;pre&amp;gt;$ module help compiler/gnu&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show the information for the default version.&lt;br /&gt;
For detailed lists of the different program options consult the particular man page:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man gcc&lt;br /&gt;
$ man g++&lt;br /&gt;
$ man gfortran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optimizations:&#039;&#039;&#039; You can turn on various optimization options to enhance the performance of your program. Which options are the best depends on the specific program and can be determined by benchmarking your code. A command which gives good performance and a decent file size is&lt;br /&gt;
&amp;lt;pre&amp;gt;$ gcc -march=native -O2 ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are more aggressive optimization flags but the compiled programs can get quite large and the compilation process will probably take much longer. Moreover it can happen that the so compiled program is even slower. Such a command would be for example&lt;br /&gt;
&amp;lt;pre&amp;gt;$ gcc -march=native -O3 ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
For a complete list of all the optimization options execute&lt;br /&gt;
&amp;lt;pre&amp;gt;$ gcc --help=optimizers&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Profiling:&#039;&#039;&#039; If you want to profile your program using gprof you have to compile your code with the profile flag:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ gcc -pg ex.c -o ex&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Compiler_software]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=803</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=803"/>
		<updated>2014-03-06T14:29:53Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwUniCluster. Therefore you must log into the bwUniCluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password. Use a strong password because otherwise an attacker could take control of your VNC session.&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server with your computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TightVNC Java Viewer which is a tool that can simplify the process a little bit but needs at least Java version 1.6 to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TightVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.tightvnc.com/download.php TightVNC Java Viewer], Java&amp;lt;br /&amp;gt; Open TightVNC Java Viewer (the executable is called tightvnc-jviewer.jar), check &amp;quot;Use SSH tunneling&amp;quot; and fill in the parameters provided by the run_vncserver script. Now you can click on the &amp;quot;Connect&amp;quot; button and enter your passwords.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the run_vncserver script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by run_vncserver, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:n&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by run_vncserver. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start tigervnc and connect to localhost:n where n is the display number printed by run_vncserver.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
If you want to exit your VNC session don&#039;t just close the window because then the VNC server won&#039;t terminate and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically.&lt;br /&gt;
[[Category:visualization]][[Category:bwUniCluster]]&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=802</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=802"/>
		<updated>2014-03-06T13:10:34Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwUniCluster. Therefore you must log into the bwUniCluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password. Use a strong password because otherwise an attacker could take control of your VNC session.&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server with your computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with TightVNC Java Viewer which is a tool that can simplify the process a little bit but needs at least Java version 1.6 to run. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with TightVNC Java Viewer&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.tightvnc.com/download.php TightVNC Java Viewer], Java&amp;lt;br /&amp;gt; Open TightVNC Java Viewer (the executable is called tightvnc-jviewer.jar), check &amp;quot;Use SSH tunneling&amp;quot; and fill in the parameters provided by the run_vncserver script. Now you can click on the &amp;quot;Connect&amp;quot; button and enter your passwords.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the ssh command given by the run_vncserver script. Open a new terminal, start a VNC viewer and connect to localhost:n, where n is the display number printed by run_vncserver, using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:n&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without TightVNC Java Viewer for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and go to Connection -&amp;gt; SSH -&amp;gt; Tunnels. Choose &amp;quot;IPv4&amp;quot; and fill in the parameters provided by run_vncserver. After you clicked &amp;quot;Add&amp;quot; you must navigate to Session and connect to the bwUniCluster with your username and password. Once the connection is established start tigervnc and connect to localhost:n where n is the display number printed by run_vncserver.&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
If you want to exit your VNC session don&#039;t just close the window because then the VNC server won&#039;t terminate and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=801</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=801"/>
		<updated>2014-03-05T13:26:55Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwunicluster. Therefore you must log into the bwunicluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
If you start a VNC server for the first time you will be asked to set a password. Use a strong password as usual&lt;br /&gt;
because otherwise an attacker could take control of your VNC session.&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server with your computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with ssvnc which is a tool that can simplify the process a little bit. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with ssvnc&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.karlrunge.com/x11vnc/ssvnc.html ssvnc]&amp;lt;br /&amp;gt; Open ssvnc and fill in the parameters provided by the run_vncserver script. Check &amp;quot;Use SSH&amp;quot; and click on the &amp;quot;Connect&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without ssvnc for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the command given by the run_vncserver script. Open a new terminal, start a VNC viewer and connect to localhost:1 using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without ssvnc for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and add a tunnel in Connection -&amp;gt; SSH -&amp;gt; Tunnels with the parameters provided by run_vncserver. Now you can start tigervnc and connect to localhost:1&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
If you want to exit your VNC session don&#039;t just close the window because then the VNC server won&#039;t terminate and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=800</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=800"/>
		<updated>2014-03-05T12:36:07Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TigerVNC =&lt;br /&gt;
{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwunicluster. Therefore you must log into the bwunicluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server with your computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with ssvnc which is a tool that can simplify the process a little bit. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with ssvnc&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.karlrunge.com/x11vnc/ssvnc.html ssvnc]&amp;lt;br /&amp;gt; Open ssvnc and fill in the parameters provided by the run_vncserver script. Check &amp;quot;Use SSH&amp;quot; and click on the &amp;quot;Connect&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without ssvnc for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the command given by the run_vncserver script. Open a new terminal, start a VNC viewer and connect to localhost:1 using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without ssvnc for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and add a tunnel in Connection -&amp;gt; SSH -&amp;gt; Tunnels with the parameters provided by run_vncserver. Now you can start tigervnc and connect to localhost:1&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
If you want to exit your VNC session don&#039;t just close the window because then the VNC server won&#039;t terminate and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
	<entry>
		<id>https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=799</id>
		<title>JUSTUS2/Visualization</title>
		<link rel="alternate" type="text/html" href="https://wiki.bwhpc.de/wiki/index.php?title=JUSTUS2/Visualization&amp;diff=799"/>
		<updated>2014-03-05T12:33:04Z</updated>

		<summary type="html">&lt;p&gt;M Neuer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|{{Softwarebox}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;  style=&amp;quot;text-align:center&amp;quot; | TigerVNC&lt;br /&gt;
|-&lt;br /&gt;
| module load&lt;br /&gt;
| vis/tigervnc&lt;br /&gt;
|-&lt;br /&gt;
| License&lt;br /&gt;
| GPL&lt;br /&gt;
|-&lt;br /&gt;
| Links&lt;br /&gt;
| [http://www.tigervnc.org TigerVNC Homepage]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Graphical Interface&lt;br /&gt;
| No&lt;br /&gt;
|}&lt;br /&gt;
= TigerVNC =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TigerVNC&#039;&#039;&#039; is a high-performance implementation of VNC (Virtual Network Computing), a client/server application that allows &lt;br /&gt;
users to launch and interact with graphical applications on remote machines. It should be faster than standard X11 forwarding and thus can&lt;br /&gt;
be used if a graphical software feels slow and has bad responsiveness.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
First, you need to start the VNC server on the bwunicluster. Therefore you must log into the bwunicluster with your username and password as usual.&lt;br /&gt;
You should not start the server on a login node but request an interactive job using for example the following command.&lt;br /&gt;
 $ msub -v HOME,TERM,USER,DISPLAY -S /bin/bash -I -l nodes=1:ppn=1 -l walltime=0:02:00:00&lt;br /&gt;
On your assigned compute node start the VNC server with&lt;br /&gt;
 $ module load vis/tigervnc&lt;br /&gt;
 $ run_vncserver&lt;br /&gt;
The script prints detailed instructions on how to establish the connection to the VNC server with your computer. They depend on whether you&lt;br /&gt;
use Windows or Linux and if you work with ssvnc which is a tool that can simplify the process a little bit. Therefore the next steps are&lt;br /&gt;
divided into 3 cases. Each command should be issued on the local computer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login with ssvnc&#039;&#039;&#039; &amp;lt;br /&amp;gt;Needed Software: [http://www.karlrunge.com/x11vnc/ssvnc.html ssvnc]&amp;lt;br /&amp;gt; Open ssvnc and fill in the parameters provided by the run_vncserver script. Check &amp;quot;Use SSH&amp;quot; and click on the &amp;quot;Connect&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without ssvnc for Linux users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: A VNC viewer such as tigervnc, gvncviewer or tightvnc&amp;lt;br /&amp;gt;A tunnel must be created with the command given by the run_vncserver script. Open a new terminal, start a VNC viewer and connect to localhost:1 using a command such like this&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;$ vncviewer localhost:1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Login without ssvnc for Windows users&#039;&#039;&#039;&amp;lt;br /&amp;gt;Needed Software: [http://sourceforge.net/projects/tigervnc/files/tigervnc/1.3.0 tigervnc], [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty]&amp;lt;br /&amp;gt;You need to start Putty and add a tunnel in Connection -&amp;gt; SSH -&amp;gt; Tunnels with the parameters provided by run_vncserver. Now you can start tigervnc and connect to localhost:1&lt;br /&gt;
&lt;br /&gt;
== Shutdown ==&lt;br /&gt;
If you want to exit your VNC session don&#039;t just close the window because then the VNC server won&#039;t terminate and you will run into problems&lt;br /&gt;
when you try to start a new VNC session later. If you log out of Gnome properly the VNC server will terminate automatically.&lt;/div&gt;</summary>
		<author><name>M Neuer</name></author>
	</entry>
</feed>