IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links
wiki:ParallelIPPvers

Version 2 (modified by Sebastian Jester, 17 years ago) ( diff )

Reformat code snippets for trac

Making an IPP installation accessible to multiple users

Setting up a global psconfig directory

There's one directory where all IPP installations live. By default, it's ~/psconfig/ but you can make it a different location by creating a file ~/.psconfigrc which contains

 set PSCONFDIR = /IPP/

Then create a directory $PSCONFDIR/psconfig and copy the psconfig.bash and psconfig.csh scripts there from the source tree (this is something that the build/install will probably do automatically in future).

The only thing that's missing is an alias for psconfig that reads those .csh or .bash files:

 bash: alias psconfig='source /IPP/psconfig.csh'
 csh:  alias psconfig "source /IPP/psconfig.bash"

Alternating between versions installed in a global directory and versions installed in your own home directory is possible, but you need to unset PSCONFDIR, make sure that there's no .psconfigrc (e.g. by renaming it), and point psconfig at the different different directory, so I don't recommend it.

To run pantasks, your startup file ~/.bashrc or ~/.tcshrc needs to execute psconfig; see Pantasks_FAQ#Why are my nodes "down" or "resp"?

Setting an alias

If ipp was installed with

 psbuild -bootstrap PSCONFDIR

the psconfig.bash and psconfig.csh point to the IPP installations in PSCONFDIR by default. Thus, for other users to use a given IPP install, they just need to create the same psconfig alias as the person who installed IPP, i.e.

 alias psconfig="source PSCONFDIR/psconfig.bash"

for bash, or

 alias psconfig "source PSCONFDIR/psconfig.csh"

for [t]csh.

PSCONFDIR needs to be readable by all the intended users, of course, AND NEEDS TO BE IDENTICAL TO WHAT'S SET IN ~/.psconfigrc.

In Heidelberg, there's always a softlink ipp-default pointing to the most recent installed version of IPP. To use that, then just issue the command

 psconfig ipp-default

on the command-line.

Important: To use multiple hosts in parallel in pantasks, your startup file needs to call psconfig. If you do that, there is an unfortunate bug in IPP (1079) that will break at least the man command, and maybe more.

Setting up individual config files

IPP has a config file hierarchy. There are two per-user config files:

 ~/.ipprc # Definitions for psphot etc.
 ~/.ptolemyrc # Definitions for dvo

There are templates for both files, so to begin with, just copy those into your home directory. In Heidelberg, suitable templates are at

 cp /IPP/ipprc.template ~/.ipprc
 cp /IPP/ptolemyrc.template ~/.ptolemyrc

The configuration system is hierarchical, with defaults in the global ippconfig directories that can be overridden by definitions in user-specified directories. E.g. to include camera definitions that are located in your own file area, edit the PATH in .ipprc:

 PATH		STR	/home/jester/IPP/ippconfig/:MYINSTALLDIR/share/ippconfig:

This looks for any required configuration files first in /home/jester/IPP/ippconfig/ and if it does not find a match there, takes the IPP-wide defaults. At present, you have to replicate an entire file in your own area if you want to change a single setting from the default. Also note that there is an internal hierarchy, with files in the recipes/ folder setting defaults that can be overriden in camera-specific files; the catch is that a concept MUST be present in the recipes/ version of a config file (i.e. you can't add new things in a camera-specific file).

In general, the configuration system may be changing, so that a per-user configuration that works with one version of IPP may cease to work with the next release. Thus, it may be necessary to compare the local versions of .ipprc, .ptolemyrc and any individual camera config files with their defaults from the new IPP version (in MYINSTALLDIR/share/ippconfig).

Compiling

In general

Get IPP tarfile or export from cvs and set the new version ID; including the date if from cvs, or using the version number if a numbered release

Warning: these are outdated as we have moved from cvs to svn. However, I haven't done the equivalent in svn yet.

 # Access IPP cvs
 export CVSROOT=cvs.pan-starrs.ifa.hawaii.edu:/cvsroot/pan-starrs; export CVS_RSH=ssh
 # Get IPP (here from cvs, by date)
 cd /IPP/
 cvs export -D 2008-11-11 -d ./cvs-20081111 ipp
 # Set psconfig id of new version
 psconfig cvs-20081111
 # Install autoconf 2.61 which is needed
 cd /IPP/extlibs/autoconf-2.61
 ./configure --prefix=/IPP/cvs-20081111.lin64/
 make && make install
 # Point to where CFITSIO will be
 export CFITSIO=/IPP/cvs-20081111.lin64/
 # Install IPP
 cd /IPP/cvs-20081111/psconfig/
 psbuild -dev -extbuild 
 # omit the -dev if building from a version-numbered tarball

If using pantasks, update your <code>~/.bashrc</code> (or equivalent) to point to the new version. Done!

Just Ohana / dvo

I wanted an install tree that has just Ohana i.e. dvo. To do that, I say

 psconfig dvo-2.2

which sets up a new install tree $PSCONFDIR/dvo-2.2. I then compile and install only Ohana:

 psbuild -only Ohana -rebuild -clean

I definitely need -rebuild because otherwise there may still be files pointing to the previous install directory and nothing happens because those are still up to date. I just threw in -clean for good measure, as I wouldn't bet on everything working without it.

Note both of these don't quite work automatically, as any libraries that are not installed in /usr/local or another standard location need to be copied into the version-dependent tree's include/ and lib/ subdirectories.

Just analysis tools but not pipeline or anything that requires sql

 psconfig ipp-2.2-nosql
 psbuild -only Ohana -rebuild && psbuild -start psLib -stop ppSim -rebuild && psbuild -only ippconfig -rebuild

I tried these without -clean and will see what happens.

Running

To use my just-Ohana tree, I log in and say

 psconfig dvo-2.2

I can then use dvo.

Similarly, for the analysis-only distribution I say

 psconfig ipp-2.2-nosql

and can run psphot.

Note: See TracWiki for help on using the wiki.