몰드: 병렬 링커

mold는 링킹 과정 전체에 데이터 병렬 처리를 적용한 Unix/Linux 링커로, 대규모 프로그램에서 멀티기가바이트 디버그 바이너리를 수 초 내에 링크하며, 최신 lld 링커보다 2.4~16.1배, GNU ld보다 최대 112배 빠르다. 기존 링커의 확장성을 제한하는 심볼 해석과 아카이브 처리를 분리한 설계로 성능 향상을 달성했다.

AI 요약

Rui Ueyama가 개발한 'mold'는 링킹 파이프라인 전체에 데이터 병렬 처리를 체계적으로 적용한 Unix/Linux 링커다. 기존 링커들은 심볼 해석과 아카이브 처리의 얽힘 등 아키텍처 제약으로 인해 병렬성을 충분히 활용하지 못했는데, mold는 이를 분리하는 클린슬레이트 설계로 한계를 극복했다. 대규모 실제 프로그램에서 멀티기가바이트 디버그 바이너리를 수 초 이내(종종 1초 미만)에 링크하며, 최신 lld 링커보다 2.4~16.1배, 기존 GNU ld보다 최대 112배 빠른 성능을 보인다. 절제 연구(ablation study) 결과 특정 단일 최적화가 지배적이지 않으며 모든 패스의 병렬화가 누적적으로 속도 향상에 기여하는 것으로 나타났다.

핵심 포인트

  • ASPLOS 2027에 채택된 논문으로, 15페이지·3개 그림·10개 테이블로 구성
  • lld 대비 2.4~16.1배, GNU ld 대비 최대 112배 링크 속도 향상
  • 기존 링커의 확장을 막는 심볼 해석과 아카이브 처리의 결합 문제를 분리 설계로 해결
  • 멀티기가바이트 디버그 바이너리를 수 초 이내(종종 1초 미만)에 링크

향후 전망

  • 대규모 C++ 프로그램의 편집-컴파일-디버그 사이클 병목 해소에 크게 기여할 전망
  • 데이터 병렬 링킹 설계가 향후 링커 아키텍처의 새로운 표준 방향을 제시할 가능성
출처:Hacker News (arXiv)
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...