| 143 | |
| 144 | === Configuration for other machines === |
| 145 | |
| 146 | Starting from version 3.2a, beside the default hosts (HLRN, etc.), PALM can also be installed and run on other Linux-Cluster-, IBM-AIX, or NEC-SX-systems. To configure PALM for a non-default host only requires to add some lines to the configuration file {{{.mrun.config}}}.\\\ |
| 147 | First, you have to define the host identifier (a string of arbitrary length) under which your local host shall be identified by adding a line |
| 148 | {{{ |
| 149 | %host_identifier <hostname> <host identifier> |
| 150 | }}} |
| 151 | to the configuration file (best to do this in the section where the other default host identifiers are defined). Here {{{<hostname>}}} must be the name of your local host as provided by the unix-command "{{{hostname}}}". The first characters of {{{<host identifier>}}} have to be "{{{lc}}}", if your system is (part of) a linux-cluster, "{{{ibm}}}", or "{{{nec}}}" in case of an IBM-AIX- or NEC-SX-system, respectively. For example, if you want to install on a linux-cluster, the line may read as |
| 152 | {{{ |
| 153 | %host_identifier foo lc_bar |
| 154 | }}} |
| 155 | In the second step, you have to give all informations neccessary to compile and run PALM on your local host by adding an additional section to the configuration file: |
| 156 | {{{ |
| 157 | %remote_username <1> <host identifier> parallel |
| 158 | %tmp_user_catalog <2> <host identifier> parallel |
| 159 | %compiler_name <3> <host identifier> parallel |
| 160 | %compiler_name_ser <4> <host identifier> parallel |
| 161 | %cpp_options <5> <host identifier> parallel |
| 162 | %netcdf_inc <6> <host identifier> parallel |
| 163 | %netcdf_lib <7> <host identifier> parallel |
| 164 | %fopts <8> <host identifier> parallel |
| 165 | %lopts <9> <host identifier> parallel |
| 166 | }}} |
| 167 | The section consists of four columns each separated by one or more blanks. The first column gives the name of the respective environment variable used by '''mrun''' and '''mbuild''', while the second column defines its value. The third column has to be the host identifier as defined above, and the last column in each line must contain the string "{{{parallel}}}". Otherwise, the respective line(s) will be interpreted as belonging to the setup for compiling and running a serial (non-parallel) version of PALM.\\\\ |
| 168 | All brackets have to be replaced by the appropriate settings for your local host: |
| 169 | |
| 170 | * {{{<1>}}} is the username on your LOCAL host |
| 171 | * {{{<2>}}} is the temporary directory in which PALM runs will be carried out |
| 172 | * {{{<3>}}} is the compiler name which generates parallel code |
| 173 | * {{{<4>}}} is the compiler name for generating serial code |
| 174 | * {{{<5>}}} are the preprocessor options to be invoked. In most of the cases, it will be neccessary to adjust the MPI data types to double precision by giving {{{-DMPI_REAL=MPI_DOUBLE_PRECISION -DMPI_2REAL=MPI_2DOUBLE_PRECISION}}}. To switch on the netCDF support, you also have to give {{{-D__netcdf}}} and {{{-D__netcdf4}}} (if you like to have netCDF4/HDF5 data format; this requires a netCDF4 library!). |
| 175 | * {{{<6>}}} is the compiler option for specifying the include path to search for the netCDF module/include files |
| 176 | * {{{<7>}}} are the linker options to search for the netCDF library |
| 177 | * {{{<8>}}} are the general compiler options to be used. You should allways switch on double precision (e.g. {{{-r8}}}) and code optimization (e.g. {{{-O2}}}). |
| 178 | * {{{<9>}}} are the linker options |
| 179 | * {{{<host identifier>}}} is the host identifier as defined before |
| 180 | |
| 181 | A typical example may be: |
| 182 | {{{ |
| 183 | %remote_username raasch lc_bar parallel |
| 184 | %tmp_user_catalog /tmp lc_bar parallel |
| 185 | %compiler_name mpif90 lc_bar parallel |
| 186 | %compiler_name_ser ifort lc_bar parallel |
| 187 | %cpp_options -DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf lc_bar parallel |
| 188 | %netcdf_inc -I:/usr/local/netcdf/include lc_bar parallel |
| 189 | %netcdf_lib -L/usr/local/netcdf/lib:-lnetcdf lc_bar parallel |
| 190 | %fopts -axW:-cpp:-openmp:-r8:-nbs lc_bar parallel |
| 191 | %lopts -axW:-cpp:-openmp:-r8:-nbs:-Vaxlib lc_bar parallel |
| 192 | }}} |
| 193 | Currently (version 3.7a), depending on the MPI version which is running on your local host, the options for the execution command (which may be {{{mpirun}}} or {{{mpiexec}}}) may have to be adjusted manually in the '''mrun'''-script. A future version will allow to give the respective settings in the configuration file.\\\\ |
| 194 | If you have any problems with the PALM installation, the members of the PALM working group are pleased to help you. |