I use mathematica on a computer with linux operating system. The computer has 2 cpus and each cpu has 4 cores, so there are totally 8 cores available.
Now I got confused with whether the evaluation of Eigenvalues is parallelized or not. I present two kinds of codes below
one use ParallelDo
ParallelDo[
Eigenvalues[# +
ConjugateTranspose[#] &[Table[RandomReal[], {i, 5000}, {j,5000}]]
];
,{4}]//AbsoluteTiming
the time it takes is 135.12254 second. And use Top command in linux during the evaluation, it shows like below:

It show that 4 cores are trying their best, that's quite reasonable.
the other use Do only
Do[Eigenvalues[# + ConjugateTranspose[#] &[Table[RandomReal[], {i, 5000}, {j,5000}]]];,{4}]//AbsoluteTiming
this time it takes 109.004395 second. It evaluates even faster!!. And use Top, It shows like below:

Almost 800%, it means that this time, the evaluation uses all the cores? I don't know why it shows one 800% instead of eight 100%s. What is the difference?
If Eigenvalues really evaluates in a parallelized way automatically, why Parallelize[Eigenvalues[matrix]] gives error message saying that " Eigenvalues can't be parallized;proceeding with sequential evaluation"??
Parallelizecan only deal with high level Mathematica constructs while Eigenvalues is implemented in a low level language for dense numerical matrices. Mathematica is just calling this low level multithreaeded implementation. – Szabolcs Jun 01 '13 at 14:58ParallelDois always faster, But if the matrix is large enough,Dois alway faster and better (because it uses less memory) .celtschkadd a good question. Is there a list of mathematica function use built-in multithread implementation. Because working with such multithread function, parallel it or not should be careful if we want to improve efficiency – matheorem Jun 02 '13 at 02:32