Hex Home
Difx web page http://astronomy.swin.edu.au/~adeller/software/difx/
Also see the google group for difx-users http://groups.google.com/group/difx-users (for which you have to have a google account, and have your membership approved before you can access it).
To checkout/install difx software
These are the notes for the installation of difx-1.5 by Simon (August 2009).
- Check the packages required for OS (Debian for Hex) on http://cira.ivec.org/dokuwiki/doku.php/difx/dependenciesdebian
dpkg --list | grep <package name>
(can be used to see if package is installed or not)- If it isn't then (after setting http_proxy environment variable, so that apt-get can get through UTAS proxy server), then
apt-get install <missing package>
. I had to install pkg-config, openmpi-dev and libexpat-dev
- edit /etc/subversion/servers (to set UTAS proxy username and password. Probably a good idea to remember to remove the password once the installation is complete as well)
cd ~ ; mv difx difx-old
(not sure if this is 100% necessary, but the SVN checkout didn't work properly for me on top of an old installation)svn co https://svn.atnf.csiro.au/difx
(you will need a username/password for the ATNF SVN repository to the difx area. Jim and Simon have these, but if you need one for yourself go to http://svn.atnf.csiro.au/cgi-bin/svnpasswd and request it, but it will take a day or so).cd difx/setup
- Editted
setup.bash
(changed export DIFXROOT=/home/observer/difx and export IPPROOT=/opt/intel/ipp/5.3.1.062/ia32, everything else looked OK). . setup.bash
- The PKG_CONFIG_PATH environment variable seems to need a / on the end and the setup for this distribution doesn't to that, so
export PKG_CONFIG_PATH=/home/observer/difx/lib/pkgconfig/
./install-difx
In case of problems compiling etc, you can ./install-difx --clean
and ./install-difx --reconf
to redo the process once the error has been fixed.
Setting up the calcserver to run automatically:
As root I
cd /etc/init.d
cp /home/observer/difx/applications/calcserver/branches/difx-1.5/init.d/calcserver.in calcserver
- I edited
calcserver
and replaced all occurrences of @prefix@ with /home/observer/difx/ - I was then able to
./calcserver start
/home/observer/difx/bin/checkCalcserver hex0
then told me it was running OK- To have calcserver automatically start up
cd /etc/ ; update-rc.d calcserver defaults
From here down are notes for the initially difx installation by Jim/Chris (May 2008)
add /usr/local/lib to /etc/ld.so.conf, then:
ldconfig
install RPFITS
75 tar xzvf rpfits-2.17.tar.gz 76 ls 77 mv rpfits rpfits-2.17 78 cd rpfits-2.17/ 79 ls 80 make 81 cd linux 82 ls 83 make 84 ls 85 make -n install 86 make install cd ~/difx cd vlba_utils make cd /home/observer/difx/mpifxcorr/trunk/src vi Makefile.am
bin_PROGRAMS = mpifxcorr mpifxcorr_SOURCES = mpifxcorr.cpp fxmanager.cpp core.cpp datastream.cpp visibility.cpp configuration.cpp uvw.cpp mode.cpp mk5.cpp polyco.cpp
- set the include path found by configure
INCLUDES = -I/usr/local/include/ -I/home/observer/difx/vlba_utils/ -I/opt/intel/ipp/5.3.1.062/ia32/include/ $(all_includes)
- the library search path.
mpifxcorr_LDFLAGS = $(all_libraries) noinst_HEADERS = fxmanager.h core.h datastream.h architecture.h visibility.h configuration.h uvw.h mk5.h polyco.h
mpifxcorr_LDADD = -L/opt/intel/ipp/5.3.1.062/ia32/sharedlib \ -L/usr/local/lib/ -L/home/observer/difx/vlba_utils/ -lipps -lguide -lippvm -lvlba_utils -lrpfits -lg2c
lib_LIBRARIES = libmpifxcorr.a libmpifxcorr_a_SOURCES = configuration.cpp mode.cpp core.cpp datastream.cpp polyco.cpp mk5.cpp fxmanager.cpp uvw.cpp visibility.cpp` ~
cd .. aclocal automake
./configure CXX=mpicxx
make (note NO "cd src")
Install the Perl Astro package
192 cd /home/observer/difx/ 193 ls 194 cd utilities/ 195 ls 196 cd vex 197 ls 198 cd vexlib/ 199 ls 200 make 201 make -n install 202 ls 203 cd ../vexperl/ 204 ls 205 vi Makefile.PL 206 perl Makefile.PL 207 make 208 make test
su make install
cd ~/bin ln -s /home/observer/difx/utilities/vex2difx/trunk/vex2config.pl . 215 cd 216 ls 217 mkdir correlations 218 cd correlations 219 mkdir chsb6324 220 ls 221 cd chsb6324/ 222 mv ~/*.skd . 223 ls 224 vex2config.pl chsb6324.skd
creates <blah>.input
edit the input file and check the following:
EXECUTE TIME (SEC): 50400 START MJD: 54058 START SECONDS: 82800
Need to change these if correlating a subset of the experiment
Configurations
NUM CONFIGURATIONS: 1 leave CONFIG SOURCE: DEFAULT leave INT TIME (SEC): 2 change if you want to NUM CHANNELS: 128 cahnge BLOCKS PER SEND: 1250 change in extreme cases (e.g. lots of spectral pts) for performance GUARD BLOCKS: 1 leave don't know what this is POST-F FRINGE ROT: FALSE TRUE is faster but avoid when high spec res, high fringe rate QUAD DELAY INTERP: TRUE leave WRITE AUTOCORRS: TRUE change PULSAR BINNING: FALSE leave (unless you're interested in pulsars) DATASTREAM 0 INDEX: 0 leave DATASTREAM 1 INDEX: 1 leave BASELINE 0 INDEX: 0 leave # FREQ TABLE #######! leave but check it agrees with obs # TELESCOPE TABLE ##! Change. Use GPS-Maser as first guess. Correlate on a fringe-finder, fringe fit and apply in production run. If monitoring GPS-Maser during hte experiment use the rate from that, it's probably better. TELESCOPE ENTRIES: 2 TELESCOPE NAME 0: HOB CLOCK DELAY (us) 0: -10.6 CLOCK RATE(us/s) 0: 0.0 TELESCOPE NAME 1: CED CLOCK DELAY (us) 1: 1.05 CLOCK RATE(us/s) 1: 0.0 # DATASTREAM TABLE #! leave, except maybe Tsys (in Jy) DATASTREAM ENTRIES: 2 DATA BUFFER FACTOR: 256 NUM DATA SEGMENTS: 16 TELESCOPE INDEX: 0 TSYS: 1240 DATA FORMAT: LBAVSOP QUANTISATION BITS: 2 FILTERBANK USED: FALSE READ FROM FILE: TRUE NUM FREQS: 1 FREQ TABLE INDEX 0: 0 CLK OFFSET 0 (us): 0.000 leave but this is the clock offset per freq. may be used after fringe-fit to correct for differing delays. NUM POLS 0: 2 INPUT BAND 0 POL: R check this is correct. INPUT BAND 0 INDEX: 0 INPUT BAND 1 POL: L INPUT BAND 1 INDEX: 0 # BASELINE TABLE ###! defines what to process BASELINE ENTRIES: 1 D/STREAM A INDEX 0: 0 D/STREAM B INDEX 0: 1 baseline 0 correlates antennas 0 and 1 NUM FREQS 0: 1 POL PRODUCTS 0/0: 2 D/STREAM A BAND 0: 0 A0-B0 (RCP) D/STREAM B BAND 0: 0 D/STREAM A BAND 1: 1 A1-B1 (LCP) D/STREAM B BAND 1: 1
For cross-products too
vex2config.pl -cross chsb6324.skd
and the above section will look like this:
POL PRODUCTS 0/0: 4 D/STREAM A BAND 0: 0 D/STREAM B BAND 0: 0 D/STREAM A BAND 1: 1 D/STREAM B BAND 1: 1 D/STREAM A BAND 2: 0 D/STREAM B BAND 2: 1 D/STREAM A BAND 3: 1 D/STREAM B BAND 3: 0 # DATA TABLE ####### Need to edit this bit!: should be the number of raw data files in each directory e.g.: # DATA TABLE ####### D/STREAM 0 FILES: 6 FILE 0/0: /data/sb6324/ho/sb6324_Ho_323_230000.lba FILE 0/0: /data/sb6324/ho/sb6324_Ho_323_230010.lba FILE 0/0: /data/sb6324/ho/sb6324_Ho_323_230020.lba FILE 0/0: /data/sb6324/ho/sb6324_Ho_323_230030.lba FILE 0/0: /data/sb6324/ho/sb6324_Ho_323_230040.lba FILE 0/0: /data/sb6324/ho/sb6324_Ho_323_230050.lba D/STREAM 1 FILES: 6 FILE 0/0: /data/sb6324/cd/sb6324_Cd_323_230000.lba FILE 0/0: /data/sb6324/cd/sb6324_Cd_323_230010.lba FILE 0/0: /data/sb6324/cd/sb6324_Cd_323_230020.lba FILE 0/0: /data/sb6324/cd/sb6324_Cd_323_230030.lba FILE 0/0: /data/sb6324/cd/sb6324_Cd_323_230040.lba FILE 0/0: /data/sb6324/cd/sb6324_Cd_323_230050.lba # NETWORK TABLE ####! for eVLBI. PORT NUM 0: 52100 port number TCP WINDOW (KB) 0: 512 TCP window size PORT NUM 1: 52101 TCP WINDOW (KB) 1: -1
get CALC from PAMHELA cluster from Chris
cd ~/difx tar xzvf <tar.gz> cd calc9 259 \rm *.o 260 ls 261 rm libcorcalc.a 262 ls *.a 263 ls *.so* 264 make 265 ar -r libcorcalc.a *.o
work out how to get EOPs%
edited ~/.bashrc
cd to directory with VEX file
vex2model_updated.pl chsb6324.skd
machines file
first line is head node (hex0) next is data stream processes: hex0 hex0 head node hex0 data stream 0 hex0 data stream 1 (if e.g. data were on hex4): hex4 data stream 0 hex4 data stream 1 next are processing (core) nodes hex1 hex2 hex3 hex4 hex5 (leaving hex0 to deal with IO (data streams) and head (manager)). We could specify hex0 as another core node and use the remaining 5 threads (1+4) but in this case there's no need)
edit the threads file. Note number of spaces between text is important:
NUMBER OF CORES: 5 8 8 8 8 8
These would be reduced if running IO nodes on other machines. E.g. if data on hex4:
8 8 8 6 8 ... and may have used hex0 too, but anyway....
edit run.sh
-np 8 (where 8 is # processes, = wc -l machines)
VEX2config evlbi mode to use vsib_send and recv instead of specifying files by hand. Also, selecting three antennas only:
vex2config.pl -evlbi -ant Pa -ant At -ant Mp vt12a.skd