Avalon

번역 : 심마로(maro@iname.com)

알파 CPU, 메모리 128MB를 사용한 컴퓨터 70대와 100MHz 이더넷 카드 및 스위치를 사용하여 수퍼 컴퓨터 순위에서 315등을 한 다음, 최근 각 노드를 메모리 256MB로 높이고, 노드 수를 140개로 늘려서 수퍼 컴퓨터 순위에서 88등 정도의 성능을 얻은 리눅스 클러스터에 대한 글입니다.

Avalon Frequently Asked Questions, v0.1 September 15 1998

  1. 아발론이란 무엇인가?
  2. 각 노드는 어떻게 구성되었는가?
  3. 노드들은 어떻게 연결되어 있는가?
  4. 총 비용은 얼마나 들었는가?
  5. 기계를 동작하도록 하는데 며칠이나 걸렸는가?
  6. 어떤 OS를 사용했는가?
  7. 이 기계로 어느 정도의 성능을 얻었는가?
  8. 그런 것들은 벤치마크이고, 실제 실용 코드는 어떠한가?
  9. 이러한 결과를 '진짜' 병렬 기계의 성능과 비교한다면?
  10. 64 프로세서 SGI 오리진 2000의 가격은 얼마나 되는가?
  11. 어떤 리눅스 배포판을 사용했는가?
  12. 현재 사용하고 있는 커널은?
  13. 어떤 컴파일러를 사용하는가?
  14. 어떤 메시지 패싱 라이브러리를 사용하는가?
  15. 노드들은 어디서 구입했는가?
  16. 3Com 이더넷 스위치는 어디서 구입했는가?
  17. 틀림없이 리눅스가 솔라리스, HP-UX, AIX, 윈도우즈 NT 등의 상용 운영체제보다 저렴하겠지만, 이들 상용 운영체제 중에 더 좋은 성능을 제공하는 것은 없는가?
  18. 패스트 이더넷이 그런 기계에 너무 느리지 않은가? 왜 Myrinet을 사용하지 않는가?
  19. 왜 노드들을 랙마운트 하지 않았나?
  20. Cyclades 시리얼 네트워크는 무엇을 위한 것인가?
  21. 다른 종류의 이더넷 카드를 사용하면 더 좋은 성능을 얻을 수 있지 않을까?
  22. 아발론이라는 이름의 유래는?
  23. 왜 이 일을 하게 되었는가?
  24. 더 알아보고 싶다면?
  1. 아발론이란 무엇인가?
    아발론은 140개의 프로세서로 구성된 알파 베오울프 클러스터로서 일반 개인용 컴퓨터 기술만을 사용하여 만들었다. 이것은 로스 앨러모스 국립 연구소 비선형학 센터이론 부서의 공동 벤처에 의한 것이다. 아발론은 Mike Warren에 의해 설계 및 제작되었으며, David NealAric Hagberg, David Moulton등이 참여했다.

  2. 각 노드는 어떻게 구성되었는가?
    각 노드는 디지탈 알파 워크스테이션으로서 ATX 케이스 안에 등으로 구성되어 있다.

  3. 노드들은 어떻게 연결되어 있는가?
    3com 패스트 이더넷 스위치와 Cyclades 멀티포트 시리얼 스위치를 사용했다. 4개의 3Com 수퍼스택 II 3900 36-포트 패스트 이더넷 스위치 각각에 2기가비트 업링크 모듈을 추가했다. 이로써 각 스위치에 3기가비트 링크를 제공하고, 이들을 트렁크 회선으로 묶어 3Com 수퍼스택 II 9300 12-포트 기가비트 이더넷 스위치에 연결했다. 모두 합하면 각 포트 당 300달러 정도의 비용으로 144개의 패스트 이더넷 포트로 구성된 스위치 네트워크를 제공한다.

  4. 총 비용은 얼마나 들었는가?
    31만 3천 미국 달러.

  5. 기계를 동작하도록 하는데 며칠이나 걸렸는가?
    원래의 70 노드는 4월 10일, 금요일 아침에 도착했다. 기계가 10 Gflops 이상의 성능으로 병렬 코드를 실행하기 시작한 것은 4월 13일, 월요일이었다. 추가된 70 노드는 9월 초에 비슷한 시간이 걸려서 추가 되었다.

  6. 어떤 OS를 사용했는가?
    리눅스.

  7. 이 기계로 어느 정도의 성능을 얻었는가?
    처음 3주 동안(70 노드) 병렬 Linpack은 19.7 Gflops를 얻었고, 6천만 입자의 분자 역학 시뮬레이션 (SPaSM)은 12.8 Gflops, gravitational treecode는 10.0 Gflops, NAS B 클래스 2.3 버전 벤치마크는 (BT: 2.2 Gflops, SP 1.0 Gflops, LU 3.5 Gflops, MG 2.1 Gflops) 등의 성능을 얻었다.

    현재의 140 노드 설정에서 아발론은 병렬 Linpack 47.7 Gflops, 3억 2천만 입자의 분자 역학 시뮬레이션 (SPaSM)은 29.6 Gflops, gravitational treecode는 17.6 Gflops를 얻었다.

    병렬 Linpack 벤치마크 결과, 아발론은 현재 (1998년 6월) TOP500 list에서 88위에 올라 있다.

  8. 그런 것들은 벤치마크이고, 실제 실용 코드는 어떠한가?
    SPaSM은 충격에 의한 연성의 6천만 입자로 구성된 시뮬레이션을 44시간동안 실행하면서 10Gflops를 유지했고, 68GB 의 자료를 썼다.

    treecode는 1천만 입자로 구성된 은하계 생성 시뮬레이션을 26시간동안 실행하면서 6.8Gflops를 유지했다.

    6천만 입자로 구성된 분자 역학 시뮬레이션은 계속 실행되어 충 13600 단계가 실행되었다. CPU 시간으로 2주(332 시간)가 걸렸고, 4월 24일부터 6월 11일 사이에 19번으로 나누어 실행되었다. 전체 시뮬레이션은 단계 당 88초 정도 걸렸고, 실제 시간으로 1.19 x 10^6 초 동안 1.12 x 10^16 실수 연산이 실행되었다. 이 시뮬레이션만 해도 10 페타플롭스(10^15)이상 되는 계산을 수행한 몇 안되는 과학 시뮬레이션 중의 하나이다. (참고: mega, giga, tera, peta)

    또한 SPaSM은 아발론이 out-of-core(메모리 외에 디스크도 사용하는) 기술을 사용하여 10억 8천만 입자의 시뮬레이션을 실행할 수 있다는 것을 보여주었다.

  9. 이러한 결과를 '진짜' 병렬 기계의 성능과 비교한다면?
    SPaSM, treecode, Linpack 등은 64개의 195 Mhz 프로세서로 구성된 SGI 오리진 2000의 성능과 비슷한 속도로 70 노드의 아발론에서 실행되었다.

  10. 64 프로세서 SGI 오리진 2000의 가격은 얼마나 되는가?
    1998년 5월의 64개의 250 Mhz 프로세서와 8 Gbyte 메모리를 가진 오리진 2000의 정가는 180만 달러 정도였다. 180 Mhz 버전은 대학을 위한 할인을 받으면 100만 달러 정도에 구입할 수 있을 것이다.

  11. 어떤 리눅스 배포판을 사용했는가?
    RedHat 5.0을 사용했다.

  12. 현재 사용하고 있는 커널은?
    9월 15일 현재, Linux-2.1.120을 사용하고 있다. 2.1 시리즈는 2.0보다 네트워크 성능이 개선되었다.

  13. 어떤 컴파일러를 사용하는가?
    egcs-1.1b의 gcc와 g77을 사용한다. Linpack의 결과는 goto@statabo.rim.or.jp에 의해 작성된 믿을 수 없이 빠른 알파/리눅스 DGEMM 덕분이다. (고마와요 고또, 맥주 살께요.)

  14. 어떤 메시지 패싱 라이브러리를 사용하는가?
    MPICH와 우리가 TCP 소켓 위에 작성한 기본적인 MPI 루틴들을 사용하고 있다. 우리가 작성한 것이 주로 더 빠르게 동작한다. 필요없는 가비지 코드들을 분리하는 대로 이 코드를 GPL 라이선스로 공개할 예정이다.

  15. 노드들은 어디서 구입했는가?
    Carrera사에서 구입했다. 그들이 노드를 전부 조립하고, 디스크와 우리가 제공한 '클론' 스크립트를 사용해서 리눅스를 설치하고 구성하는 일을 해 주었다.

  16. 3Com 이더넷 스위치는 어디서 구입했는가?
    정부 계약에 의해 선정된 경로를 통해 구입했는데, 같은 가격에 여러 인터넷 업체를 통해 제공된다. www.uvision.com이나 www.pricewatch.com등을 검색해 보기 바란다.

  17. 틀림없이 리눅스가 솔라리스, HP-UX, AIX, 윈도우즈 NT 등의 상용 운영체제보다 저렴하겠지만, 이들 상용 운영체제 중에 더 좋은 성능을 제공하는 것은 없는가?
    리눅스가 무료라서 사용한 것은 아니다. 리눅스가 소스 코드가 공개되어 있고, 더 우수한 네트워크 성능을 제공하며, 공개되고 접근 가능한 방식으로 개발되고 있기 때문에 사용했다. 언제나 발생할 수 있는 문제들을 찾아내고 해결하는데 저장된 리눅스 메일링 리스트나 뉴스 그룹이 엄청난 도움이 되었다. 우릴 붙잡아 놓고 그들이 틀림없이 문제를 해결할 수 있다고 말하고는 몇 개월을 허비할 수도 있는 고객 지원에 문의해서 시간을 낭비할 수는 없었다. 우리가 활용할 수 있는 제한된 인적 자원으로 보아 이 프로젝트는 리눅스가 없었으면 불가능한 것이었다. 전산학과 하나를 활용할 수 있는 재량권이 있다면, 상용 운영 체제와 소스 코드 라이센스도 괜찮을 것이다.

  18. 패스트 이더넷이 그런 기계에 너무 느리지 않은가? 왜 Myrinet을 사용하지 않는가?
    우리가 실행했던 코드의 성능을 본다면 패스트 이더넷이 충분히 좋은 성능을 보인다는 것을 알 수 있을 것이다. 더 빠른 네트워크는 분명히 성능을 개선시키겠지만, 중요한 문제는 얼마만큼의 성능 개선을 어느 정도의 돈으로 얻을 수 있는가 하는 것이다. Myrinet을 사용하면 기계의 값이 대략 두 배가 될 것이다. 그리고 우리가 지금까지 실행시킨 코드 중의 어떤 것도 더 빠른 네트워크에서 실행한다고 해서 두 배로 성능이 개선될 수 없다. 당신은 클러스터를 위해 Myrinet을 구입하는 것을 정당화할 수 있는 코드를 가지고 있을지도 모르지만, 비용을 계산해 보는 것이 좋을 것이다.

  19. 왜 노드들을 랙마운트 하지 않았나?
    랙마운트는 노드 당 수백 달러가 든다. 몇 평 안되는 바닥을 아끼기 위해 2만 달러는 너무 컸다. 쿨러, 파워 서플라이의 중복을 통해 얻게되는 신뢰성 향상이 복잡한 패키징을 정당화할 수도 있지만, 그런 셋업에 대한 경험이 없었다.

  20. Cyclades 시리얼 네트워크는 무엇을 위한 것인가?
    DEC의 AlphaBios의 '특징'으로, headless 노드는 시리얼 포트를 통한 캐리지 리턴 없이는 자동적으로 부트되지 않는다. Cyclades 네트워크는 이 문제에 대한 가장 좋은 단기적인 해결책이고, 또한 이더넷과 독립적인 진단 및 제어 네트워크를 제공한다. 시리얼 네트워크는 Cyclades Cyclom 32-YeP 멀티포트 시리얼 PCI 카드 3개와 20피트 시리얼 케이블 70개로 구성되었다.

  21. 다른 종류의 이더넷 카드를 사용하면 더 좋은 성능을 얻을 수 있지 않을까?
    매우 좋은 질문이다. 얼라인먼트 제약 때문에 (우리가 사용한 Kingston 카드에 들어있는) DEC 튤립 칩셋은 알파 하드웨어 상에서 불필요한 버퍼 복사를 하고, 최적의 성능을 제공하지 못한다. 원래는 SMC EtherPower II 카드를 사용하려고 했지만, 이 카드가 164LX 마더보드의 현재의 C0 개정판에서 동작하지 않는다는 것을 알게 되었다(B3 개정판에서는 잘 동작한다). 이 문제는 현재 조사중이다.

  22. 아발론이라는 이름의 유래는?
    베오울프와 간접적으로 관련되어 있는 이름을 붙인 것이다. "헤오롯의 유산" 과 "베오울프의 아이들" 을 보라. ('정 직한' 주 : "헤오롯의 유산" 과 "베오울프의 아이들" 은 래리 니븐(Larry Niven), 제리 퍼넬(Jerry Pournelle), 스티븐 반즈(Steven Barnes) 세명이 공저한 SF 소설 제목이다. 아발론은 무대가 되는 카멜롯이라는 행성의 주대륙 (mainland) 이름이고 이 행성에는 그렌델 - 베오울프에 나오는 괴물의 이름 - 이라고 불리는 무서운 종족들이 살고 있었다... 아마존의 평을 보니 (에일리언 + 프레데터 ) x 1,000,000 = WOW 라고 쓰여있군요. 흠...)

  23. 왜 이 일을 하게 되었는가?
    우리는 수퍼컴퓨터가 필요했고, 이 방법이 비용과 유용성의 가장 좋은 합의점이었다. 이것이 연구 프로젝트가 아니고, 우리가 쓴 모든 비용이 하드웨어에 쓰여졌다는 걸 이해해 주기 바란다. 시스템 관리와 코드 개발은 다른 일을 하도록 월급을 받는 과학자와 시스템 관리자들의 자발적인 도움으로 이루어졌다. 새로운 멋진 병렬 언어나 전역 공유 메모리와 같은 '부가가치'는 기대하지 말아달라. 우리는 컴퓨터 과학자도 아니고, 단지 우리가 찾을 수 있는 최상의 하드웨어와 소프트웨어를 사용해서 우리의 물리 시뮬레이션을 실행하고 싶었을 뿐이다.

  24. 더 알아보고 싶다면?
    cnls.lanl.gov/avalon을 참조하라.