Performance of MATLAB and Python for Computational Electromagnetic Problems

作者

  • Alec J. Weiss Department of Electrical Engineering Colorado School of Mines, Golden, Colorado, 80120, United States
  • Atef Z. Elsherbeni Department of Electrical Engineering Colorado School of Mines, Golden, Colorado, 80120, United States

关键词:

Computational electromagnetics, MATLAB, python

摘要

MATLAB and Python are two common programming languages commonly used in computational electromagnetics. Both provide simple syntax and debugging tools to make even complicated tasks relatively simple. This paper studies how these programming languages compare in throughput for a variety of tasks when utilizing complex numbers which are common in electromagnetics applications. The compared tasks include basic operations like addition, subtraction, multiplication, and division, along with more complex operations like exponentiation, summation, Fourier transforms, and matrix solving. Each of these tests is performed for both single and double precision on the CPU. A 2D finite difference frequency domain problem and a planar array beamforming problem are also presented for comparison of throughput for realistic simulations.

##plugins.generic.usageStats.downloads##

##plugins.generic.usageStats.noStats##

##submission.authorBiographies##

##submission.authorWithAffiliation##

Alec J. Weiss received his B.S. degree in Electrical and Computer Engineering from the University of Colorado, Boulder, Colorado, USA in 2017 and his M.S. in Electrical Engineering from the Colorado School of Mines, Golden, Colorado, USA in 2018 where he is currently pursuing his Ph.D. in Electrical Engineering. He joined the National Institute of Standards and Technology (NIST) Communications Technology Laboratory (CTL) in 2017 as a graduate student researcher. His research interests include millimeter-wave measurements, 5G communications systems, and high performance computing for electromagnetic applications.

##submission.authorWithAffiliation##

Atef Z. Elsherbeni received an honor B.Sc. degree in Electronics and Communications, an honor B.Sc. degree in Applied Physics, and an M.Eng. degree in Electrical Engineering, all from Cairo University, Cairo, Egypt, in 1976, 1979, and 1982, respectively, and a Ph.D. degree in Electrical Engineering from Manitoba University, Winnipeg, Manitoba, Canada, in 1987. He started his engineering career as a part time Software and System Design Engineer from March 1980 to December 1982 at the Automated Data System Center, Cairo, Egypt. From January to August 1987, he was a PostDoctoral Fellow at Manitoba University. Elsherbeni joined the faculty at the University of Mississippi in August 1987 as an Assistant Professor of Electrical Engineering. He advanced to the rank of Associate Professor in July 1991, and to the rank of Professor in July 1997. He was the Associate Dean of the College of Engineering for Research and Graduate Programs from July 2009 to July 2013 at the University of Mississippi. He then joined the Electrical Engineering and Computer Science (EECS) Department at Colorado School of Mines in August 2013 as the Dobelman Distinguished Chair Professor. He was appointed the Interim Department Head for (EECS) from 2015 to 2016 and from 2016 to 2018 he was the Electrical Engineering Department Head. In 2009 he was selected as Finland Distinguished Professor by the Academy of Finland and TEKES. Elsherbeni is a Fellow member of IEEE and ACES. He is the Editor-in-Chief for ACES Journal, and a past Associate Editor to the Radio Science Journal. He was the Chair of the Engineering and Physics Division of the Mississippi Academy of Science, the Chair of the Educational Activity Committee for IEEE Region 3 Section, the General Chair for the 2014 APS-URSI Symposium, the president of ACES Society from 2013 to 2015, and the IEEE Antennas and Propagation Society (APS) Distinguished Lecturer for 2020-2022.

参考

J. Unpingco, “Some comparative benchmarks for linear algebra computations in Matlab and Scientific Python,” in 2008 DoD HPCMP Users Group Conference, pp. 503-505, 2008. doi: 10.1109/ DoD.HPCMP.UGC.2008.49.

R. Python, “MATLAB vs Python: Why and how to make the switch – Real Python,” [Online]. Available: https://realpython.com/matlab-vs-python/. [Accessed: 30-Dec-2019].

J. Ranjani, A. Sheela, and K. P. Meena, “Combination of NumPy, SciPy and Matplotlib/ Pylab - A good alternative methodology to MATLAB - A comparative analysis,” in 2019 1st International Conference on Innovations in Information and Communication Technology (ICIICT), pp. 1-5, 2019 doi: 10.1109/ICIICT1. 2019.8741475.

N. Kinayman, “Python for microwave and RF engineers [Application Notes],” IEEE Microwave Magazine, vol. 12, no. 7, pp. 113-122, Dec. 2011. doi: 10.1109/MMM.2011.942704.

M. Capek, P. Hazdra, J. Eichler, P. Hamouz, and M. Mazanek, “Acceleration techniques in Matlab for EM community,” in 2013 7th European Conference on Antennas and Propagation (EuCAP), pp. 2639-2642, 2013.

A. J. Weiss, A. Z. Elsherbeni, V. Demir, and M. F. Hadi, “Using MATLAB’s parallel processing toolbox for multi-CPU and multi-GPU accelerated FDTD simulations,” vol. 34, no. 5, p. 7, 2019.

“Anaconda | The world’s most popular data science platform,” Anaconda. [Online]. Available: https:// www.anaconda.com/. [Accessed: 14-Jan-2020].

“Spyder Website.” [Online]. Available: https:// www.spyder-ide.org/. [Accessed: 14-Jan-2020].

V. Gundersen, “NumPy for MATLAB users.” 2006.

ajolleyx, “Intel® Math Kernel Library (Intel® MKL),” 00:00:14 UTC. [Online]. Available: https:// software.intel.com/en-us/mkl. [Accessed: 13-Jan2020].

“SciPy Roadmap — SciPy v1.4.1 Reference Guide.” [Online]. Available: https://docs.scipy.org/ doc/scipy/reference/roadmap.html. [Accessed: 16- Jan-2020].

##submission.downloads##

已出版

2020-07-01

栏目

General Submission