A while ago I had a private discussion with Alex about MKLNP and NP keywords ($SYSTEM section) and I promised to put it to the forum.
MKLNP defines a number of threads to be used by linear algebra routines (DGEMM and others), while NP defines a number of threads to be used by threaded sections of FF (XMCQDPT2 and MP4). MKLNP is recommended to be set up to a moderate number, 4-8, as according to Alex no large matrices are handled in FF, and too large values of MKLNP can lead to degradation of the performance. Unlike MKLNP, it is usually beneficial to set up NP to large values, up to the overall number of the physical CPU cores available.
According to Alex, MKLNP and NP threads never emerge simultaneously, which means that at a time there can be either MKLNP number of MKL threads or NP number of NP-threads.
Also, on HTT (hyperthreading technology): in the case of (X)MCQDPT2 calculations there is a moderate ~10-20 % increase of performance upon using of HTT. It should be kept in mind that the use of HTT requires more memory compared to the non-HTT case.