← 최신 논문
💻 컴퓨터 과학

JACC v1.0: High-productivity Performance Portability in the LLVM-compiled Julia Language

이 논문은 단일 코드베이스를 통해 다양한 CPU 및 GPU 아키텍처에 걸쳐 고생산성, 이식성 및 고성능 병렬 프로그래밍을 가능하게 하는 LLVM 컴파일 기반 Julia 언어를 위한 통합 프레임워크인 JACC v1.0을 소개한다.

원저자: Philip W Fackler, Pedro Valero-Lara, Narasinga Rao Miniskar, Steven Hahn, Het Mankad, Doris Chiang, Jose Gonzalez, Jhonny Gonzalez, Alexis Huante, Yuguo K Tang, Emily Yang, Claire A Winogrodzki, Rites
게시일 2026-10-22
📖 5 분 읽기🧠 심층 분석

원저자: Philip W Fackler, Pedro Valero-Lara, Narasinga Rao Miniskar, Steven Hahn, Het Mankad, Doris Chiang, Jose Gonzalez, Jhonny Gonzalez, Alexis Huante, Yuguo K Tang, Emily Yang, Claire A Winogrodzki, Ritesh Bhirud, Julian Samaroo, Rabab Alomairy, Alan Edelman, Johannes Blaschke, Michel Schanen, Patrick Diehl, Elijah Pelofske, Jean-François Boussuge, Ludovic Räss, Simone Marras, Yuki Nagai, Jeffrey S. Vetter, Keita Teranishi, William F. Godoy

원본 논문은 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. ✨ 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

현대의 슈퍼컴퓨터는 다양한 유형의 프로세서를 탑재하여 놀라운 속도로 문제를 해결할 수 있는 점점 더 복잡한 기계가 되어가고 있습니다. 수십 년 동안 과학자들은 이 기계들에게 무엇을 할지 지시하기 위해 몇 가지 표준 언어에 의존해 왔지만, 하드웨어가 진화함에 따라 이러한 시스템을 위한 코드를 작성하는 것은 어렵고 전문적인 작업이 되었습니다. 연구자들은 종-종 동일한 과학 프로그램을 서로 다른 유형의 컴퓨터 칩을 위해 한 번, 그리고 또 다른 칩을 위해 다시 한 번, 즉 동일한 결과를 얻기 위해 여러 번 다시 작성해야 하는 상황에 직면하곤 합니다. 이는 코드를 서로 다른 기계에 맞춰 번역하는 데 소비되는 시간이 실제 발견에 사용할 수 있는 시간을 갉아먹는 병목 현상을 초래합니다. 이 분야의 많은 이들의 목표는 모든 프로세서의 복잡한 설계 세부 사항을 알 필요 없이, 개인용 노트북이든 거대한 국가적 슈퍼컴퓨터이든 상관없이 어떤 기계에서도 효율적으로 작동하는 단 하나의 명령 세트를 찾는 것입니다.

오크리지 국립연구소와 기타 기관의 연구진은 줄리아(Julia) 프로그래밍 언어를 사용하는 과학자들을 위해 JACC라는 새로운 도구를 도입하여 이 문제를 해결하고자 합니다. 줄리아는 수학 공식처럼 읽기 쉬우면서도 가장 효율적인 기계 코드만큼 빠르게 실행되도록 설계된 언어입니다. 이 새로운 JACC 소프트웨어는 이 언어를 위한 보편적인 번역기 역할을 하여, 과학자들이 자신의 코드를 한 버전으로 작성하면 이를 컴퓨터의 중앙 프로세서에서 실행하거나 대규모 계산에 사용되는 특수 그래픽 칩에서 실행할 수 있도록 해줍니다. 연구진은 이러한 접근 방식이 코딩을 쉽게 만들 뿐만 아니라, 소프트웨어가 각 개별 유형의 하드웨어에 맞춰 특별히 작성된 코드와 거의 동일한 속도로 실행될 수 있게 한다는 것을 발견했습니다. 이는 과학자가 노트북에서 시뮬레이션을 개발한 후, 코드 한 줄 변경 없이 동일한 프로그램을 세계적인 수준의 슈퍼컴퓨터에서 실행할 수 있음을 의미합니다.

이 성과의 핵심은 JACC가 과학자의 작업과 컴퓨터 하드웨어 사이의 관계를 처리하는 방식에 있습니다. 과거에는 한 유형의 프로세서에서 다른 유형의 프로세서로 프로그램을 옮기는 것이 마치 영어에서 프랑스어로, 다시 일본어로 책을 번역하는 것과 같아서 각 번역마다 뉘앙스나 속도의 손실을 초래할 위험이 있었으며, 이 과정에서 전체를 새로 작성해야 했습니다. JACC는 이러한 별도의 번역 과정을 제거합니다. JACC는 특정 프로세서가 작업을 수행해야 하는지를 지정하지 않고도, 대규모 숫자 그리드 전체에서 값을 계산하는 것과 같은 작업을 수행하도록 컴퓨터에 지시하는 일련의 간단한 명령을 제공합니다. 소프트웨어는 컴퓨터에 NVIDIA, AMD, Intel 또는 Apple 칩이 있는지 자동으로 감지하고, 작업에 가장 적합한 가용한 프로세서로 작업을 지시합니다. 이러한 유연성 덕도 연구자들은 현대적인 노트북에 있는 강력한 그래픽 카드를 대화형 테스트용으로 사용할 수 있으며, 이후 최종적인 대규모 실행을 위해 프로세서 배열이 거대한 슈퍼컴퓨터로 매끄럽게 전환할 수 있습니다.

연구진은 다양한 실제 과학 문제에 이 도구를 적용하여 그 효과를 입증했습니다. 그들은 공기가 날개 위를 어떻게 흐르는지 또는 물이 파이프를 통해 어떻게 이동하는지를 모델링하는 데 사용되는 유체 역학 시뮬레이션에 이 도구를 적용했습니다. 이 테스트에서 소프트웨어는 각 특정 기계에 대해 전문가들이 작성한 전용 코드와 성능이 일치하거나 매우 근접한 상태로 다양한 하드웨어에서 실행되었습니다. 예를 들어, 유체의 움직임을 시뮬레이션할 때 이 시스템은 그래픽 칩에서 가능한 최상의 성능의 몇 퍼센트 이내의 속도를 달 achievement 했습니다. 이는 단일 코드베이스의 편리함이 속도를 희생하지 않는다는 것을 증명합니다. 또한 연구팀은 이 시스템이 단일 기계에서 여러 프로세서가 함께 작동하는 복잡한 작업을 처리할 수 있음을 보여주었는데, 이는 슈퍼컴퓨터가 더 적은 물리적 단위에 더 많은 전력을 집약함에 따라 필수적이 되고 있는 능력입니다.

단순한 속도를 넘어, 이 도구는 이전에는 관리하기 너무 어려웠던 더 복적인 과학적 탐구의 문을 열어줍니다. 연구진은 JACC가 수많은 미세 입자의 행동을 추적해야 하는 분야인 양자 자기 재료를 시뮬레이션하는 데 사용될 수 있음을 보여주었습니다. 이 새로운 시스템을 사용함으로써, 단일 프로세서에서 실행하는 데 한 시간이 걸렸던 계산이 그래픽 칩에서 실행되었을 때 단 몇 초로 단축되었습니다. 이와 같은 가속은 양자 화학이나 핵 물리학과 같이 조건에 따라 물질이 어떻게 변하는지 이해하기 위해 수천 가지의 시뮬레이션 변형을 실행해야 하는 분야에서 매우 중요합니다. 하드웨어에 관계없이 코드를 다시 작성하지 않고도 이러한 시뮬레이션을 실행할 수 있는 능력은 과학자들이 프로그래밍의 메커니즘보다 물리학 자체에 더 집중할 수 있게 해줍니다.

이 작업의 영향은 과학 소프트웨어가 구축되고 유지되는 미래로까지 확장됩니다. 연구진은 이 시스템이 과학계에서 사용되는 기존 도구들과 함께 작동하도록 설계되어, 현재의 프로젝트를 완전히 갈아엎는 대신 점진적인 전환을 가능하게 한다고 언급했습니다. 이는 연구소들이 전체 마이그레이션을 결정하기 전에 코드의 특정 부분에 이 시스템을 단계적으로 적용하여 테스트할 수 있음을 의미합니다. 또한 소프트웨어는 계산의 서로 다른 부분이 데이터를 빠르게 액세스할 수 있게 하는 공유 메모리와, 이전 작업이 완전히 끝나기 전에 컴퓨터가 새로운 작업을 시작할 수 있게 하는 비동기 실행과 같은 고급 기능을 지원합니다. 이러한 기능들은 한 번에 많은 작업을 처리하도록 설계된 최신 슈퍼컴퓨터의 성능을 최대한 활용하는 데 매우 중요합니다.

앞으로 연구진은 이 기술을 더욱 발전된 응용 분야를 위한 토대로 보고 있습니다. 그들은 이 시스템이 우리가 오늘날 사용하는 고전적 컴퓨터와 물리 법칙이 매우 다른 양자 컴퓨터의 개발에 어떻게 사용될 수 있을지 탐구하고 있습니다. 이식 가능하고 효율적인 코드를 작성할 수 있는 능력은 하드웨어가 완전히 준비되기 훨씬 전부터 과학자들이 이러한 미래 기계를 위한 알고리즘을 설계하고 테스트하는 데 도움을 줄 수 있습니다. 또한, 시스템은 특정 작업이 어떤 프로세서를 처리해야 하는지 자동으로 결정할 수 있는 지능형 소프트웨어와 통합되어 인간 프로그래머의 부담을 더욱 줄여주고 있습니다. 이러한 사용의 용이성과 높은 성능의 결합은 과학자의 아이디어와 실행 중인 시뮬레이션 사이의 장벽이 오늘날보다 훨씬 낮아질 미래를 시사합니다.

이 논문에 제시된 연구는 고성능 컴퓨팅을 더 넓은 범위의 과학자들에게 접근 가능하게 만드는 데 있어 중요한 진전을 나타냅니다. 고수준 프로그래밍과 저수준 하드웨어 세부 사항 사이의 간극을 메우는 도구를 제공함으로써, 연구진은 더 효율적이고 생산적인 과학적 발견을 위한 경로를 만들었습니다. 결과는 높은 생산성과 높은 성능이라는, 과거에는 종종 상충 관계에 있었던 두 가지 목표를 동시에 달성하는 것이 가능하다는 것을 보여줍니다. 세상이 더욱 복잡한 컴퓨팅 시스템으로 나아감에 따라, JACC와 같은 도구는 이러한 기계의 잠재력을 완전히 끌어내기 위해 필수적인 요소가 될 것이며, 과학자들이 이전에 해결하기 너무 어려웠던 문제들을 다룰 수 있도록 해줄 것입니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →