HASHPIPE - david-macmahon/wiki_convert_test GitHub Wiki
What is HASHPIPE ?
HASHPIPE is High Availibility Shared Pipeline Engine. Hashpipe is code usually used to move data through an X engine running on a CPU and GPU. It handles collecting packets from multiple F engines through a NIC (Network Interface Card), re-ordering the data and converting it to a type appropriate for processing on the Graphics Card. It then sends data from the system RAM to the GPU RAM and calls the xGPU code which performs the X operation on the inputs provided. After correlation hashpipe copies the output of the CUDA X-engine (xGPU), reorders/re-interprets the data and sends the data to a catcher machine which handles further accumulation, data aggregation and save the data to disc.
The Hashpipe code is a derivative of GUPPI, this software developed by NRAO (National Radio Astronomy Observatory) for FPGA/GPU pulsar instrumentation. It was then modified/adapted by UC Berkeley for the Green Bank VEGAS multibeam spectrometer. Most recently it has been further modified/adapted by David Macmahon from UC Berkeley for use in FPGA/GPU correlators under the name of HASHPIPE.
- Installation of HASHPIPE
You can download it from here. Or you can use this command:
git clone
http://astro.berkeley.edu/~davidm/hashpipe.git
This code wrote by David Macmahon from UC Berkeley.
To build HASHPIPE from a freshly cloned repository you need to have autoconf anf automake and libtool installed. Once those are in place, you can run the following commands to build HASHPIPE:
$ cd src
$ autoreconf -is
$ ./configure
$ make
$ sudo make install
Instead of "sudo make install", you can also run "make staging", which will perform a local install to a directory named "staging" under the "src" subdirectory.
- Installation of rb-hashpipe
rb-hashpipe is a ruby code wrote by David Macmahon, which can monitor the status of packets receiving, CPUs/GPUs running and storage. You can download it from here. You can use following steps to install.
### download rb-hashpipe
git clone
https://github.com/david-macmahon/rb-hashpipe.git
### install rvm from
https://rvm.io/rvm/install
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL
https://get.rvm.io | bash
\curl -sSL
https://get.rvm.io | bash -s stable --ruby
source ~/.rvm/scripts/rvm
rvm list known
rvm install 2.1.10
rvm use 2.1.10 --default
gem install curses
gem install dev
gem install bundle
cd rb-hashpipe
rake gem
gem install pkg/***.gem
All of above installation commands tested on Ubuntu 16.04, you may have some errors for other versions or operation systems.
HASHPIPE Demos
For easy understand how does hashpipe works and how can you write your own code for your application, we have written several simple tutorials and you can find them in here: demo1 demo2 demo3 demo4.