Tools
Below are recommended tools for various purposes. The recommender's name is in parens. It should go without saying that you should not recommend anything you yourself haven't used a lot :)
BLAS
- The default version that ships with Ubuntu is super-slow. On my 6-core desktop (12 hyperthreaded cores), I got a 20-30x speedup by switching to openblas, the modern version of GotoBLAS.
- For Ubuntu 14.04, this works:
sudo apt-get install libopenblas-base
sudo update-alternatives --config libblas.so.3 # optional. Do this to check that you're now using openblas and not libblas.
Python
Python
- Profiling: cPython to gather profile data, RunSnakeRun to visualize. (Matt)
- cPython is part of python. RunSnakeRun is available in the Ubuntu repositories.
- Plotting: matplotlib (Matt)
- Numerics: numpy (Matt). Default implementation on Ubuntu is slow; see "BLAS" section above for quick fix.
C++
C++
- The ex-Googler's toolbox:
- Command-line flags made simple: google-gflags (Matt)
- Eloquent asserts: google-glog (Matt)
- IDEs/editors:
- QtCreator (Ankur)
- CUDA (Ankur)
- 3D visualization: Paraview+VTK (Ankur)