Gorio Tech Blog search

Treehouse: A Case For Carbon-Aware Datacenter Software 요약 설명

Read in English

|
목차

이번 글에서는 Treehouse: A Case For Carbon-Aware Datacenter Software 논문의 핵심 포인트만 간단히 정리한다.

  • 2022년 1월 6일(Arxiv)
  • Anderson, Thomas, Belay, Adam, Chowdhury, Mosharaf, Cidon, Asaf, Zhang, Irene.
  • University of Washington, MIT, University of Michigan, Columbia University, Microsoft Research
  • 논문 링크

영문판 보기


요약

  • 데이터센터 개발자에게는 컴퓨팅에 드는 에너지와 탄소 비용을 애플리케이션 수준에서 측정하고 줄일 도구가 부족하다. Treehouse는 애플리케이션의 성능 제약을 지키면서 이 비용을 줄이는 소프트웨어를 제안하지만, 실험 비교나 측정된 절감량은 보고하지 않는다.
  • 이 제안은 애플리케이션의 직접 및 간접 에너지 사용량을 집계하는 energy provenance, 애플리케이션의 성능 제약을 나타내는 서비스 수준 협약(SLA), 자원을 필요할 때 사용하도록 설계된 세밀한 실행 단위인 µfunction을 결합한다. 연구 과제는 소프트웨어 오버헤드, 교체 가능한 컴퓨팅 및 메모리 자원, 에너지를 고려한 스케줄링을 다룬다.
  • 논문은 처리 기한이 밀리초 또는 한 자릿수 마이크로초인 지연 시간에 민감한 워크로드에 초점을 맞춘다. 이런 워크로드는 먼 데이터센터나 나중 시간으로 작업을 옮기기 어려운 경우가 많다. 저자들은 에너지 추정, 빠른 함수 시작, 자원 분리, 스케줄링 속도를 해결해야 할 문제로 제시한다.

1 Introduction

저자들은 데이터센터가 전 세계 전력의 1–2%를 소비한다는 추정치 [31, 51]를 인용한다. 또한 트랜지스터가 작아질수록 에너지 효율이 개선되던 Dennard scaling이 끝나면서 효율이 저절로 개선되는 효과가 약해졌다고 주장한다. 칩 제조가 현대 데이터센터의 생애주기 온실가스 배출량 중 약 3분의 1을 차지한다는 연구 [27]를 인용하고, 엣지 및 온프레미스 환경에서 재생에너지 사용에 제약이 있다고 설명한다.

도식은 증가하는 애플리케이션 수요를 증가세가 둔화하는 효율 곡선 위에 배치하고, 그 격차를 줄일 수 있는 방안을 표시한다. Treehouse가 절감한 양을 측정해 보고하지는 않는다.

애플리케이션 에너지 수요와 달성 가능한 효율 개선, 그리고 제안된 Treehouse의 역할
애플리케이션 에너지 수요와 달성 가능한 효율 개선, 그리고 제안된 Treehouse의 역할

2 Foundations for Energy-Aware Datacenter Software

제안하는 기반 기술은 세 가지 장애물을 다룬다. 개발자는 애플리케이션별 에너지 사용량을 쉽게 파악할 수 없고, 운영자는 애플리케이션별 성능 제약을 알기 어려우며, 컴퓨팅, 메모리, 대역폭을 고정된 묶음으로 할당하면 수요가 급변하는 상황에서 자원이 낭비된다. 논문은 비용이 에너지 사용량을 정확히 대변하지 못한다고 지적하며, 연산 집약적 애플리케이션에서 설정 가능한 가속기인 field-programmable gate array(FPGA)가 중앙처리장치(CPU)보다 10–70 times 높은 에너지 효율을 보인 선행 연구 [50]를 인용한다.

2.1 Energy Provenance

Energy provenance는 애플리케이션이 직접 사용한 에너지와 운영체제, 스토리지, 네트워크, 원격 서버가 애플리케이션을 위해 사용한 에너지를 포함한다. 저자들은 소프트웨어에서 확인할 수 있는 자원 지표와 하드웨어 토폴로지를 사용하고 실험실 측정값으로 학습 및 검증하는 지도학습 모델을 제안한다. 통신 과정에서 provenance 정보를 전달하고, 이를 지역 발전원의 탄소 집약도와 결합할 수 있다 [21].

2.2 Exposing Application-Level SLAs

애플리케이션 인터페이스는 성능 제약과 에너지 절감을 위한 변경을 어느 정도 허용할 수 있는지 명시한다. 이를 통해 시스템은 사용자 요구사항을 지키면서 지연 시간의 여유를 활용할 수 있다. 대상은 sub-second 작업이며, 더 깨끗한 전력을 사용하기 위해 장소나 시간을 옮길 수 있는 경우가 많은 배치 작업과 구분된다 [15–17, 34, 35, 42, 47].

시간 축은 마이크로초 및 밀리초 단위의 실시간 워크로드와 스케줄링 여유가 더 많은 대화형 및 배치 워크로드를 구분한다. 이를 통해 같은 데이터센터 안에서 최적화해야 하는 이유를 보여준다.

워크로드의 지연 시간 규모와 sub-second SLA에 초점을 맞춘 Treehouse
워크로드의 지연 시간 규모와 sub-second SLA에 초점을 맞춘 Treehouse

2.3 µfunctions

µfunction은 가상 머신이나 컨테이너의 고정된 자원 묶음에서 분리된 경량의 교체 가능한 실행 단위로, 이기종 자원에서 마이크로초 단위로 실행하도록 제안되었다. 제안된 remote procedure call(RPC) 인터페이스는 다른 시스템에 작업 실행을 요청하며 SLA와 에너지 또는 탄소 예산을 전달한다. 저자들은 시작 및 호출 오버헤드를 장애물로 꼽으며, Firecracker 함수 환경을 시작하는 데 최소 125밀리초가 걸린다는 연구 [6]를 인용한다.

자원 분리는 공유 풀에서 컴퓨팅, 메모리, 스토리지를 가져와 사용하지 못하고 남는 용량을 줄이지만 지연 시간이 늘어난다. 보안, 격리, 동기화, 장애 허용과 Linux를 수정할지 POSIX 호환성을 갖추지 않은 운영체제를 설계할지는 해결되지 않은 문제다 [40, 43, 57, 63].

2.4 Summary

구상하는 스케줄러는 각 µfunction의 energy provenance와 SLA를 하드웨어 상태와 결합한 뒤, SLA를 충족하면서 에너지 사용량을 최소화하도록 자원과 실행 시점을 선택한다. 이 통합 방식은 아키텍처 제안이다.

도식은 provenance, 애플리케이션 제약, 하드웨어 상태를 스케줄러에 연결한다. 스케줄러는 분리된 컴퓨팅 풀과 메모리 또는 스토리지 풀에 함수를 할당한다.

제안된 Treehouse 스케줄러와 분리된 자원
제안된 Treehouse 스케줄러와 분리된 자원

3 Research Agenda

연구 과제는 소프트웨어 비대화 최소화, 컴퓨팅 자원 교체, 메모리 자원 교체, 에너지와 성능 제약을 고려한 스케줄링이라는 4가지 방향으로 기반 기술을 발전시킨다.

3.1 Minimizing Software Bloat

논문이 인용한 Google 클러스터 프로파일링 연구는 사이클의 약 30%가 공통 소프트웨어 구성 요소에, 추가로 20%가 Linux 커널에 쓰인다고 분석한다 [32]. 저자들은 소프트웨어 스택을 간소화하고, 입출력 장치에 더 직접적으로 접근하며, 궁극적으로 데이터 경로의 일부를 효율적인 하드웨어에 오프로드할 것을 제안한다. 클러스터에 대해서는 Apache Spark 기본 글을 참조하라.

3.2 Interchangeable Compute

저자들은 CPU가 짧게 급증하는 작업을 처리하고 FPGA가 더 안정적이고 예측 가능한 작업을 처리하는 혼합 실행을 제안한다. 여러 가속기에 맞게 변환할 수 있는 공통 형태인 중간 표현을 사용하면 성능 제약을 지키면서 여러 구현을 유지하는 비용을 줄일 수 있다.

3.3 Interchangeable Memory

Dynamic random-access memory(DRAM), 비휘발성 메모리, solid-state drive(SSD), 하드 디스크 드라이브는 에너지와 지연 시간 사이의 절충 관계가 서로 다르다. 제안한 시스템은 시간 제약, 접근 패턴, 접근 단위에 따라 데이터를 배치하고, 캐싱과 프리페칭을 활용해 에너지 예산 내에서 SLA를 충족하도록 한다 [45].

도식은 에너지 사용량과 꼬리 지연 시간 사이의 경계를 보여준다. 에너지 예산과 지연 시간 SLA는 허용할 수 있는 메모리 선택의 제약을 정한다.

교체 가능한 메모리 선택지의 에너지와 꼬리 지연 시간 사이의 절충 관계
교체 가능한 메모리 선택지의 에너지와 꼬리 지연 시간 사이의 절충 관계

3.4 Energy-Aware Scheduling

저자들은 애플리케이션과 자원 선택을 컴퓨팅 및 스토리지 대안을 통과하는 흐름으로 표현하고, 비용과 용량 제약에 에너지와 성능 사이의 절충 관계를 반영하는 multi-commodity flow 정식화를 제안한다 [19, 30, 39]. 배치 결정을 수 마이크로초 내에 내려야 할 수 있으므로 근사하거나 이전 결과를 재사용하는 방법을 제안한다. 처리 기한 기반 스케줄링으로 여유 시간이 더 많은 함수를 이후 시간대로 미룰 수도 있다 [25].

애플리케이션 흐름 3개가 교체 가능한 컴퓨팅 자원 5개와 DRAM 또는 SSD의 데이터에 연결된다. 이를 통해 특정 시점의 자원 선택을 비용 최적화 문제로 표현한다.

시점 t에서 비용과 성능을 최적화하는 multi-commodity flow 정식화 예시
시점 t에서 비용과 성능을 최적화하는 multi-commodity flow 정식화 예시

4 Conclusion

Treehouse는 개발자가 에너지 사용량을 파악할 수 있게 하고, 명시적인 시간 요구사항과 에너지 사용량이 더 적은 추상화를 결합해 에너지 효율을 데이터센터 소프트웨어의 설계 목표로 제시한다. 논문은 연구 과제와 개념적 사례를 제시하므로 실제 에너지 절감이나 SLA 준수를 입증하지는 않는다.

짧은 생각

이 제안은 애플리케이션 요구사항을 하드웨어 할당과 연결하고 에너지와 성능 사이의 절충 관계를 명시한다. 실제 활용 가치는 정확한 애플리케이션 수준 집계, 마이크로초 단위의 호출과 배치, 분리된 자원의 안전한 공유에 달려 있다.