연구의 선진화와 생산성 향상에
필요한 최적의 소프트웨어와 컨설팅을
공급하도록 노력하겠습니다.

gridMathematica

gridMathematica는 Grid Computing에 관한 관심이 높아지면서 시대 흐름에 맞추어 개발된 제품이다. 이것은 기존의 제품들(Network Mathmatica, Parallel Computing Toolkit, MathML)의 요소들로 구성되어 있다. 기존 Mathematica의 단말 처리 장치와는 달리 마스터/슬레이브 구조의 병렬식 멀티 처리 장치를 가지고 있어 계산 시간이 빨라졌으며, 고차원 알고리즘의 적용으로 더욱 그 시간을 단축시켰다. 이러한 장점으로 인해 생물학, 데이터 분석, 복잡한 물리 계산, 수학, 과학 등 여러 분야에 쓰일 수 있다.

01. gridMathematica

gridMathematica는 마스터커널과 라이센스 매니저 그리고 사용할 노드당 한개의 mathematica 커널로 이루어져 있다. 라이센스 매니저인 MathLM은 각 Mathematica 노드에 올바르게 라이센스를 받게 해주고 필요한 비밀번호를 제공한다. 마스터 커널은 모든 입력, 출력, 계획을 담당한다.
또한 모든 Mathematica의 배치파일이나 지역적 원격무선 연결을 통제한다. 사용자들은 마스터 커널로부터 RSH나 SSH같은 원격무선 커널을 사용한다. 원격무선연결이 되면 마스터 커널로부터 command를 받아 사용할 수 있게 된다.
즉, 복잡한 계산을 할 경우 입력받은 마스터 커널이 여러 개의 슬레이브 커널에게 그 계산을 나누어서 담당하도록 하고 그 결과를 마스터 커널로 보내어 마스터 커널이 출력을 하게 되는 것이다. 기존 한 개의 커널로 계산을 담당하던 것을 여러 개의 커널로 나뉘어 속도를 빠르게 한 것이다. 이렇게 여러 개의 슬레이브 커널에게 계산을 주어주는 역할을 하는 것이 마스터 커널이고 실질적인 계산을 하는 것이 슬레이브 커널인 것이다. 단 하나의 gridMathematica는 8개의 슬레이브 커널로 나뉘어진다.

02. gridMathematica의 특징

gridMathematica는 Mathematica 기초로 하기 때문에 Mathematica 4.2와 같은 함수들을 제공하며 응용패키지 역시 사용할 수 있다. 특징들은 다음과 같다.
  • → 메모리 분배
  • → 마스터/슬레이브 병렬구조
  • → 장치 독립적 구현
  • → 고차원적 문제에 대한 소스
  • → MathLink를 이용한 interkernel 상호작용
  • → 기본처리장치의 자동 반환과 실패복원 지원
  • → 가상처리 또는 사용가능한 처리장치 분리 지원
  • → 가상분해된 메모리 지원
  • → 보안, 동기성, 대기시간을 위한 지원
  • → 동시발생적 처리 지원
  • → 병렬 함수적 프로그래밍 지원
  • → 멀티 처리 장치, 서로 다른 성질로 이루어져 있는 네트워크, LAN 그리고 WAN의 지원

03. gridMathematica의 한계

gridMathematica는 Mathematica에 이어 나타난 버전이 아니며 한 개의 Mathematica 커널의 병렬연결이 아니라 멀티 커널의 연결을 의미한다. gridMathematica는 많은 병렬구조로 만들어진 원시함수들을 계산하고 행렬 operation, plotting 그리고 다른 함수들의 병렬구조를 계산하기 위한 고급 command들도 가지고 있다. 또한 Monte Carlo 시뮬레이션, visualization, 검색, 최적화같은 많은 유명하고 새로운 프로그램들의 예제들을 응용한 것들로 이루어져 있다.
이 모든 고급 병렬 처리 command들에 대한 계산은 Mathematica 소스에서 제공받는다. 그래서 자신만의 병렬 프로그램을 만들 수도 있다. 병렬연결로써 미·적분 방정식의 해를 구하는 시간은 빨라졌지만 한 사용자의 계산으로는 속도가 빨라지지 않는다. 예를 들면 Integer나 DSolve같은 operation은 한 개 처리장치로 수행되어진다.
하지만 한 사용자가 그러한 operation을 여러 개 수행해야 할 경우 병렬구조로 계산하는 슬레이브 커널로 이 operation들을 보내어 수행하도록 하여 한 처리장치에서 여러 개의 operation을 계산하는 동안 기다려야 할 필요가 없게 되었다.
이러한 옵션을 가지는 개발 프로그램들은 계산시간에서 탁월한 효과를 가져올 수 있다.

04. gridMathematica의 장점

  • Computational Ability
  • Mathematica에 내장된 그래픽과 계산에 관계된 여러 함수들과 일반적인 프로그램들뿐 아니라 좀더 많은 프로그램 능력들을 gridMathematica는 가지고 있기 때문에 뛰어난 계산능력을 지닌다.
  • Ease of Development
  • Mathematica에서 작성한 프로그램은 grid에서 쉽게 수정할 수 있으며, 심지어 고차원 프로그램과 수천개의 built-in 함수들 그리고 grid-computing 문제를 해결하는 간단한 명령어들을 사용하는 사용자들은 C나 포트란에서 코딩한 소스들을 불러서 사용할 수도 있다.
    또한 병렬 계산도 가능하기 때문에 기존의 Mathematica를 쓰던 사람들이 쉽게 girdMathematica로 바꾸어 사용할 수 있다.
  • Platform Independence
  • 각 노드들 사이에는 TCP/IP 연결로 구성되어 있어 어떠한 System에서도 같은 code로 실행한다.