branch | version | status | latest |
---|---|---|---|
master | |||
dev |
Chat room | link |
---|---|
Community | |
Hardware / OS setup | |
Developers |
Report bugs and issues on this page
Contributing to project : coding standards
NOTE: cacao uses git submodules. Use git clone --recursive
(see Downloading and Installing section)
cacao is a computation engine for adaptive optics control.
Compute Performance: Uses multi-core CPUs and GPGPUs for high computing throughput. Written in C, optimized for performance. Holds images in RAM, with image stream support (shared memory with low-latency IPC support). cacao uses milk.
User input: Executable launches a command line interface (CLI) from which functions are accessible. Type "help" in the CLI to get started.
Modular, easy to add functions, loaded at runtime as shared objects.
git clone --recursive https://github.com/cacao-org/cacao cacao
cd cacao
mkdir _build
cd _build
cmake ..
You may need to add /usr/local/lib to LD_LIBRARY_PATH environment variable:
echo "/usr/local/lib" > usrlocal.conf
sudo mv usrlocal.conf /etc/ld.so.conf.d/
sudo ldconfig -v
Unless you have a separate install of milk on your system, a symbolic link to milk is required for milk scripts that are included in cacao:
sudo ln -s /usr/local/bin/cacao /usr/local/bin/milk
Add milk executable scripts to PATH environment variable. Add this line to the .bashrc file (change source code location as needed):
export PATH=$PATH:/home/myname/src/cacao/src/CommandLineInterface/scripts
Both cacao and milk use a common shared memory data stream format. See ImageStreamIO module for details.
Additional software is required to view real-time data streams. Several options exist:
- shmimviewGTK, a lightweight efficient GTK-based viewer.
- milk2ds9 uses ds9 to view data streams (convenient for ds9 users)
- rtimv, a qt-based image viewer, higher performance than ds9 option
- shmimviewqt, another qt-based option (less polished than rtimv)
- xaosim's shmview image viewer, using python qt interface
Python users can read/write milk/cacao's data streams using additional packages:
- pyImageStreamIO provides an interface to data streams.
- xaosim includes a python interface to data streams.. and much more
The following libraries are used:
- readline, for reading the command line input
- ncurses-dev
- flex, for parsing the command line input
- bison, to interpret the command line input
- fftw, for performing Fourier Transforms
- gsl, for math functions and tools
- fitsio, for reading and writing FITS image files
- CUDA, CuBLAS, MAGMA for GPU acceleration (optional)
If you use NVIDIA GPUs, install cuda and magma libraries, and add "--enable-cuda and --enable-magma" options to the configure command.
All functions are accessible from the command line interface (CLI). Enter the CLI and type "help" for instructions.
cacao