슈퍼컴퓨터 운영체제

Supercomputer operating system

슈퍼컴퓨터 운영체제슈퍼컴퓨터를 위한 운영체제다.20세기 말부터 슈퍼컴퓨터 아키텍처에 근본적인 변화가 일어나면서 슈퍼컴퓨터 운영체제는 큰 변혁을 겪었다.[1]초기 운영체제는 속도를 내기 위해 각 슈퍼컴퓨터에 맞춤형으로 제작됐지만, 2017년 11월 TOP500 목록에 있는 모든 슈퍼컴퓨터를 가동하는 [2]등 사내 운영체제에서 벗어나 Linux의 어떤 형태로든 추세가 바뀌고 있다.2021년에 상위 10대의 시스템이 RHEL(Red Hat Enterprise Linux) 또는 그 일부 변형 또는 기타 Linux 배포용으로 실행된다.우분투.

현대의 대규모 병렬 슈퍼컴퓨터는 일반적으로 여러 종류의 노드를 사용하여 다른 서비스에서 연산을 분리한다는 점을 감안할 때, 컴퓨팅 노드의 컴퓨팅 노드 커널(CNK)이나 컴퓨팅 노드 상의 CNL(Compute Node Linux)과 같은 작고 효율적인 경량 커널을 사용하는 등, 일반적으로 서로 다른 노드에서 다른 운영 체제를 실행하지만, 더 큰 s서버 및 입출력(I/O) 노드의 Linux-파생성 같은 시스템.[3][4]

기존의 다중 사용자 컴퓨터 시스템에서는 업무 스케줄링이 처리 및 주변 자원에 대한 업무 처리 문제인 반면, 대규모 병렬 시스템에서는 업무 관리 시스템이 전산 및 통신 자원의 할당을 모두 관리할 필요가 있으며, 수십 개일 때 불가피한 하드웨어 고장을 우아하게 처리할 필요가 있다.수천 개의 프로세서가 존재한다.[5]

비록 대부분의 현대 슈퍼컴퓨터가 리눅스 운영체제를 사용하지만,[6] 각 제조업체는 그들이 사용하는 리눅스-파생물에 대해 그들만의 특별한 변경을 가했으며, 부분적으로 하드웨어 아키텍처의 차이가 각 하드웨어 설계에 운영체제를 최적화하기 위한 변경을 요구하기 때문에 산업 표준은 존재하지 않는다.[1][7]

컨텍스트 및 개요

슈퍼컴퓨팅 초기에는 기본 아키텍처 개념들이 빠르게 진화하고 있었고, 시스템 소프트웨어는 대개 빠른 회전을 하는 하드웨어 혁신을 따라야 했다.[1]초기 시스템에서는 운영체제가 속도를 내기 위해 각 슈퍼컴퓨터에 맞춤형으로 제작되었지만, 이를 개발하려고 서두르면서 심각한 소프트웨어 품질 문제가 표면화되었고 많은 경우 시스템 소프트웨어 개발의 비용과 복잡성이 하드웨어의 그것만큼 문제가 되었다.[1]

NASA 에임스 슈퍼컴퓨터 센터

1980년대에 크레이의 소프트웨어 개발 비용은 그들이 하드웨어에 지출한 비용과 같게 되었고 그러한 경향은 부분적으로 사내 운영 체제에서 일반 소프트웨어의 적응으로 이동하는 데 일부 책임이 있었다.[2]운영체제 변화의 첫 물결은 1980년대 중반 벤더별 운영체제가 유닉스에 유리하게 버려지면서 일어났다.초기 회의론에도 불구하고 이 전환은 성공적이었다.[1][2]

1990년대 초까지, 슈퍼컴퓨팅 시스템 소프트웨어에 큰 변화가 일어나고 있었다.[1]이 무렵, 유닉스의 사용이 증가하면서 시스템 소프트웨어의 시청 방식이 바뀌기 시작했다.운영체제를 구현하기 위한 고급 언어(C)의 사용과 표준화된 인터페이스에 대한 의존성은 과거의 조립 언어 지향 접근법과 대조적이었다.[1]하드웨어 벤더가 유닉스를 그들의 시스템에 적응시키면서, 빠른 파일 시스템과 조정 가능한 프로세스 스케줄러와 같은 새롭고 유용한 기능이 유닉스에 추가되었다.[1]하지만 유닉스를 각색한 모든 기업들은 '슈퍼컴퓨터를 위한 유니크스'를 만들기 위해 산업 표준에 협력하는 것이 아니라 그것에 독특한 변화를 주었다.이것은 부분적으로는 각 아키텍처에 유닉스를 최적화하기 위해 아키텍처의 차이가 이러한 변경을 요구했기 때문이다.[1]

따라서 범용 운영체제가 안정화됨에 따라 슈퍼컴퓨터는 그들로부터 중요한 시스템 코드를 차용하고 적응하기 시작했고, 바퀴를 재창조할 필요 없이 그들과 함께 제공되는 풍부한 2차 기능 집합에 의존했다.[1]그러나, 동시에 범용 운영체제의 코드의 크기는 급속히 커지고 있었다.유닉스 기반 코드가 50만 회선에 도달했을 때, 그것의 유지와 사용은 도전이었다.[1]그 결과 최소한의 운영 체제 기능을 사용하는 마이크로커널을 사용하게 되었다.카네기멜론대학마하INRIA코러소스와 같은 시스템은 초기 마이크로커널의 예였다.[1]

슈퍼컴퓨터가 컴퓨팅 노드 대 I/O 노드 등 다양한 유형의 노드를 개발함에 따라 운영 체제를 별도의 구성 요소로 분리하는 것이 필요하게 되었다.따라서 현대의 슈퍼컴퓨터는 보통 서로 다른 노드에서 서로 다른 운영 체제를 실행하는데, 예를 들어 컴퓨팅 노드에서 CNKCNL과 같은 작고 효율적인 경량 커널을 사용하지만, 서버 및 I/O 노드에서는 Linux-파생제와 같은 더 큰 시스템을 사용한다.[3][4]

초기 시스템

첫 번째 Cray-1(Internal과 함께 표시된 샘플)은 운영 체제가 없는 고객에게 전달되었다.[8]

일반적으로 세계 최초의 슈퍼컴퓨터로 여겨지는 CDC 6600치페와 운영체제를 운영했고, 그 후 다양한 다른 CDC 6000 시리즈 컴퓨터에 배치되었다.[9]치페와는 이전의 CDC 3000에서 파생된 다소 단순한 직업 통제 지향 시스템이었지만, 후기 KRONOSSCAPE 시스템에 영향을 미쳤다.[9][10]

최초의 Cray-1은 운영체제나 다른 소프트웨어 없이 Los Alamos Lab에 전달되었다.[11]로스 알라모스는 그것을 위한 응용 소프트웨어와 운영 체제를 개발했다.[11]크레용 1의 주요 시간 공유 시스템인 크레용 시간 공유 시스템(CTSS)은 그 후 20년 전부터 CDC 6600 운영체제용 LTSS(Livermore Time Sharing System)의 직계 후손으로 리버모어 랩에서 개발되었다.[11]

슈퍼컴퓨터를 개발함에 있어서 소프트웨어 비용 상승은 곧 지배적이 되었는데, 1980년대 Cray의 소프트웨어 개발 비용이 하드웨어 비용에 맞먹는 수준으로 증가했다는 것이 증명되었다.[2]이러한 경향은 사내 크레이 운영체제에서 유닉스에 기반을 둔 유니코스 시스템으로의 이동에 일부 원인이 되었다.[2]1985년에 Cray-2는 유니코스 운영체제와 함께 출하된 최초의 시스템이었다.[12]

비슷한 시기에 EOS 운영체제는 ETA Systems에 의해 ETA10 슈퍼컴퓨터에 사용하기 위해 개발되었다.[13]Control Data Corporation의 Pascal 유사 언어인 Cybil로 작성된 EOS는 슈퍼컴퓨터를 위한 안정적인 운영체제 개발 시 안정성 문제를 강조했고 결국 같은 기계에 유닉스 유사 시스템이 제공됐다.[13][14]ETA 시스템 소프트웨어를 개발하면서 얻은 교훈은 새로운 슈퍼컴퓨터 운영체제 개발과 관련된 높은 수준의 위험성과 시스템 소프트웨어 라이브러리의 광범위한 기반이 있는 유닉스를 사용하는 것의 장점들을 포함했다.[13]

1990년대 중반까지, 구 운영 체제에 대한 지속적인 투자에도 불구하고, 유닉스 기반의 시스템을 사용하는 경향이 있었고, 이것은 또한 여러 플랫폼에 걸친 과학 컴퓨팅에 쌍방향 그래픽 사용자 인터페이스(GUI)를 사용하는 것을 용이하게 했다.[15]상품 OS로의 이동에는 반대자들이 있었는데, 그들은 채택에 대한 주요 장애물로 Linux 개발의 빠른 속도와 집중을 꼽았다.[16]한 저자는 "리눅스는 따라잡을 것 같지만, 우리는 지금 대규모 시스템을 가지고 있다"고 썼다.그럼에도 불구하고, 그러한 추세는 계속 탄력을 받았고, 2005년까지 사실상 모든 슈퍼컴퓨터가 일부 유닉스 같은 OS를 사용하게 되었다.[17]이러한 유닉스 변종에는 IBM AIX, 오픈소스 Linux 시스템, 그리고 크레이의 유니코스(UNICOS)와 같은 다른 어댑테이션이 포함되었다.[17]20세기 말까지, 리눅스는 슈퍼컴퓨팅 파이의 가장 높은 점유율을 차지할 것으로 추정되었다.[1][18]

현대적 접근 방식

Argonne National LabBlue Gene/P 슈퍼컴퓨터

IBM Blue Gene 슈퍼컴퓨터는 컴퓨팅 노드에서 CNK 운영 체제를 사용하지만 I/O 노드에서는 I/O 노드 커널(INK)이라는 수정된 Linux 기반 커널을 사용한다.[3][19]CNK는 각 노드에서 실행되는 경량 커널이며, 해당 노드에서 단일 사용자에 대해 실행되는 단일 애플리케이션을 지원한다.효율적인 운영을 위해 CNK의 설계는 단순하고 최소로 유지되었고 물리적 메모리는 정적으로 매핑되었으며 CNK는 스케줄링이나 컨텍스트 전환이 필요하거나 제공하지 않았다.[3]CNK는 컴퓨팅 노드에서 파일 I/O를 구현하지 않고 전용 I/O 노드에 위임한다.[19]그러나 Blue Gene에서 여러 컴퓨팅 노드가 단일 I/O 노드를 공유한다는 점에서 I/O 노드 운영 체제는 다중 작업이 필요하므로 Linux 기반 운영 체제를 선택해야 한다.[3][19]

기존의 다중 사용자 컴퓨터 시스템과 초기 슈퍼컴퓨터에서는 업무 스케줄링이 사실상 처리와 주변 자원에 대한 업무 스케줄링 문제였지만, 대규모 병렬 시스템에서는 업무 관리 시스템이 전산 및 통신 자원의 할당을 모두 관리할 필요가 있다.[5]슈퍼 컴퓨터의 다른 구성에서 작업 스케줄링과 운영 체제를 조정하는 것은 필수적이다.일반적인 병렬 작업 스케줄러에는 일부 슬레이브 스케줄러에게 병렬 작업을 시작, 모니터링 및 제어하도록 지시하는 마스터 스케줄러가 있으며, 이들로부터 정기적으로 작업 진행 상태에 대한 보고서를 수신한다.[5]

일부 슈퍼컴퓨터 스케줄러는 아니지만 모든 슈퍼컴퓨터 스케줄러는 작업 실행의 인접성을 유지하려고 시도한다.Cray XT3Cray XT4 시스템에 사용되는 PBS Pro 스케줄러는 3차원 토러스 인터커넥트에서 위치성을 최적화하려고 시도하지 않고 단순히 사용 가능한 첫 번째 프로세서를 사용한다.[20]한편, Blue Gene 슈퍼컴퓨터에 관한 IBM의 스케줄러는 8x8x8 노드 그룹의 하나 이상의 중간 평면에 동일한 애플리케이션의 작업을 할당함으로써 지역성을 이용하고 네트워크 경합을 최소화하는 것을 목표로 한다.[20]Slurm Workload Manager 스케줄러는 최적의 적합 알고리즘을 사용하고, Hilbert 곡선 스케줄링을 수행하여 작업 할당을 최적화하고 있다.[20]Tianhe-2와 같은 몇몇 현대식 슈퍼컴퓨터는 시스템 전체에 걸쳐 자원에 대한 경쟁을 중재하는 Slurm을 사용한다.Slurm은 리눅스 기반의 오픈 소스로서 확장성이 매우 뛰어나며 시간당 10만 개 이상의 지속적인 처리량으로 컴퓨터 클러스터에서 수천 개의 노드를 관리할 수 있다.[21][22]

참고 항목

참조

  1. ^ a b c d e f g h i j k l m David Padua 2011 병렬 컴퓨팅 백과사전 ISBN0-387-09765-1페이지 426–429.
  2. ^ a b c d e 노하우머신: 1998년 ISBN 0-262-63188-1페이지 149-151에 의한 기술 변화에 관한 에세이.
  3. ^ a b c d e Euro-Par 2004 평행 프로세싱: 2004년 제10회 국제 유로-파 컨퍼런스, 마르코 다넬루토, 마르코 반네스치, 도메니코 라포렌자 ISBN 3-540-22924-8페이지.
  4. ^ a b 사다프 R에 의한 오크리지 국립실험실 크레용 XT3의 평가Alam, 외 연구진, 2008년 2월 22일자 제1권 52-80호.
  5. ^ a b c Dror G의 병렬 처리를 위한 Job 스케줄링 전략에서 Yariv Aridor 등이 작성한 Blue Gene/L Supercomputer용 개방형 Job Management Architecture.페이텔슨 2005 ISBN 978-3-540-31024-2페이지 95-101
  6. ^ Vaughn-Nichols, Steven J. (June 18, 2013). "Linux continues to rule supercomputers". ZDNet. Retrieved June 20, 2013.
  7. ^ "Top500 OS chart". Top500.org. Archived from the original on 2012-03-05. Retrieved 2010-10-31.
  8. ^ 컴퓨터 타겟팅: 1987년 ISBN 0-8157-2851-4페이지 82 [1]
  9. ^ a b N. 바달라스 2001 ISBN 0-262-22064-4페이지 258페이지에 의한 캐나다에서의 컴퓨터 혁명.
  10. ^ 컴퓨터 설계: James E의 제어 데이터 6600손튼, 스콧, 포레스먼 출판사 1970쪽 163쪽
  11. ^ a b c 컴퓨터 대상: 1987년 ISBN 0-8157-2851-4페이지 81-83페이지에 의한 정부 지원과 국제 경쟁.
  12. ^ Lister T. Davis, 힘의 균형, J. J. Dongarra 1995 ISBN 0-444-82163-5 페이지 126[2].
  13. ^ a b c 로이드 M.Thorndyke, The Frontiers of Supercomputing II by Karyn R.에서 ETA 시스템의 소멸.에임스, 앨런 브레너 1994 ISBN 0-520-08401-2페이지 489~497페이지.
  14. ^ 과거, 현재, 병렬: Arthur Trew 1991 ISBN 3-540-19664-1페이지 326에 의한 사용 가능한 병렬 컴퓨터 시스템 조사.
  15. ^ 카린 R의 슈퍼컴퓨팅 II의 프런티어아메스, 앨런 브레너 1994 ISBN 0-520-08401-2페이지 356.
  16. ^ Brightwell,Ron Riesen,Rolf Maccabe,Arthur. "On the Appropriateness of Commodity Operating Systems for Large-Scale, Balanced Computing Systems" (PDF). Retrieved January 29, 2013.{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  17. ^ a b 빠른 속도를 내는 것: Susan L. Graham, Marc Snir, Cynthia A에 의한 슈퍼컴퓨팅의 미래.패터슨, 2005년 국가연구위원회 ISBN 0-309-09502-6페이지 136.
  18. ^ 포브스 매거진, 03.15.05: 리눅스 규칙 슈퍼컴퓨터
  19. ^ a b c Euro-Par 2006 Parallel Processing: 제12차 국제 유로-파 컨퍼런스, 2006년, 볼프강 E.나겔, 볼프강 5세월터와 볼프강 레너 ISBN 3-540-37783-2
  20. ^ a b c 병렬 처리를 위한 작업 스케줄링 전략: 2010 ISBN 3-642-04632-0페이지 138–144페이지의 Eitan Fractenberg와 Uwe Schwiegelshohn에 의한 작업 스케줄링 전략.
  21. ^ 스케줄링 시 SLURMMD
  22. ^ Jette, M. and M. Grondona, SLURM: 2003년 6월 캘리포니아 산호세에서 열린 ClusterWorld 컨퍼런스의 리소스 관리를 위한 Simple Linux Utility [3]