-
Algorithm Reference Library (ARL) is a set of algorithms developed for aperture synthesis imaging based on Numpy. ARLO is an optimized version of ARL by converting computational intensive kernels from python to c++ and applying further optimization.
-
Applied Computing Lab., ICT, CAS
- install required python packages:
pip3 install -r requirements.txt
- compile C++ code to
.so
files which can be import as a module in Python code.- the C++ code is in
c-kernel/src
- there are 4 module should be compiled:
- gridding:
convolution_gridding_mod.so
by Makefile.gridding - fft:
fft_support_mod.so
by Makefile.fft - cleaners:
cleaners_mod.so
by Makefile.cleaners - parameters:
parans_mod.so
by Makefile.params
- gridding:
- use Makefiles to compile:
make -f Makefile.xxx
- the C++ code is in
- move
.so
files to corresponding directories inarl-python/arl
, e.g.similar for othermv c-kernel/src/fourier_transforms/convolution_gridding_mod.so arl-python/arl/fourier_transforms
.so
files.
- Two notebook demos can be run and test: imaging-demo1, imaging-demo2 (modified from the original imaging notebook).
- The intermediate data used by the notebooks are in
arl-python/example/arl/results
.
c-kernel/test
is code to test and verify correctness of the optimized C++ code.
- Compile code in
src
first and move the.so
libs to corresponding directories to make sure some python modules imported correctly. - Run scripts to verify the results of original python code and optimized c++ code.
- For all tests, run
sh test_all.sh
. - For params, run
sh test_params.sh
. - For gridding, run
sh test_gridding.sh
. - For fft, run
sh test_fft.sh
. - For cleaners, run
sh test_cleaners.sh
.
- For all tests, run
- The data in test code is randomly created.