Dear Luo,
DIP_ROLE and DIP_CPU governs how the dipole matrix elements are distributed with the CPUs in calculating the dipoles <c|r|v>.
The product of the number you assign has to be equal to the CPU used in your calculations.
Anyway it seems to me that the dipoles are calculated and code stops when starting to calculate the response function.
%QPkrange this is related with SE_CPU (q,qp,b)
q and b distribute q points and bands in the GW summations, qp instead are the diagonal matrix elements you want to calculate independently.
qp cannot be larger than the total number of QP energies you want to calculated indicated in QPkrange. Parallelizing over b allow you to distribute memory.
I suggest you to look if you have any error message in one of the log files in the LOG directory.
Then try to parallelise as much as you can in "c" and "v" in X_and_IO_CPU
Here you can have a look to a lecture about yambo parallel structure:
https://www.youtube.com/watch?v=i3uVgytO4qc&t=1s
starting from around min.13
Best,
Daniele