차세대도시·농림융합기상사업단
 
작성일 : 15-10-28 13:14
트위터로 이동 페이스북으로 이동
프로그램 언어 파이썬
 글쓴이 : 권태헌
조회 : 7,435  

컴퓨팅 플랫폼은 소프트웨어가 구동 가능한 하드웨어 아키텍처나 소프트웨어 프레임워크의 종류를 설명하는 용어[1]로 정의된다. 따라서 플랫폼은 전산자원 부분과 소프트웨어 부분으로 나누어 고려하게 된다. 18개월마다 업데이트[2] 되는 IT 기술 시장에서 향후 몇 년간 가동될 전산 자원을 고려한다는 것은 어려운 일 중 하나이다. 이와 같은 빠른 기술변화 외에도 플랫폼의 소프트웨어 환경 구축 정책이 전산자원의 결정에 큰 영향을 주게 된다.

 

WISE 사업단은 2016년 플랫폼 구축을 위해 하드웨어 세부 설계를 하게 되어 있다. 이에 따라 모델팀, 관측팀, 융합팀에서 수행하는 작업과 생산 및 수집되는 자료들에 대한 상세한 파악이 요구된다. 또한, WISE 7대 융합기상 서비스를 수행하기 위한 콘텐츠 생성을 하기 때문에 생성되는 정보의 양(연간 310 TB 정도로 추정)과 유형 및 작업의 다양성을 고려하게 된다. 이와 같은 고려사항은 대용량 자료를 처리하고 분석하는 연구소나 기관이라면 피할 수 없는 고민이다. 특히 세계 85개국, 580여 대학과 연구소에서 약 8000명의 과학자들이 연구하는 유럽입자물리학연구소[3](이하 CERN) 에서는 대용량 자료와 다양한 형태의 정보를 처리 및 공유하기 위해 1990년대에 WWW[4]를 개발하여 사용했다. CERN의 사례에서 WISE 사업단이 주목할 또 다른 점은 CERN에서는 생산하는 대용량 자료 처리와 분석을 위해 파이썬을 사용한다는 점이다


intro_fig5.png

그림 1. 파이썬 사용 사례 (Paul D. Nation, 2014)[5]

 

그림1 CERN 외에도 파이썬을 사용하고 있는 대표적인 기업과 기관을 나타내고 있다. 이러한 기관들 외에도, 파이썬은 리눅스 운영체제의 약 20%를 구성하고 있으며, 지리정보시스템인 Arc GIS와 양자전기역학 시뮬레이션 모델에[6]도 이용되고 있다.  


intro_fig6.png
그림2. 스크립트언어의 연산과 프로그래밍 시간 (Paul D. Nation, 2014)[5]

 

파이썬은 스크립트 언어이면서 High-level 언어로, Low-level 언어들에 비해 사용이 편리한 대신 연산속도가 느리다(그림 2). 파이썬 사용자들은 연산속도의 저하를 해결하기 위해 C 나 포트란 코드를 파이썬에서 호출해 사용한다. 실제로 2차 편미분 방정식으로 테스트 한 결과 파이썬 코드로만 연산한 경우 2.011 Mcell/s을 처리하는 반면 포트란 코드를 호출 했을 경우 198.178 Mcell/s로 처리한다. 스크립트 언어의 연산속도를 향상 시킨 언어로는 2012MIT에서 만들어진 줄리아(Julia)[7]가 있다. 줄리아는 LLVM (Low Level Virtual Machine) 기반의 JIT(Just-In-Time) 컴파일러를 사용하여 C와 비슷한 연산속도를 내고 있다. 줄리아가 스크립트 언어의 단점인 연산속도 문제를 개선했지만 파이썬이 활용된 분야까지 확장되어 파이썬을 대체하기까지는 요원 할 것으로 본다. 왜냐하면 트위터 플랫폼을 이용하는 수많은 서비스가 있어 트위터 플랫폼의 입지가 굳건해 졌듯이[8] 파이썬을 이용하는 수많은 분야와 기관들이 있어 줄리아로 대체되는 일이 쉽게 일어나지 않을 것으로 판단하기 때문이다.

 

파이썬의 편리성에 관한 몇 가지 예를 들면, In-memory 연산을 하는 Pandas[9], 단일 머신에서의 다중 코어 사용을 위한 ipcluster, IPython, IPython의 노트북 기능[10]등을 들 수 있다. CERN에서는 파이썬을 사용하는 이유를 다음과 같이 밝히고 있다.

 

“Why Python? CMS already uses it for its configuration files. It is a powerful language that many consider both much easier to read and easier to write than C++.”[11]

 

플랫폼의 하드웨어 세부 설계에 앞서, 컴퓨팅 프로그램 언어를 논하는 것이 외람된 것일 수 있다. 하지만 대용량 자료처리를 하고 다양한 연구진을 이끌고 있는 CERN이 하나의 통일된 프로그래밍 언어를 지향 한다는 점은 WISE 사업단의 플랫폼에서도 참고 할 사항으로 본다.

 

<참고문헌과 주석>

[1] https://en.wikipedia.org/wiki/Computing_platform

[2] 한국정보과학회, 2013 소프트위어 컨버전스 심포지움, 2013.1.17.~18, COEX

[3] 유럽 입자 물리학 연구소(프랑스어: Conseil Europ?enne pour la Recherche Nucl?aire, CERN)

[4] 1991년 CERN의 팀 버너스리가 실험데이터, 뉴스, 문서 등을 공유하고 검색하기 위해 현재 사용되고 있는 WWW를 개발하였다.

[5] Introduction to Computational Physics, Prof. Paul D. Nation, Korea University Department of Physics, Spring 2014, Course Website: nqdl.korea.ac.kr/courses/P461

[6] http://qutip.org/

[7] http://julialang.org/

[8] http://www.nytimes.com/2010/04/12/technology/12twitter.html?_r=0; http://bahnsville.tistory.com/337 

[9] http://pandas.pydata.org/pandas-docs/stable/comparison_with_sas.html#disk-vs-memory

[10] Python for Data Analysis, Wes McKinney, 2012, O’REILLY. IPython은 파이썬의 명령어를 대화형으로 처리하는 개발환경(An interactive computing and development environment)이다. IPython의 노트북 기능은 인터넷 웹브라우저로 원격 서버에 있는 파이썬을 사용하게 해주는 기능이다. 노트북 기능을 사용할 경우, 원격 터미널(Putty)과 그래프 표출을 위한 Xming과 같은 프로그램을 사용하지 않아도 되며, FTP 기능도 일부 사용할 수 있다. 

[11] https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookFWLitePython