| 302 | |
| 303 | You can use the {{{palmrun}}} command on your local computer (e.g. your local PC or workstation) and let it submit a batch job to a remote computer at any place on the world. {{{palmrun}}} copies required input files from your local computer to the remote machine and output files back to your local machine, depending on the settings in the {{{.palm.iofiles}}} file. The job protocol file will also be automatically copied back to your local computer. |
| 304 | |
| 305 | If you like to use this {{{palmrun}}} feature, you need additional/special settings in the configuration file. Furthermore, you need to pre-compile the PALM-code for the remote machine using the {{{palmbuild}}} command. The automatic PALM installer can not be used to install PALM on that machine. You need to do most of the settings manually. |
| 306 | |
| 307 | Furthermore, passwordless ssh/scp access from the local computer to the remote computer, as well as from the remote to the local computer, is required. In remote mode, {{{palmrun}}} and {{{palmbuild}}} are heavily using ssh and scp commands, and if you have not established passwordless access, you would need to enter your password several times before the batch job is finally submitted. Moreover, the job protocol file and any output files cannot be transferred back to your local computer because there is no connection to the job which could be used to provide passwords for these transfers (and even if you could, your job may require your input during nighttime while you are sleeping). |
| 308 | |
| 309 | Now, let's start with the configuration file settings for remote batch jobs. For this it would be convenient to create a new configuration file based on the one you already used locally, e.g. by |
| 310 | {{{ |
| 311 | cp .palm.config.batch .palm.config.<remote host identifier> |
| 312 | }}} |
| 313 | where {{{<remote host identifier>}}} can be any string to identify your remote host. Edit this file and set at minimum the following additional variables: |
| 314 | {{{ |
| 315 | %remote_jobcatalog /home/username/job_queue |
| 316 | %remote_ip 123.45.6.7 |
| 317 | %remote_username your_username_on_the_remote_system |
| 318 | }}} |
| 319 | After the batch directives (lines that start with {{{BD:}}}) put another set of batch directives starting with {{{BDT:}}} that are required to generate a small additional batch job which does no more than transferring the job protocol back to your local system. Since the job protocol file generated by the main job (which is started by {{{palmrun}}}) is not available before the end of that job, the main job has to start another small job at its end, which only task is to send back the job protocol to the local host. The computing centers normally have special queues for these kind of small jobs, and you should request the job resources respectively. Here is an example for a CRAY-XC40 system: |
| 320 | {{{ |
| 321 | # BATCH-directives for batch jobs used to send back the jobfile from a remote to a local host |
| 322 | BDT:#!/bin/bash |
| 323 | BDT:#PBS -N job_protocol_transfer |
| 324 | BDT:#PBS -l walltime=00:30:00 |
| 325 | BDT:#PBS -l nodes=1:ppn=1 |
| 326 | BDT:#PBS -o {{job_transfer_protocol_file}} |
| 327 | BDT:#PBS -j oe |
| 328 | BDT:#PBS -q dataq |
| 329 | }}} |
| 330 | Only few resources are requested (e.g. 30 minutes cpu time and one core) and the job is running in a special queue {{{dataq}}}. You may need to adjust these settings with respect to your batch system. |
| 331 | |
| 332 | Additional settings for batch jobs on remote hosts can be found in the [wiki:doc/app/palmconfig complete description of the configuration file]. |
| 333 | |
| 334 | After setting up the configuration file and before calling {{{palmrun}}}, you need to call the {{{palmbuild}}} command to generate the PALM executable for the remote host: |
| 335 | {{{ |
| 336 | palmbuild -h <remote host identifier> |
| 337 | }}} |
| 338 | Keep in mind that the configuration file {{{.palm.config.<remote host identifier>}}} requires correct settings valid for your remote computer (compiler name, compiler options, include and library paths, etc.). If you forgot to call {{{palmbuild}}}, {{{palmrun}}} will ask you to do this for you. |
| 339 | |
| 340 | Now you can call {{{palmrun}}} with |
| 341 | {{{ |
| 342 | palmrun -d neutral -h <remote host identifier> ...... |
| 343 | }}} |
| 344 | After confirming the {{{palmrun}}} settings by entering {{{y}}}, similar information as for local batch jobs will be output to the terminal. After the job has been finished, the job protocol will be transferred to your local computer and put into the folder defined by {{{local_jobcatalog}}}. If this file does not appear, because e.g. the transfer failed, you may find the protocol file on the remote host in the folder defined by {{{remote_jobcatalog}}}. Like in case of batch jobs running on local computers, check the contents of this file carefully. Beside some additional information, it mainly contains the output of the {{{palmrun}}} command as you get it during interactive execution, and especially you get information about where to find the output files on your local computer. |
| 345 | |
| 346 | The configuration file {{{.palm.iofiles}}} offers special controls for copying INPUT/OUTPUT files, since large PALM-setups (those using large number of grid points) can produce extremely large output files which would require long time for transferring them to your local system and which might have sizes that exceed the capacity of your local discs. See chapter [wiki:doc/palm_iofiles INPUT/OUTPUT files] which explains how to control copying of INPUT/OUTPUT files. |