DiFX Installation

Tarballs of difx are not presently available - in order to get access to the latest version of DiFX, you need to download it from SVN.

First, if you have not already, please join the DiFX-Users group hosted at Google Groups - to do this, go to http://groups.google.com/group/difx-users/ and request to join. Please make use of the field which lets you describe yourself, and include information on your affiliation if any and your interest in DiFX (the list does get some spam applications, and this makes it easier and quicker to approve real applications).

Then, if you do not already have SVN access please go to http://svn.atnf.csiro.au/cgi-bin/svnpasswd and apply for it. You might have to wait up to a day or so for that to be approved (the admins are in Australia, so you will probably have to wait for Australian business hours).

Checking out the code

As a developer

Create an SVN area (somewhere with network access, obviously) and type:

svn co https://svn.atnf.csiro.au/difx

(you may have to use the ”–username” option with your SVN username). This should check out the entire difx package, which includes mpifxcorr (the actual correlator), other necessary correlator plug-ins and a host of useful auxilliary programs , cd to difx/, and then again to the version of difx you want to compile (difx1.5 is the current stable production version).

As a user

At the time of writing, the current stable version of DiFX is DiFX-1.5.4 or DiFX-2.0.1. You should look on https://svn.atnf.csiro.au/trac/difx/browser/master_tags/ to see what the latest version is, and check the difx-users mailing archive to make sure that the highest version number you see there has been declared stable. Then, to check out (for example) DiFX 1.5.4, type:

svn co https://svn.atnf.csiro.au/difx/master_tags/DiFX-1.5.4

If your username is different between your login and your svn account use the option ”–username” with your SVN username. This should check out the entire difx1.5 package, which contains everything you need to run the software correlator.

Compiling DiFX

Getting the other components

Vector Library

The correlator needs an optimized vector library, which by default (and is currently the only supported option) is Intel Performance Primitives (IPP). You can download a trial, or buy it (its pretty cheap) from http://www.intel.com/cd/software/products/asmo-na/eng/302910.htm.

The current version of IPP is 6.0 (now 7.0 has just come out). Many people have versions stretching back as far as 4.x. Unfortunately, the names of the libraries which it is necessary to link against change from version to version. We have taken care of the majority of the changes (which occur with 32 bit vs 64 bit libraries) in the automake setup for DiFX. However, you may notice when compiling that the default linker line is not correct for your local installation. A known problem is the demand for ”-liomp5” with ipp6.0, which was not required for earlier versions. If compilation dies saying “libiomp5 could not be found”, edit configure.ac and remove this from IPP_LIBS.

Recently, a better solution to the IPP configuration problem has been developed by Walter B, who put together a python script called genipppc. This generates a package-config (.pc) file suitable for the IPP library. To use this script, first install IPP. Then go to svn_checkout_area/setup/, where svn_checkout_area is where you ran the SVN checkout from. In this directory you will find genipppc - run it with one argument, which is the path to the base of your IPP install. This will generate a single file called ipp.pc. Copy it to $DIFXROOT/lib/pkgconfig/ (you may need to create this directory). From this point on, as long as $DIFXROOT/lib/pkgconfig/ is in you $PKG_CONFIG_PATH (which it will be if you use setup.bash/setup.csh) all the DiFX programs will know where to find the IPP include and library files.

MPI

The correlator uses an implementation of Message Passing Interface (MPI) to shoot data around. Most linux systems will probably already have an implementation of MPI installed - try typing “which mpicc” to see if you have one installed. If not, two well-tested systems are mpich1 and openmpi.

Compiling the correlator itself

Now, you should see all the components of DiFX laid out beneath you. The major components are in mpifxcorr/ (the actual correlator) and common/, which includes libraries for reading/writing data, logging, configuring the correlator etc. The DiFX project uses GNU autotools, which should be familiar to anyone who uses linux regularly. At the top level is a README.txt file which describes how to install the entire correlator.

You need to set some local paths in the setup scripts and run install-difx. If you have checked out a tagged release, these files will be in the top directory of the difx checkout code. If you have checked out the full difx repository. These files are in the setup subdirectory (and install-difx must be run from there).

  • Edit setup.bash or setup.csh to set various paths as required. If you have done full subversion checkout, set DIFX_VERSION to be either trunk or the name of the branch you want to compile
  • source setup.bash (or setup.csh)
  • Probably source the setup files from you login scripts
  • ./install-difx

If you want some non-standard perl utilities to also be installed, run ./install-difx –perl

This will take some time to run, but barring unforeseen problems will leave you with a happily installed correlator! For a full list of install-difx options, run

 ./install-difx --help

In the unhappy event of install problems, see the Troubleshooting section below. An alternate installation process is described here.

Dependencies

Notes:

  • difx_db and its dependency cx_Oracle are VLBA operations specific.
  • package calcif2 used to be called job2difx

DiFX package dependencies for various distributions

Fedora

Debian

Ubuntu

Mac OSX

After installation

In order to generate geometric models to use in the correlator, you will need to start the calcServer program (unless you are at an institute that already has a calcserver installlation). In order to do this, run startCalcServer as root (or with su). Once you have done this, you should check it is running using checkCalcserver. Make sure to set the $CALC_SERVER environment variable to an appropriate value (the machine name where you will run the calc server). You may also wish to (as root, or with su) run “cp init.d/calcserver /etc/init.d” and have this file be run at bootup (so you don't have to restart the calcserver manually after every reboot).

Troubleshooting compilation

  • DiFX continues to fail to compile after fixing some problem (such as missing dependency)

Run ./difx-install –reconfig

  • DiFX wants to use gfortran, I have g77

Run ./difx-install –g77

difx/installation.txt · Last modified: 2011/12/09 15:34 by cormac
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki