Thanks Lawrence and Fabio for your feedback. Fabio: I tried running it on 4 cores using mpirun and there were 4 jobs, two of which used 100% or so and the other two used 1500% or so. It seems that ubuntu optimizes to use as many threads as possible. A nice feature. Lawrence: Yes, when I tried what you suggested it only used one core, as you predicted. Thanks for pointing that out. I am not sure of a 2D problem with a 200x200 grid can really be very efficient on 16 cores but I will try running an mpi job on 4 or maybe even 8 and see how that compares with the threading. Now that I know that firedrake does automatic threading on ubuntu but has the ability to do mpi, I'd like to know which one I should use to be efficient. Thanks again for all the help. Francis