<p dir="ltr">Nice!</p>
<p dir="ltr">   You might recall that I did similar tests with a ARM cluster using these generic routines. That was a few 100s watts system with 48 cores (4coresx12 cards). That could  be a low power correlator somewhere (MRO site?). </p>
<p dir="ltr">  I'll check those routines when I am back in Perth. We are finishing up another winter trip to KASI, to escape the Australian heat :)</p>
<p dir="ltr">      Richard<br></p>
<p dir="ltr">On 31 Dec 2015 06:15, "Adam Deller" <<a href="mailto:deller@astron.nl">deller@astron.nl</a>> wrote:<br>
><br>
> Hi everyone,<br>
><br>
> As a fun little holiday project I decided to get DiFX compiled and running on my raspberry pi.  That was mostly pretty easy, except that it appears there was a bug in the allocation of the buffers for the generic (FFTW) FFT routines in mpifxcorr (it created an FFT which was twice as long as it should have been).  IPP wasn't an option, for obvious reasons.  The bug was a little hard to track down, because it turns out valgrind is known to give spurious errors about memcpy on the raspberry pi, which threw me off the track because it was indeed the memcpy in the generic FFT routine where the segfault occurred.  I have checked in an update to trunk mpifxcorr.  Perhaps one of either Richard or Chris (who are the people who did the majority of the generic implementation, if I remember right) might like to check to see that they agree.  I left the 2D FFT untouched since I don't know about its usage, but I suspect that might need to be changed in the same way in <a href="http://architecture.h.in">architecture.h.in</a> as my change for the 1D FFTs.<br>
><br>
> There remains a problem causing a segfault somewhere in the pcal handling, but unlike the FFT problem this doesn't give any valgrind errors on x86_64 architectures, so I haven't been able to track that down yet.  And I could bypass it by disabling pcal, so I did.<br>
><br>
> For those who are interested, an old raspberry PI B+ can correlate an aggregate input bandwidth of 0.05 MHz in real time (while it is also doing all the FxManager and DataStream tasks), which is 600x slower than a single Intel Xeon E5-2620 core @ 2.40GHz.  That's a worst-case comparison, since that single Intel core wasn't doing anything else.  Even burdened so, the raspberry Pi is still faster than the very first VLBI correlator, which ran on an IBM 360 costing upwards of 2 million of todays dollars. You'd only need something approaching 100,000 raspberry pis for a system capable of correlating the VLBA @ 2 Gbps (plus, I suppose, a pretty expensive switch).<br>
><br>
> For anyone who wishes to also run very slow correlations on $20 hardware, here is the recipe for getting DiFX compiled on a vanilla raspbian install:<br>
><br>
> svn co <a href="https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.4">https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.4</a> --username YourUsername<br>
> # Edit DiFX-2.4/setup.bash appropriately, add it to ~/.bashrc, and source it<br>
> # Create and chmod runmpifxcorr.DiFX-2.4.1, and added the directory containing it to $PATH<br>
> sudo apt-get install subversion<br>
> sudo apt-get install openmpi-bin<br>
> sudo apt-get install openmpi-dev<br>
> sudo apt-get install autotools<br>
> sudo apt-get install autotools-dev<br>
> sudo apt-get install autoconf<br>
> sudo apt-get install libtool<br>
> sudo apt-get install gfortran<br>
> sudo apt-get install expat<br>
> sudo apt-get install libexpat1-dev<br>
> sudo apt-get install  fftw3-dev <br>
> sudo apt-get install bison<br>
> sudo apt-get install flex<br>
> cd DiFX-2.4 ; ./install-difx --noipp<br>
> sudo rpcbind<br>
> sudo $DIFXROOT/bin/startCalcServer<br>
> # I used a cutdown version of the rdv70 dataset to test, I can send the v2d file on request<br>
> vex2difx pi.v2d<br>
> calcif2 pi_1.calc<br>
> # Manually generated pi_1.threads and pi_1.machines, which I can also send on request<br>
> startdifx -n pi_1.input<br>
><br>
> Cheers,<br>
> Adam<br>
><br>
> -- <br>
> !=============================================================!<br>
> Dr. Adam Deller         <br>
> Ph  +31 521595785 / Fax +31 521595101<br>
> Staff Astronomer, Astronomy Group    <br>
> ASTRON, Oude Hoogeveensedijk 4<br>
> 7991 PD Dwingeloo, The Netherlands<br>
> !=============================================================!</p>