PTP/PTP Configuration Issues
- This page is intended to a provide a single source of information on PTP configuration issues, though it links to existing documentation in the user guides, mailing lists, and tutorials.
- In order to run a remote parallel application in Eclipse, at minimum you will need to set up a resource manager configuration, run configuration, and set environment variables.
- The resource manager is a configuration utility for specifying what resource (i.e. machine) will be used and how (e.g. what scheduler).
- A run configuration contains information particular to the run of a project on a given resource. The resource must be set up through the resource manager before the run configuration can be done.
- Theses guides assume the PTP plug-ins are installed.
Resource Manager Setup
- There are several types for resource managers to choose from. You may learn about them here:
- A remote launch is simply the execution of a binary on a remote machine, unmediated by a parallel execution program such as mpiexec or mpirun or a batch system such as PBS.
- If you are unsure which to use, try to ssh into the machine to see if it supports a particular type (e.g. run locate mpich2/lib to see if the mpich2 libraries are installed). If you are still unsure, visit the site page for the machine if there exists one; otherwise ask your systems administrator what parallel and/or job submission services are available.
- See the user guide on setting up resource managers in general to learn how to add a resource manager.
- In addition, see the user guide documentation on setting up IBM LoadLeveler, Parallel Environment, PBS, and SLURM if you are configuring those.
- Remote logins - You need to have the "Remote Environments" view enabled, and then you can see the list of logins/machines to edit.
- Run configurations are per-resource and per-project, which means you need a resource manager set up as well as an existing project to run.
- See the user guide documentation on setting up run configurations in general.
- Note that you may also set environment variables for a remote session within a run configuration. Click the Environment tab in a run configuration dialogue, then click New to fill in the name and value for the variable.
Loading Remote Environment Variables for a Synchronized Project
- An environment variable is a named value associated with a terminal session. Values take the form of strings, but numeric values can be stored and manipulated as strings.
- Environment variables are local; thus, if you change a variable in a terminal session, its changes affect only that terminal session.
- Environment variables are inherited by child processes. Child processes cannot change environment variables associated with the parent.
- Some important environment variables:
- PATH: paths to binary files. If you have installed software in user space, make sure you update your $PATH to include the path to those binaries; then you can call them from anywhere.
- LD_LIBRARY_PATH: paths to shared libraries. If an application in your $PATH uses shared libraries not within $LD_LIBRARY_PATH, you'll need to set $LD_LIBRARY_PATH to include them. Otherwise you will get an error such as: "libsomething.so: could not find shared library"
- The command for defining an environment variable is export VAR=VALUE, where VAR is the name of the environment variable and VALUE is the value.
- After definition, environment variables may be referenced as $VAR, with a dollar sign ($) before the variable name. E.g. echo $VAR following the above definition will print VALUE.
- export GREETING="Hello"
- export PATH=$PATH:$HOME/bin
- Environment variables can be set per session on the command line, but are not stored. To store them, one may define them in ~/.bashrc or ~/.profile so that they load on startup (the files ~/.bashrc and ~/.profile contain instructions which execute upon startup of a terminal session).
- If you change ~/.bashrc or ~/.profile and want to start a new session with its changes, use the command source [filename], as in source ~/.bashrc or source ~/.profile.
- If you are not using bash, then you will need to change the shell-specific configuration.
- You may also set environment variables for a remote session within a run configuration. Click the Environment tab in a run configuration dialogue, then click New to fill in the name and value for the variable.
Private/Public Key Decryption Failure
- ssh is capable of using keys to authenticate a user instead of a password. Normally, a private key and a public key are generated on the user's machine, then the public key is added on the remote machine as an authorized client. The private key is then signed by the client. This allows the user to validate her identity via the key instead of a password.
- If you undergo this process and encounter a "failed to decrypt key_name" message, it may be due to a disparity between the encryption algorithms that generate the imported and exported keys rather than a misconfiguration.
- Try updating to Jcsh 0.1.44 from Orbit by adding this link as a repository.
- See user-ptp archives for more details.
- Jcsh 0.1.44 will be released automatically with Juno.
Configuration / Setup of SDM
- Download the SDM from http://www.eclipse.org/downloads/download.php?file=/tools/ptp/updates/indigo/ptp-proxy-5.0.4-201111121445.zip
- Unzip this and run 'sh BUILD' in proxy/org.eclipse.ptp.macosx.x86_184.108.40.206111121445
- Get a copy of gfortran from here: http://hpc.sourceforge.net/ then install it in / (as root)
- Launch Eclipse and create a new Fortran Hello World project.
- Edit the makefile; change the fortran compiler to /usr/local/bin/gfortran, and remove the -O2 optimization.
- Compile it by clicking on the hammer.
- Create an Open MPI resource manager.
- Create a debug configuration using this project and RM, set the executable, and set number of procs to 1.
- On the debug tab, select SDM from step 2. Make sure session host is 'localhost'.
- Launch the debug session.