Dear Adel,

The post by Christoph you are referring to is just a reflection and an
invitation to think about parallelization in kwant.
It is not implemented in kwant. As the error message suggests, there is no
argument  "comm=MPI.COMM_WORLD" in the scattering matrix.

If you want to run your code in parallel, you can do a simple change in
your code as follows:




import numpy as np
import kwant
from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
nprocessor = comm.size


def make_sys():
      .....
      .....
      return sys.finalized()


sys=make_sys()
energies=np.arange(k/nprocessor,(k+1)/nprocessor,20)

T=[]
for energy in energies:
         Sm=kwant.smatrix(sys,energy=energy)
         T.append(Sm.transmission(0,1))

np.save("Transmission"+str(k)+".npy",np.array(T))



##########
So, your code will return a number  "nprocessor" .npy files of the
transmission, each one of them is for a range of energies.


I hope this helps
Adel




On Sun, Sep 6, 2020 at 2:43 PM Adel Belayadi <adelp...@gmail.com> wrote:

> Dear user
> I hope you are doing well.
> I am having troubles when using parallel distribution to run my python
> script using kwant.
>
> I  went through kwant discuss mailing list and tried to read about similar
> issues. I have red for instance the comment made by hristoph Groth Mon, 08 
> *Aug
> 2016 08:12:46 -0700.*
>
>
> *add "from mpi4py import MPI" in the preamble,• substitute
> kwant.smatrix(…) -> kwant.smatrix(…, comm=MPI.COMM_WORLD), • execute the
> script using "mpiexec", *
>
> I have got an error while using kwant.smatrix(comm=MPI.COMM_WORLD).
> kwant does not recognize comm
>
> TypeError: got an unexpected keyword argument 'comm'
>
>
> I have also tried without comm but with the following command
> OMP_NUM_THREADS=1
> mpiexec -n 4 python file.py
> or
> mpirun.openmpi -n 4 -x OMP_NUM_THREADS=1 python file.py
>
> but I got the result 4 times
>
> Regards
> BELAYADI
>


-- 
Abbout Adel

Reply via email to