[논문 리뷰] Collective Mind, Part II: Towards Performance- and Cost-Aware Software Engineering as a Natural Science
이 논문은 성능 및 비용 인식 기반 소프트웨어 공학을 위한 공동 작업형, 공개 접근 가능한 인프라인 Collective Mind을 제안한다. 이는 다양한 하드웨어 플랫폼 간의 지속적 자동 튜닝과 지식 공유를 가능하게 한다. 경량 워핑과 중앙 집중식 저장소를 통해 하드웨어 구성 간 최적화를 추적함으로써, 커뮤니티 기반 실험과 기계 학습을 통해 실행 시간, 에너지 소비 등 다양한 비용 요소에 대해 파레토 최적 해를 도출한다.
Nowadays, engineers have to develop software often without even knowing which hardware it will eventually run on in numerous mobile phones, tablets, desktops, laptops, data centers, supercomputers and cloud services. Unfortunately, optimizing compilers are not keeping pace with ever increasing complexity of computer systems anymore and may produce severely underperforming executable codes while wasting expensive resources and energy. We present our practical and collaborative solution to this problem via light-weight wrappers around any software piece when more than one implementation or optimization choice available. These wrappers are connected with a public Collective Mind autotuning infrastructure and repository of knowledge (c-mind.org/repo) to continuously monitor various important characteristics of these pieces (computational species) across numerous existing hardware configurations together with randomly selected optimizations. Similar to natural sciences, we can now continuously track winning solutions (optimizations for a given hardware) that minimize all costs of a computation (execution time, energy spent, code size, failures, memory and storage footprint, optimization time, faults, contentions, inaccuracy and so on) of a given species on a Pareto frontier along with any unexpected behavior. The community can then collaboratively classify solutions, prune redundant ones, and correlate them with various features of software, its inputs (data sets) and used hardware either manually or using powerful predictive analytics techniques. Our approach can then help create a large, realistic, diverse, representative, and continuously evolving benchmark with related optimization knowledge while gradually covering all possible software and hardware to be able to predict best optimizations and improve compilers and hardware depending on usage scenarios and requirements.
연구 동기 및 목표
- 배포 대상에 대한 사전 지식 없이도 점점 더 다양하고 변화하는 하드웨어 플랫폼 간 소프트웨어 최적화의 도전 과제를 해결한다.
- 컴파일러 플래그 및 설정의 탐색 공간이 끊임없이 확장됨에 따라 기존 컴파일러가 최적화 기회를 활용하지 못하는 한계를 극복한다.
- 실세계 환경에서 소프트웨어 최적화, 성능 메트릭, 하드웨어 특성의 공유 및 추적을 위한 확장 가능한 커뮤니티 기반 시스템을 구축한다.
- 커뮤니티 기반, 빅데이터 분석, 기계 학습 기법을 통합하여 지속적이고 재현 가능한 실험 및 지식 발견을 가능하게 한다.
- 실제 응용 프로그램을 위한 증가하는 대표성 있고 진화하는 벤치마크와 최적화 지식을 제공함으로써 실용적인 소프트웨어-하드웨어 공동 설계를 지원한다.
제안 방법
- 컴파일러 플래그, 병렬 처리 파라미터, 알고리즘 변종 등의 설정 옵션을 노출하기 위해 소프트웨어 구성 요소(이하 '계산 종')에 경량 워핑을 구현한다.
- 이 워핑을 공개된 Collective Mind 저장소 및 자동 튜닝 인프라와 통합하여 다양한 하드웨어 플랫폼에서 성능 및 비용 메트릭을 수집한다.
- Collective Mind 노드를 통해 커뮤니티 기반 방식으로 자동 튜닝 작업을 일반 소비자용 안드로이드 기기 및 기타 시스템에 분산 배포한다.
- 다중 목적 최적화 기법을 적용하여 실행 시간, 에너지 소비, 메모리 사용량, 코드 크기 등 다양한 비용을 동시에 최소화하는 파레토 최적 설정을 식별한다.
- JSON 기반 API와 웹 서비스를 활용해 지식 저장소에 프로그래밍 방식으로 접근할 수 있도록 하며, IDE, 도커, 벤치마크 도구와의 통합을 지원한다.
- 위키백과와 유사한 수동 분류 방식과 자동 데이터 분석(활성 학습, 특성 선택 포함)을 결합하여 최적화 성공 여부를 소프트웨어 입력, 하드웨어 기능, 시스템 구성과 연관지운다.
실험 결과
연구 질문
- RQ1공동 작업형, 커뮤니티 기반 인프라는 다양한 하드웨어 플랫폼 간 최적 소프트웨어 최적화의 발견 및 공유를 어떻게 향상시킬 수 있는가?
- RQ2일반 기기에서 커뮤니티 기반 자동 튜닝을 통해 고성능 소프트웨어 설정을 식별하는 데 소요되는 시간과 비용은 얼마나 감소할 수 있는가?
- RQ3통합되고 지속적으로 진화하는 최적화 지식 저장소는 산업 현장에서 컴파일러 튜닝 및 하드웨어 검증을 어떻게 향상시킬 수 있는가?
- RQ4다중 목적 최적화 및 파레토 경계 분석은 서로 충돌하는 성능 및 비용 메트릭 간의 트레이드오프를 식별하는 데 얼마나 효과적인가?
- RQ5이러한 시스템은 소프트웨어 공학 및 시스템 성능 분야에서 재현 가능하고 지속 가능하며 아티팩트 평가가 가능한 연구를 어떻게 지원할 수 있는가?
주요 결과
- Collective Mind 인프라는 약 300개의 소프트웨어 종에 걸쳐 약 15,000개의 데이터셋을 성공적으로 수집하여 확장성과 실세계 적용 가능성을 입증했다.
- 산업 파트너들이 시스템을 활용해 ARM 및 인텔 프로세서용 내부 GCC 컴파일러 히ュ리스틱을 개선하여 명백한 성능 향상을 달성했고, 하드웨어 검증 과정에서 아키텍처 오류를 탐지했다.
- 고객의 정적 컴파일된 이미지 처리 응용 프로그램이 성능을 극대화하고 에너지 소비, 개발 시간, 시장 진입 시간을 최소화하는 자가 튜닝 시스템으로 성공적으로 전환되었다.
- 이러한 접근은 다각도적 최적화 기법(예: 폴리드라 소스 투 소스 변환, 런타임 적응)을 통합된 확장 가능한 프레임워크에 통합하는 데 기여했다.
- 시스템은 최적화 지식이 포함된 대규모, 현실적인, 지속적으로 진화하는 벤치마크를 구축하는 데 기여했으며, 다중 플랫폼 간 비교 및 모델 훈련을 가능하게 했다.
- 공개 저장소와 오픈소스 인프라는 학계와 산업계 간 협업을 촉진했으며, 아티팩트 평가 및 지속 가능한 소프트웨어 공학 관행을 지원했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.