Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/greenbankobservatory/flag-beamformer-simulator-i

Proof of concept simulator for the GBT FLAG/PAF receiver's Beamformer backend
https://github.com/greenbankobservatory/flag-beamformer-simulator-i

Last synced: about 15 hours ago
JSON representation

Proof of concept simulator for the GBT FLAG/PAF receiver's Beamformer backend

Awesome Lists containing this project

README

        

# Copyright (C) 2015 Associated Universities, Inc. Washington DC, USA.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Correspondence concerning GBT software should be addressed as follows:
# GBT Operations
# National Radio Astronomy Observatory
# P. O. Box 2
# Green Bank, WV 24944-0002 USA

This is Simulator I, a component of the end-to-end simulation that is currently in development for the Green Bank/BYU/WVU Beamformer project.
It is a plugin for the hashpipe parallel processing pipeline.
More information on hashpipe can be found here: https://casper.berkeley.edu/wiki/PAPER_Correlator_Manifest#HASHPIPE

It is still in development, but it should build in its current state.

When you build this plugin, make sure that you are installing your plugin to the hashpipe installation directory.
For example, I installed hashpipe to "/home/sandboxes/tchamber/paper/commoninstall" using "./configure --prefix=/home/sandboxes/tchamber/paper/commoninstall".
So, when I install the fake_gpu plugin, I will also install it to /home/sandboxes/tchamber/paper/commoninstall.
I will use $HASHDIR to refer to this common installation directory.

You will also need to run the vegasFitsWriter. It can be found in /home/sandboxes/tchamber/vegas_devel3/vegas_devel/src/dibas_fits_writer. This directory will be referred to as $VEGASDIR.

fits_writer_thread has been deprecated and is awaiting removal.

vegasFitsWriter is replacing it, but we don't have a publically available repo for it yet, so right now there's now way for non-GB folks to run this. Sorry about that :(

To build:
From the root of FLAG-Beamformer-Simulator-I (henceforth $SIM1):
$ mkdir build config
$ autoreconf -is
$ cd build
$ ../configure --prefix=$HASHDIR --with-hashpipe=$HASHDIR
$ make
$ make install

To run a scan (RECOMMENDED):
Scanning currently works through the use of two scripts:
set_scan:
Opens hashpipe
Opens vegasFitsWriter
Sets necessary status shared memory keys
run_scan:
Takes arguments to set the scan length and start time
Sends the START command to both control FIFOs

Examples:
To run a scan in 1 minute for 10 seconds:
In terminal 'A':
$ $SIM1/scripts/set_scan
In terminal 'B':
$ $SIM1/scripts/run_scan --startin 60 --scanlength 10

To run a scan at a specific time (e.g. May 13 2015 at 12:00 exactly):
In terminal 'A':
$ $SIM1/scripts/set_scan
In terminal 'B':
$ $SIM1/scripts/run_scan.sh --starttime 15:05:13:12:00:00 --scanlength 10

To run/start a scan (MANUALLY):
After setting your PATH to point to $HASHDIR:
$ taskset 0x0606 hashpipe -p fake_gpu -I 0 -o BINDHOST=px1-2.gb.nrao.edu -o GPUDEV=0 -o XID=0 -c 3 fake_gpu_thread
# start

Now run the set_status script (this will set some necessary status memory key values):
$ $SIM1/scripts/set_status.sh

In another terminal (remember to set the PATH here, too):
$ $VEGASDIR/vegasFitsWriter
# start

The scan should run and output to the directory specified in the DATADIR status key (set in the script above, but feel free to change it).

Notes:
Be sure to write your fits files to a local disk

This plugin currently requires that hashpipe be modified slightly.
In hput.c:
hputr8():
sprintf (value, "%g", dval);
// must be changed to
sprintf (value, "%f", dval);

NOTES ON THE INCLUDED SCRIPTS:
The included cleanup scripts (cleanup and clean_sim) are for the developers' convenience. They are not general purpose tools, nor intended to be portable. Please do not run them without looking through their contents!