MATLAB와 빅데이터, 엔터프라이즈 환경에서의 애널리틱 솔루션 활용 방법
MATLAB와 빅데이터, 엔터프라이즈 환경에서의 애널리틱 솔루션 활용 방법
  • 김수아 기자
  • 승인 2015.12.22 09:16
  • 댓글 0
이 기사를 공유합니다

빅데이터 플랫폼 (Hadoop)에 MATLAB의 분석 기능을 추가할 수 있으며, 회사내의 혹은 web기반 서비스를 위해서도 deployment 환경을

테크니컬 컴퓨팅 소프트웨어 분야의 선도기업인 매스웍스코리아(대표 이종민)의 MATLAB은 지난 30년이 넘어 현재까지도 단연 돋보이는 컴퓨팅 엔진으로 사용되고 있다. 

현재 백만 명이 넘는 엔지니어와 과학자들이 지식 분야를 넘어 아이디어를 공유하고 협력하기 위해 MATLAB을 공통의 언어로 사용하고 있으며, 기존의 프로그래밍 언어로는 수일, 수주, 수개월에 걸리던 일들을 수분 또는 수시간 내에 가능하게 하는 혁신적인 MATLAB은 테크니컬 컴퓨팅의 대표적인 언어이다.

대규모의 시뮬레이션이나 데이터 처리 작업은 수학적 모델링, 알고리즘 개발 및 테스팅과 같은 시간이 오래걸리거나 컴퓨터 메모리를 많이 필요로 하는 활동들을 지원하고 이러한 작업들의 속도를 높이기 위해서는 멀티코어 컴퓨터, GPU, 컴퓨터 클러스터 및 그리드, 클라우드 컴퓨팅 서비스 등과 같은 고성능 컴퓨팅 자원들을 활용할 수 있다.

이에 MATLAB 이라는 언어의 특징과 본격적인 어플리케이션 개발 환경으로서 필요한 기능인 Deployment 에 대한 내용을 살펴보았다.

1. 개발자의 지적 재산권(Intellectual Property) 을 보호하는 방법

MATLAB의 매뉴얼을 자세히 들여다보면 “Protect Your Source Code” 라는 항목을 발견할 수있다. 그곳에 가면 두가지 방법으로 개발자의 지적 재산권을 지키는 방법을 소개하고 있다. 먼저 나오는 방법은 MATLAB의 소스코드를 P 코드로 변환 하라고 설명 하며 방법은 매우 간단다.

>> pcode yourfile1 file2 …

이렇게 사용하면, 확장자가 m 이었던 소스파일이 p 로 변환되어 진다. 이는 MATLAB의 인터프리터로서의 기능을 선실행 시킨 결과로, P 코드는 MATLAB(기계)가 이해할 수 있는 형태로 변형되어지고, 일반적인 편집기등에서는 알아볼 수 없는 내용으로 나오게 된다. 

기존의 m 확장자 파일의 실행과 똑같이 사용하실 수 있고 장점은 이미 기계어화 된 상태라 그만큼 속도가 빨라지게 된다. 그러나 한가지 문제가 부호화(encrypted)되어있지 않기에 완벽한 보호는 아니라는 점이다. 누군가가 큰맘먹고 해석하겠다 하면 가능할 수도 있는 상황이다.

이제 두번째 보호 방법을 알아본다. 두번째 보호 방법은 바이너리(Binary)형태로 컴파일하는 방법이다. 이 방법는 MATLAB 의 deployment 환경 제품을 이용하여 단독 실행 파일이나 (MATLAB이 없어도 실행되는), Dynamic library, 기타 Software component 로 변환하여 사용하는 방법을 말한다.

<그림 1. MATLAB Application의 Deployment 활용>
*참조 MATLAB as a Collaboration Platform (MATLAB 프로젝트 개발방법) 클릭하면 비디오로 이동

2. Deployment 기능의 장점과 빅데이터 플랫폼에서의 사용

MATLAB은 인터프리터(Interpreter) 방식의 프로그래밍 언어이다. 흔히 사용하는 C 언어 같은 컴파일(Compiler)과정이 필요한 언어와는 실행 방식이 다르다. 앞서 소개한 p 코드 변환은 MATLAB의 인터프리터 기능을 사전 실행한 결과라 볼 수 있다.  

MATLAB은 편집기 상에서 작성된 텍스트 문을 MATLAB이라는 인터프리터가 기계어로 번역하여 실행하는 방식을 따른다. 이러한 방법의 장점은 코드를 작성함과 동시에 실행이 가능하여 명령 단위의 결과를 바로 바로 볼수 있고, 디버깅이 매우 간편하다.

그러한 이유로 과학 및 엔지니어링에 사용되는 많은 진보된 형태의 언어 및 개발환경들은 이 방법을 사용한다. 그렇다면 한계점은 무엇일까? 바로 인터프리터가 없으면 실행 할 수 없다는 점이다.

이러한 불편한 점을 극복하기 위해 MATLAB의 Deployment환경을 사용하게 된다.

간단히 MATLAB의 Deployment를 정리하면 MATLAB이 없어도 실행가능한 컴퍼넌트 혹은 실행 파일 형태로 변환하는 기능을 말한다.

< 그림2. MATLAB의 Deployment는 MATLAB로 작성된 알고리즘을 배포할 수 있다. >

이렇게 변환 된 Stand-alone application은 주로 Desktop 환경의 자동화 어플리케이션으로 활용된다. MATLAB으로 개발한 GUI를 EXE 파일 형태로 배포하거나 Excel 의 매크로 함수 혹은 VBA 언어상에서 MATLAB 기능을 추가시키는 것도 흔히 사용되는 기능이다.

MATLAB Compiler Overview (영상 강의 보기) 클릭하면 비디오로 이동
MATLAB Compiler SDK - Videos (다양한 deployment 환경의 소개) 클릭하면 비디오로 이동

그리고 빅데이터 플랫폼 (Hadoop)에 MATLAB의 분석 기능을 추가할 수 있으며, 회사내의 혹은 web기반 서비스를 위해서도 deployment 환경을 사용하기도 한다.

특히, MATLAB Production Server (MPS)는 다중 서비스 제공 환경 구축을 위해서 사용된다. MPS는 deployment 환경에서 제공되는 MATLAB의 독립 인스턴스를 동시에 여러개가 실행 가능하게 끔 해주는 기능을 제공한다. MPS를 통해서 개발자는 Web 서버나, 다중 접속 서버에서 동시에 수많은 사용자들이 실행을 요청할 때, 할당 된 하드웨어 리소스에 요청된 MATLAB 인스턴스들을 실행하도록 개발하게 된다.

<그림3. MPS를 활용한 일기예보 애널리틱스(아마존 웹서비스) 개발 워크플로우 예>

3. 빅데이터 플랫폼으로 많이 사용되는 하둡(Hadoop) 지원 내용

MATLAB에서의 빅데이터 지원은 첫째로 Desktop 애널리틱 환경과 하둡 플랫폼에서의 처리속도 개선 방법이고 다음으로 하둡 환경으로의 알고리즘 적용이다. MATLAB은 빅데이터 분석을 위한 다양한 애널리틱 및 분석 알고리즘을 제공하고 있고, 병렬 컴퓨팅의 지원으로 빠른 속도의 데이터 처리가 가능하다. 여기에 deployment 환경에서 제공하는 하둡시스템의 적용 기능까지 더해서 독자적인 애널리틱 플랫폼에서 확장하여 빅데이터 플랫폼에서 활용할 수 있게 된다.

<그림 4. Big Data Stored on Hadoop>

그림 4에서는 데스크탑 MATLAB과 하둡 파일시스템과의 연결과 이때 mapreduce 기능에서의 병렬 컴퓨팅 기능을 보여주고 있으며, 하둡 환경으로 MATLAB 적용을 표현하고 있다.

*MATLAB MapReduce and Hadoop (추천 정보 보기)

현재 MathWorks 에서는 더 많은 빅데이터 플랫폼을 지원하기 위해, NoSQL 이나 Spark 같은 빅데이터 환경 지원을 계획하고 있으며, 시장의 요구에 따라 지원 범위를 점차 확장할 계획에 있다. 단순히 PC 나 LINUX 와 같은 곳의 연산을 위한 계산 언어로서의 활용뿐만 아니라, 엔터프라이즈 시스템 및 웹 기반 서비스에 까지 사용이 가능한 MATLAB 환경의 진보는 앞으로 계속될 것이다.

[출처 및 자료제공] MathWorks Korea

 

Tag
#N


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.