수십 년 전에는 컴퓨터가 굉장히 비싸고 흔치 않았다. 하지만 지금은 거의 대부분의 가정에서 개인용 컴퓨터를 사용하고 있고, 쉽고 빠르게 사용할 수 있게 되었다. 또한 기술의 발전을 통해 세포의 내부 작용을 예측하거나 약물의 신체 반응을 프로그램으로 시뮬레이션 하는 등 다양한 전산화된 기술이 개발되었다.
하지만 점점 더 새롭고 정교한 장비가 개발되고, 슈퍼컴퓨터가 굉장히 많은 양의 데이터를 생산하면서 거대한 데이터 세트에 대한 분석이 매우 중요해졌다. 대량의 자료를 분석해야 하는 과학자들의 경우 복잡한 하드웨어를 설계할 수 있는 적합한 소프트웨어 프로그램이 필요해졌다.
Tech Xplore는 프로그래밍 언어인 "Regent(리젠트)'가 슈퍼컴퓨터를 사용하는 것을 더 쉽게 만들어줄 것이라고 전했다.
리젠트는 스탠포드의 컴퓨터 과학자 Alex Aiken(알렉스 에이컨)의 팀이 개발한 새로운 프로그래밍 언어이다. 리젠트는 슈퍼컴퓨터를 보다 쉽게 사용할 수 있도록 도와준다. 에이컨 교수는 "우리는 모든 연구자가 컴퓨터 과학자가 될 필요가 없는 프로그래밍 환경을 만들고 싶었다"라고 말했다.
오늘날 슈퍼컴퓨터는 이전과 비교가 되지 않을 정도로 매우 복잡하다. 그래서 기존의 프로그래밍 언어로 속도를 맞추기 위해 굉장히 노력을 하고 있다.
이전에는 중앙 처리 장치 또는 CPU를 메인 프로세서로 사용해 데이터를 처리했다. 그런데 최근에는 그래픽 처리 장치나 GPU가 슈퍼컴퓨터에서 중요해지고 있다. 처음에 GPU는 비디오 게임의 시각적 효과를 향상시키기 위해 컴퓨터 화면에서 수백만개의 픽셀을 제어하는 데에 사용되었다. 수많은 계산을 병렬로 동시에 처리할 수 있는 GPU의 특징은 머신러닝과 같은 애플리케이션에 매우 유용하다. 그래서 하드웨어의 변화에 따라 기존에 사용하던 C 언어도 업그레이드 하고 있다.
하지만 불행히도 패치의 증가로 인한 문제점이 많은데, 리젠트가 이러한 문제를 해결할 수 있을 것으로 기대된다. 리젠트는 슈퍼컴퓨터가 직렬 처리 작업을 CPU에 할당하고, 병렬 처리 작업을 GPU에 할당하는 작업을 보다 쉽게 수행한다.
리젠트가 개념적인 수준에서 프로그램을 구성하면, 프로그래머의 의도를 번역하거나 기술 용어를 사용하고 컴파일 해 Legion이라고 불리는 두 번째 소프트웨어 레이어로 바꾼다. Legion는 슈퍼컴퓨터의 하드웨어에 프로그램을 어떻게 수행해야 하는지 정밀한 명령을 내리는 머신 코드를 생성한다. Regent와 Legion의 긴밀한 통합을 통해 프로그래머는 중요한 결정을 내리는 것이 쉬워진다. 슈퍼컴퓨터가 분석해야 하는 데이터를 저장하는 위치를 할당하는 것 등이 여기에 포함된다.
SLAC 국립 accelerator 연구소의 과학자 Elliot Slaughter 씨는 두 레이어의 통합으로 인해 프로그래머가 시간과 비용을 절약할 수 있다고 한다. 컴퓨터는 에너지를 소비하고 여기에 비용이 든다. 하지만 데이터 이동에 따른 에너지 비용은 해당 데이터에 대한 계산 수행 비용의 100배가 될 수 있다. 또한 대규모 실험은 대용량 데이터를 수집하는 도구에 의존하는 경우가 많다. Slaughter 씨는 프로그래머가 계산을 기다리는 동안 데이터를 저장할 위치를 제어함으로써 비용과 시간을 절약할 수 있을 것이라고 말한다.
리젠트가 널리 퍼지게 될까? 연구자들은 새로운 언어가 많은 관성을 극복해야 한다고 말한다. 슈퍼컴퓨터를 사용하고자 하는 많은 과학자들이 아직 기존의 도구에 익숙하지 않고, 더 효율적인 도구에 대한 필요성을 느끼지 못하는 경우가 많다. 하지만 에이컨 교수는 "우리는 리젠트가 삶을 얼마나 쉽게 만들어주는지를 아는 과학자들과 정기적으로 이야기를 나눕니다."라고 말한다. 또한 "리젠트는 매우 다른 프로그래밍 방식입니다.", "연구자들이 필요한 사고방식을 채택하는 데에 어느 정도 시간이 걸릴 것입니다." 라고 말했다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]