Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/2015 1. Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다. 2. Installation 2.1. For Debian GNU/Linux 국내에서사용되는컴퓨터들의 OS 점유율에서는 Microsoft Windows에밀려약세를면치못하고있으나, 리눅스는전세계적으로널리사용되는 OS이며, 특히나국내를포함한전세계적으로도계산목적으로제작, 사용되는슈퍼컴퓨터의대부분은리눅스배포판을사용하고있다. KEMP는기본적으로 Linux에서사용하는것을전제로개발된 software이며, 따라서 GNU/Linux 가설치된데스크탑컴퓨터및클러스터서버에서사용하는것을추천한다. 2.1.1. Python Installation KEMP는 Python module 형태로제공되는소프트웨어이므로, Python을설치하는것이필수적이며, 버전은 2.7을사용한다. Debian GNU/Linux를포함하여대부분의리눅스배포판의경우 Python이기본적으로설치되어있으므로기본적인 Python 설치과정은생략한다. 그러나, KEMP의구동에있어서추가적인 Python module이필요하므로, 이를설치하도록하자. 필요한 Python module 목록은다음과같다. numpy, scipy, h5py, mpi4py, python-psutil 위목록중 python-psutil 의경우없어도무방하며, 여러대의컴퓨터노드를사용하여계산할목적이아니라면 MPI 환경을사용하는 mpi4py 또한필요하지않다. 리눅스배포판의종류에따라위 Python module을설치하는방법은각기다르다. 본항
목에서는 Debian GNU/Linux의경우에한하여설명하도록한다. 첫번째로, Debian 배포판에서소프트웨어패키지관리를담당하는 APT의 source 부분의설정을바꾸도록하자. (Root user 권한이필요할것이다 ) vi /etc/apt/sources.list ( 다음과같은내용을추가한다 ) deb http://ftp.kr.debian.org/debian testing main non-free contrib deb-src http://ftp.kr.debian.org/debian testing main non-free contrib APT 설정변경이끝났다면다음과같은명령어를입력하여 APT package list를업데이트하도록하자. aptitude update 이제다음과같이패키지를지정, 설치하도록하자. aptitude install python-numpy python-scipy python-matplotlib python-h5py python-psutil python-mpi4py 설치가에러메시지없이정상적으로끝난경우 python 설치및설정은끝난것이다. 2.1.2. Intel C compiler Installation (Optional) KEMP는 CPU를활용한 FDTD 계산을지원한다. ( 단, 권장하지않는다. KEMP의개발의도는어디까지나 GPU를활용한고속의 FDTD 계산이다 ) 리눅스배포판의경우기본적으로 GNU compiler가설치되어있기때문에그를활용하여사용할수있으나, Intel 사에서출시한 CPU 제품을활용할경우 Intel C compiler를설치, 활용하여계산속도를향상시킬수있다. ( 개발자의자체테스트결과 CPU의기종에따라다소차이가있겠으나대략 20%~30% 정도의속도향상을보였다 ) Intel 사에서교육및연구목적으로사용할경우에한하여 Intel C composer를무료배포하고있으니, 다음인터넷주소를참고하여설치, 활용하기바란다. https://software.intel.com/en-us/qualify-for-free-software 2.1.3. nvidia CUDA / OpenCL Installation KEMP의개발의도는 GPU를활용한고속의 FDTD 계산이다. 따라서본항목에서는 GPU가장착된컴퓨터에서 GPU를활용한계산이가능하도록관련소프트웨어를설치및설정하는과정을설명하도록한다. - 2 -
시중에서구할수있는 GPU는 nvidia 사와 AMD 사의 VGA가보편적이므로, 두제품을사용할경우에대해각각설명하도록한다. 2.1.3.1. nvidia GPUs 이경우 nvidia 사에서 GPGPU(General Purpose of Graphic Processing Unit) 를목적으로개발한 CUDA를사용해야하므로 nvidia-cuda-toolkit 및 PyCUDA(Python module) 를설치하도록한다. Debian GNU/Linux 의경우 APT를통해 PyCUDA만설치했을때관련패키지인 nvidiacuda-toolkit 및 nvidia GPU driver를모두의존성검사를통해찾아서자동으로설치해주므로다음과같이입력하여설치하면된다. aptitude install python-pycuda 단, PyCUDA 설치전에 2.1.1 절에서설명했던 APT 설정이선행되어야한다. 2.1.3.2. AMD GPUs AMD 사의 GPU의경우 OpenCL을설치하면된다. Debian GNU/Linux에서는 PyCUDA 설치와유사하게 python-pyopencl만을설치할경우관련된 GPU driver 및 OpenCL software를자동으로설치하여주므로, 다음과같이입력하면된다. aptitude install python-pyopencl nvidia GPU의경우 CUDA와 OpenCL 모두지원하므로 OpenCL을설치하여도 nvidia 사의 GPU를활용가능하다. (CUDA 및 OpenCL 활용에따른성능차이는크지않으며, 특정언어의사용이특별히우세한성능을보장하지않는다 ) 2.1.4. KEMP Installation 마지막으로 KEMP를설치할차례이다. KEMP는 python module의형태를갖추고있고, 구체적으로 python script 및 source script 파일로만이루어져있기때문에 ( 모두텍스트파일이다 ) 단순히관련압축파일을다운로드받아지정경로에압축을풀어사용하면된다. 2.2. For Microsoft Windows KEMP는기본적으로 Python 언어기반인데다, 사용하고자하는 Computing device에따라 nvidia CUDA, OpenCL 등의언어를지원하는소프트웨어를설치해야사용할수있으므로, Microsoft Windows에서사용이까다롭다. 그러나위소프트웨어를설치할수있다면 KEMP를사용할수있으므로, Microsoft Windows 환경에서 KEMP를사용하고자한다면본항목을참고하기바란다. - 3 -
2.2.1. Python Installation Windows 환경에서는 Python이기본적으로설치되어있지않다. 따라서 Python을인터넷에서다운로드받아설치하도록하자. 기본적인 Python은공식홈페이지 https://www.python.org 에서다운로드받을수있다. 개인적으로개발자는공식홈페이지에서 Python을다운로드받아설치하는것보다인터넷주소 http://continuum.io/downloads 에서 Anaconda라는 python 배포판을다운로드받을것을권장한다. 이경우기본적으로사용하는 Python module이동봉되어동시에설치해주기때문에사용이훨씬간편한장점이있다. 2.2.2. MinGW Installation Windows 환경에서 CPU만을활용하여계산하려면 GNU C compiler(gcc) 를활용할수있어야한다. MinGW는 gcc를 Windows 환경에서쓸수있게돕는 software이다. 2.2.3. nvidia CUDA / OpenCL Installation 2.2.3.1. nvidia GPUs (CUDA) 먼저 Python module PyCUDA를설치하여야한다. PyCUDA 홈페이지에다운로드관련정보를얻을수있다. http://mathema.tician.de/software/pycuda/ 그러나, 개발자는 PyCUDA를다음주소에서다운로드받아설치할것을권장한다. http://www.lfd.uci.edu/~gohlke/pythonlibs/ 그다음 CUDA를사용하기위해 nvidia-cuda-toolkit을설치해야한다. 다음인터넷주소에서 PyCUDA와윈도우버전에맞는 nvidia-cuda-toolkit을설치하면된다. https://developer.nvidia.com/cuda-toolkit 2.2.3.2. AMD GPUs (OpenCL) OpenCL을사용하고자할경우, 독자가보유한 AMD 그래픽카드에맞는최신의드라이버를설치또는업데이트하는것으로 OpenCL 드라이버설치를대신할수있다. 그다음으로는, Python module의일종인 PyOpenCL을설치하는것이다. PyOpenCL 홈페이지에다운로드관련정보를얻을수있다. http://mathema.tician.de/software/pyopencl/ 개발자는다음인터넷주소에서 PyOpenCL을다운로드받는것을추천한다. - 4 -
http://www.lfd.uci.edu/~gohlke/pythonlibs/ - 5 -