= Download & Installation = == Download == If you are interested in using or just testing the code, please create an account using the [[//trac/register|register form]]. This account will give you access to the PALM repository and also allow you to login on this trac-server, e.g. to submit trouble tickets, or to edit the wiki, if you have proper access permissions. As a registered user you will also be informed about new PALM updates by email. With your account you can then download the code via svn as described below. If you have further questions please contact [mailto:raasch@muk.uni-hannover.de]. We appreciate any comments on the contents of this server which may help us to improve our documentation. Please contact us by [[mailto:raasch@muk.uni-hannover.de|email]] or just send a [/newticket ticket] if you are a registered user. == [=#installation]PALM installation == [[TracNav(doc/install/toc)]] This page gives a brief overview of available installation methods of PALM on a Linux system. Here we differentiate between two perspectives on a computer. The first is the local computer (or local host), which is the computer that you are currently sitting at or are logged in via your terminal (ssh). The second is the remote computer (or remote host), which is any computer with a batch system, that you have {{{ssh}}} access to, but are not logged in at the moment. A typical remote computer is your favorite high performance computing (HPC) facility aka supercomputer. This perspective includes, that your remote (super)computer immediately becomes your local computer as soon as you log into it via {{{ssh}}}.\\\\ There are three methods to install and run PALM on Linux/UNIX systems (before you start, please read the [#requirements software requirements]): - [wiki:doc/install/automatic An automatic installer]. - [wiki:doc/install/advanced A full manual installation]. - [wiki:doc/install/simple A minimal manual installation method for benchmarks]. '''We recommend to start with a local installation''' using the [wiki:doc/install/automatic automatic installer], and then extend this installation to a full installation by following instructions given in the [wiki:doc/install/advanced full manual installation] section. With the '''automatic installer''' and the '''reduced manual installation method''', you can just run PALM interactively on the local computer. They do not allow to setup the creation of batch jobs and restart runs on any local or remote computers. Therefore, these methods are only suitable / recommended for users who like to do a quick test of PALM. However, as pointed out before, you can / should use the '''automatic installer''' as a basis for a complete manual installation.\\ The '''manual installation''' gives full access to all PALM features. It should be chosen to setup PALMs ability to run in batch mode on a local or remote computer (see [#requirements software requirements]). It allows to submit a job on the local host while instructing {{{palmrun}}} to execute the job on your desired remote host. The PALM output is then automatically transferred back to the local computer. The '''manual installation''' can of course also be used to work with PALM in interactive mode on the local computer. The installation process for the '''manual installation''' may require a valid account on the remote host as well.\\ The examples given in this chapter refer to a local installation of PALM on an IMUK Linux workstation (local host) and for running batch jobs on the Cray XC40 system of HLRN (remote host).\\ '''In case of problems with the installation, please check the [wiki:Help/FAQ#installation FAQ Installation Questions] first.'''\\ \\ === [=#hardware] Supported Hardware === PALM runs on all modern multicore workstation processors and on many different HPC systems. Furthermore, PALM has recently been ported to Graphics Processing Units (GPU) like the NVidia Tesla series and to manycore processor architectures like the Intel Xeon Phi Knights Landing. Please see [[wiki:doc/install/gpu|details]] \\ Regarding batch support PALM can be configured to be used on arbitrary supercomputers (see [wiki:doc/install/advanced advanced installation method]).\\\\ === [=#requirements] Software Requirements === The installation and operation of PALM requires at minimum (for the [#advanced advanced method] on both, the local and the remote host, unless stated otherwise): 1. The Bash-shell. 2. A NetCDF library with version number not earlier than 3.6.3 (for NetCDF, see under http://www.unidata.ucar.edu). 3. A FORTRAN 2003 compiler (for gfortran, use version number 6.2.1 or higher). 4. The Message Passing Interface (MPI), at least on the remote host, if the parallel version of PALM shall be used. 5. On the local host, the revision control system '''Subversion''', which is already part of most Linux distributions. The user needs a combination of username and password to access the PALM repository. For getting a permit please create an account using the [[//trac/register|register form]]. \\ Using PALM in batch mode additionally requires: 6. A job queuing system on the local or remote host. 7. SSH/SCP-connectivity to and from the remote host must not be blocked by a firewall and needs to be password-less using an SSH-key. '''Note:''' If you are using a Linux Distribution which is related to Ubuntu 16.04 or newer, you are lucky. The following command will install all PALM requirements on your system: {{{ #!sh apt-get install subversion cmake gfortran mpich libmpich-dev libnetcdff-dev netcdf-bin libfftw3-dev python3-pip }}} '''Very important:''' It is essential that your NetCDF and MPI library has been built with the same Fortran compiler that is used to compile PALM. Furthermore, in case of a NetCDF4 library with parallel I/O support, the NetCDF library needs to be build with the same MPI library as used for compiling PALM.