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
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
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
Dear Adel thanks a lot. very useful.
Best
https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Garanti
sans virus. www.avast.com
https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
Le lun. 7 sept. 2020 à 16:17, Abbout Adel
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
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
participants (2)
-
Abbout Adel
-
Adel Belayadi