Multiple CPUs when calculating S-matrix
Hi, When I calculate the scattering matrix (kwant.smatrix()) it seems that only one CPU (I have 12 in total) is working, while the others are idle. Is there a (simple) way to make all the CPUs work together when using kwant.smatrix ? Maybe similar improvements can be done for kwant.wave_function ? I am using Ubuntu 16.10. I know this has been discussed before a long time ago, but I was wondering if there was some progress on this, now that Kwant 1.3 is released. All the best, Sverre Gulbrandsen
Hi Sverre,
When I calculate the scattering matrix (kwant.smatrix()) it seems that only one CPU (I have 12 in total) is working, while the others are idle. Is there a (simple) way to make all the CPUs work together when using kwant.smatrix ? Maybe similar improvements can be done for kwant.wave_function ? I am using Ubuntu 16.10.
I know this has been discussed before a long time ago, but I was wondering if there was some progress on this, now that Kwant 1.3 is released.
Kwant is still single threaded. In principle adding support for the MPI (parallel) version of the Mumps library should not be too difficult, but would require looking in to the existing solvers to see how everything fits together. IIRC (but don't quote me on this) we were not even sure if we would see a significant speedup using MPI-Mumps (probably not linear scaling to an arbitrary number of cores, anyway) because of the nature of the problem that Kwant solves. I think that we thought we could parallelize over the right-hand sides that we want to solve for (modes), but probably not any more than this. Usually a better strategy is to exploit any trivial parallelism you have, e.g. parameter sweeps, before trying to parallelize the solving step. If you are motivated to work on this we can of course provide support and guidance. Happy Kwanting, Joe
participants (2)
-
Joseph Weston
-
Sverre Gulbrandsen