[HPC] 엑사급 초고성능컴퓨터를 위한 오토튜닝 프레임워크 개발
엑사급(Exascale) 초고성능 컴퓨터(HPC)는 1초에 10의 18제곱 연산을 처리할 수 있는 슈퍼컴퓨터입니다. 주로 과학 시뮬레이션, 인공지능 학습, 기후 예측 등 방대한 계산 자원이 필요한 분야에서 활용됩니다. 하지만 거대한 시스템을 효율적으로 활용하기 위해서는 각기 다른 하드웨어 자원과 복잡한 소프트웨어 환경을 상황에 맞게 최적화하는 것이 매우 중요합니다. KISTI 슈퍼컴퓨팅 센터와 협업하여 슈퍼컴퓨터 5호기(누리온 등), 6호기에 효과적인 스케줄링 알고리즘과 프로그램 실행 시 파라미터를 자동으로 튜닝하는 기법을 제안합니다.
HPC 스케줄링 최적화를 위한 기계학습(강화학습) 알고리즘 연구

슈퍼컴퓨터(i.e., 고성능컴퓨팅 클러스터)의 성능을 극대화하기 위해서는 멀티 노드에서의 작업 스케줄링이 필수적입니다. 이러한 클러스터 환경은 제출된 작업 처리율, 대기 시간, 자원 활용률 등 최적화가 필요한 변수들이 있습니다. 기존의 heuristic or rule 기반 스케줄러(FCFS, SJF 등)는 갑작스런 시스템 구성 변화에 동적으로 대응하지 못하고 새로운 워크로드 특성에 맞춰 자원 할당이 어려운 문제가 있습니다. 이에 따라 새로운 대안으로 인공지능 기반 다양한 스케줄링 기법이 제안되고 있습니다. 그 중, 강화학습은 명시적인 규칙 없이도 동적으로 스케줄링 정책을 학습할 수 있도록 구성하여 기존 연구들에서 좋은 결과를 보이고 있습니다.
따라서, 우리 연구실에서는 동적인 환경에 적절히 대응함과 동시에 여러 지표를 최적화 가능한 스케줄링 알고리즘을 연구하고자 합니다. 현재 환경에 맞게 여러 지표 간 우선순위를 자동으로 정의한 뒤, 강화학습 정책을 통해 스케줄링을 수행하는 것입니다. 예를 들어, 성능 지표는 평균 작업 대기 시간, 처리율, 자원 활용률 등 여러 지표들이 좋은 성능을 보이도록 기계학습 혹은 강화학습 기반의 알고리즘을 활용하여 새로운 기법을 제안합니다.
HPC 데이터 적재 및 활용을 위한 공통 레포지토리 시스템 아키텍처 설계

슈퍼컴퓨터(i.e., 고성능컴퓨팅) 환경의 최적화를 위해 공통 데이터 포맷, 공통 레포지토리 운영은 필수적입니다. 슈퍼컴퓨터 환경에서 생성되는 시뮬레이션 결과 값, 작업 로그 등 다양한 유형의 데이터를 통합하고 시스템 내 여러 계층에서 전체적인 최적화를 달성하기 위해 활용됩니다. 그러나, 기존 범용 저장소로 인해 슈퍼컴퓨터 환경의 데이터 처리에 병목 현상이 발생합니다. 예를 들어, 대규모 로그 데이터 검색 시 지연이 발생하고, 멀티 스레드 환경에서는 자원 경합으로 인해 처리량 저하가 나타납니다.
하지만 기존의 범용 저장소는 대규모 로그 데이터를 다룰 때 검색 지연이 발생하고, 멀티 스레드 환경에서는 자원 경합으로 인한 처리량 저하, 그리고 쓰기 작업 시 과도한 I/O 증폭 문제(I/O amplification)가 주요 병목 요소로 작용합니다.
우리 연구실은 이러한 문제를 해결하고자, HPC 환경에서 생성되는 대규모 데이터를 빠르게 저장하고 효율적으로 활용할 수 있는 고성능 공통 레포지토리 아키텍처를 설계하고 있습니다. 핵심 목표는 실시간성, 확장성, 그리고 계층 간 데이터 통합을 모두 만족하는 아키텍처를 구현하는 것입니다.
[Parallel and Distributed System] GPU 기반 그래프 병렬 처리
최근 다양한 도메인(소셜 네트워크, 생명과학 등)에서 사용되는 그래프의 크기는 급격하게 증가하고 있습니다. 하지만, 그래프를 처리하는 GPU 메모리(VRAM) 용량은 그래프의 크기의 증가에 비해 많이 증가하지 않았습니다. 그렇기 때문에 그래프를 여러 개의 작은 그래프로 파티셔닝하는 것과 이를 병렬적으로 처리하는 것은 최근 그래프 처리 연구에 있어 매우 중요합니다.
대규모 그래프 데이터 분산 처리를 위한 그래프 파티셔닝 기법 개발

최근 Social Network, Protein Network 등 다양한 도메인에서 그래프가 사용되고 있으며 각 도메인의 기술이 발달함에 따라 그래프의 크기는 빠르게 증가하고 있습니다. 이러한 그래프는 전통적으로 단일 머신에서 처리하도록 설계되어 왔으나, 점점 커지는 그래프를 단일 머신의 메모리 안에 다 적재하기에는 물리적인 한계가 있습니다. 그렇기 때문에, 대규모 그래프를 처리하기 위해 그래프 파티셔닝이 중요한 기술로 떠오르고 있습니다.
그래프 파티셔닝은 큰 그래프를 다수의 작은 그래프로 분할하는 과정으로 나누어진 서브그래프간의 연결정도(Edge-cut의 개수)와 각 서브그래프 크기의 Balance를 지표로 하는 파티셔닝의 품질(Quality)와 파티셔닝 기법의 실행 시간(Execution Time)을 바탕으로 품질이 높고 빠른 기법을 설계하고자 하는 것이 핵심 목표입니다.
Mini-batch 기반 대규모 그래프 데이터 병렬 처리 기법 개발

딥러닝 기반의 그래프 신경망(GNN: Graph Neural Network)은 전체 그래프를 한 번에 학습하는 full-batch 방식에서 벗어나, 메모리 효율성과 확장성을 고려한 mini-batch 학습 방식으로 발전해 왔습니다. 이는 GPU 메모리에 모두 적재하기 어려운 대규모 그래프를 처리하기 위한 핵심 기법입니다. 구체적으로, mini-batch 학습에서는 전체 그래프에서 일부 노드만을 샘플링하여 이웃 노드 정보를 함께 가져와 학습을 진행합니다. 이 때 이웃 노드 샘플링, 피처 압축, 메모리 정렬 등의 다양한 최적화가 성능에 큰 영향을 미칩니다. 우리 연구실에서는 이러한 mini-batch 학습 기법을 GPU 환경에 최적화하여, 메모리 사용량 최소화, 데이터 로딩 지연 완화, 계산 효율 극대화를 달성하는 것을 목표로 합니다.
[ML System] 클라이언트 이질성을 고려한 연합학습 기법 연구

연합학습은 2017년 구글 연구팀에서 제안한 분산 기계학습 방법론 중 하나로, 이 방법은 클라이언트가 보유한 데이터를 중앙 서버로 직접 공유하지 않고, 로컬에서 학습한 결과(i.e., gradient or model weight)만을 서버에 전달함으로써 기계학습을 수행합니다. 모바일 기기, IoT 장치에서 수집되는 실제 데이터는 대부분이 라벨이 없으며, 라벨링 작업은 시간과 비용이 많이 소요됩니다. 예를 들어, 의료 영상 하나를 라벨링하는 데 전문의의 시간과 비용이 들고, 모바일 사용자의 개인 데이터는 프라이버시 문제로 모두 라벨링하기 어렵습니다. 또한, 분산 환경에서 데이터를 주고받는 통신 비용이 상당합니다. 배터리와 대역폭이 제한된 모바일 기기, IoT 장치에서는 효율적인 통신이 필수적입니다. 추가로, 각 클라이언트의 데이터 분포가 불균형하여 모델의 일반화 성능이 저하되는 문제가 있습니다. 예를 들어, 한 사용자는 고양이 사진만 가지고 있고 다른 사용자는 강아지 사진만 가지고 있을 수 있습니다.
우리 연구실에서는 이러한 문제를 해결하는 효율적인 연합학습 기법을 제안하고자 합니다. 현재 고려 중인 방법은 데이터 샘플의 정보력(informative)에 기반한 샘플링을 통해 모든 데이터를 라벨링하는 대신, 인공지능 모델이 가장 많이 배울 수 있는 핵심적인 데이터만 선별적으로 라벨링합니다. 이 과정에서 데이터의 불확실성 등 다양한 요소를 고려하는 알고리즘을 제안합니다. 또한, 전체 데이터셋의 특성을 유지하면서도 크기를 줄인 대표 데이터셋(core set)을 구성합니다. 이를 통해 모델 성능은 유지하면서 라벨링 비용을 절감하고, 통신량을 감소시킬 수 있습니다.
[Big Data] 자율주행 차량의 대용량 주행 시나리오 질의 웹 페이지 개발

아주대학교 미래모틸리티학과(기계공학과) 연구실과 협업하여 진행하는 프로젝트로, 100TB 규모의 자율주행 차량 주행 데이터를 효과적으로 관리하고 활용하는 데이터 서비스 플랫폼을 개발하고 있습니다. 사용자가 웹 인터페이스를 통해 복잡한 데이터를 쉽게 질의하고, 맞춤형 분석을 요청할 수 있으며, 빠르고 정확한 결과를 받아볼 수 있는 시스템을 구축하는 것이 목표입니다. 이를 위해 대용량 데이터 환경에서 효율적인 저장 구조, 실시간 쿼리 처리, 사용자 요청에 최적화된 응답 시스템 등 다양한 기술적 과제에 대한 연구를 함께 수행하고 있습니다.

본 연구실에서는 데이터 플랫폼 서비스 제공을 위해 필요한 연구를 수행하고, 그 연구 결과를 실제 서비스에 도입하여 검증합니다. 백엔드 엔지니어링 관점에서 마이크로 서비스, 분산 아키텍처, 메세징 시스템, 분산 큐 등 구현이 필요한 요소를 Kafka, RabbitMQ 등 분산 환경에서 주로 활용되는 프레임워크/라이브러리를 도입하여 해결하고자 합니다. 이 과정에서 발생 가능한 기술적인 한계를 극복하기 위해 시스템 부하 분산, 장애 복구, 데이터 일관성 유지 방안 등에 대한 연구도 병행할 계획입니다. 특히 대용량 데이터 처리 환경에서의 성능 최적화와 확장성 확보를 위한 아키텍처 설계에 중점을 두어 안정적이고 효율적인 데이터 플랫폼 구축을 목표로 합니다.