Is it worth using a multithreaded blas implementation along with multiprocessing in Python?
If you are already using multiprocessing, and all cores are at max load, then there will be very little, if any, benefit to adding threads that will be waiting around for a processor.
Depending on your algorithm and what you're doing, it may be more beneficial to use one type over the other, but that's very dependent.
Suppose I have a 16 core machine, and an embarrassingly parallel program.  I use lots of numpy dot products and addition of numpy arrays, and if I did not use multiprocessing it would be a no-brainer:  Make sure numpy is built against a version of blas that uses multithreading.  However, I am using multiprocessing, and all cores are working hard at all times.  In this case, is there any benefit to be had from using a multithreading blas?
Most of the operations are (blas) type 1, some are type 2.