Question: I am learning deep learning recently and my friend recommended me caffe. After install it with OpenBLAS, I followed the tutorial, [MNIST task](http://caffe.berkeleyvision.org/gathered/examples/mnist.html) in the doc. But later I found it was super slow and only one CPU core was working.

The problem is that the servers in my lab don't have GPU, so I have to use CPUs instead.

I Googled this and got some page like [this](https://github.com/BVLC/caffe/pull/80) . I tried to `export OPENBLAS_NUM_THREADS=8` and `export OMP_NUM_THREADS=8`. But caffe still used one core.

How can I make caffe use multi CPUs?

Many thanks.

Answer: 
@Karthik. That also works for me. One interesting discovery that I made was that using 4 threads reduces forward/backward pass during the caffe timing test by a factor of 2. However, increasing the thread count to 8 or even 24 results in f/b speed that is less than what I get with OPENBLAS\_NUM\_THREADS=4.
Here are times for a few thread counts (tested on NetworkInNetwork model).

[#threads] [f/b time in ms]  

1 223  

2 150  

4 113  

8 125  

12 144 

For comparison, on a Titan X GPU the f/b pass took 1.87 ms.
I found that this method works:

When you build the caffe, in your make command, do use this for 8 cores: 
`make all -j8` and
`make pycaffe -j8`

Also, make sure 
 `OPENBLAS_NUM_THREADS=8` 
is set.

[This](https://stackoverflow.com/questions/31395729/how-to-enable-multithreading-with-caffe) question has a full script for the same.