ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연구원들은 정확성을 보장하면서 컴퓨터 프로그램을 더 빠르게 실행할 수 있는 새로운 시스템을 개발했습니다.
    건강과 과학/과학기술 2022. 6. 16. 08:23

    오류에 대한 두려움 없이 더 빠른 컴퓨팅 결과
    연구원들은 정확성을 보장하면서 컴퓨터 프로그램을 더 빠르게 실행할 수 있는 새로운 시스템을 개발했습니다.
    날짜:
    2022년 6월 8일
    원천:
    매사추세츠 공과 대학
    요약:
    새로운 기술은 병렬화라는 프로세스를 통해 쉘 스크립트로 알려진 프로그램을 극적으로 가속화하는 동시에 프로그램이 정확한 결과를 반환하도록 할 수 있습니다.

    연구원들은 프로그램 결과를 정확하게 유지하면서 특정 유형의 컴퓨터 프로그램을 자동으로 극적으로 가속화할 수 있는 기술을 개척했습니다.

    그들의 시스템은 50년 전에 생성되어 오늘날에도 널리 사용되는 유비쿼터스 프로그래밍 환경인 Unix 셸에서 실행되는 프로그램의 속도를 높입니다. 그들의 방법은 이러한 프로그램을 병렬화합니다. 즉, 프로그램 구성 요소를 여러 컴퓨터 프로세서에서 동시에 실행할 수 있는 조각으로 분할합니다.

    이를 통해 프로그램은 웹 인덱싱, 자연어 처리 또는 데이터 분석과 같은 작업을 원래 런타임의 일부로 실행할 수 있습니다.

    "데이터 과학자, 생물학자, 엔지니어, 경제학자와 같이 이러한 유형의 프로그램을 사용하는 사람들이 너무 많습니다. 이제 그들은 잘못된 결과를 얻을 것이라는 두려움 없이 자동으로 프로그램을 가속화할 수 있습니다."라고 Computer의 연구 과학자인 Nikos Vasilakis는 말합니다. MIT의 과학 및 인공 지능 연구소(CSAIL).

    또한 이 시스템은 데이터 과학자, 생물학자, 엔지니어 등이 사용하는 도구를 개발하는 프로그래머가 쉽게 사용할 수 있도록 합니다. 거의 2년 동안 이 시스템에 대해 작업해 온 전 세계의 연구원 위원회 의장인 Vasilakis는 오류 없는 자동 병렬화를 가능하게 하기 위해 프로그램 명령을 특별히 조정할 필요가 없다고 덧붙였습니다.

    Vasilakis는 MIT 공동 저자이자 CSAIL 대학원생인 Tammam Mustafa를 포함하는 그룹의 최신 연구 논문의 수석 저자이며 운영 체제 설계 및 구현에 관한 USENIX 심포지엄에서 발표될 예정입니다. 공동 저자로는 수석 저자인 Konstantinos Kallas, 대학원생 펜실베니아 대학교에서; 바르샤바 Staszic 고등학교 학생 Jan Bielak; Aarno Labs의 소프트웨어 엔지니어인 Dimitris Karnikis; Thurston HY Dang, 전 MIT 박사후연구원, 현재 Google의 소프트웨어 엔지니어 그리고 Stevens Institute of Technology의 컴퓨터 과학 조교수인 Michael Greenberg가 있습니다.

    수십 년 된 문제

    PaSh로 알려진 이 새로운 시스템은 Unix 셸에서 실행되는 프로그램 또는 스크립트에 중점을 둡니다. 스크립트는 컴퓨터에 계산을 수행하도록 지시하는 일련의 명령입니다. 셸 스크립트의 정확하고 자동 병렬화는 연구자들이 수십 년 동안 씨름해 온 어려운 문제입니다.

    Unix 셸은 부분적으로는 여러 프로그래밍 언어로 작성된 기능으로 하나의 스크립트를 구성할 수 있는 유일한 프로그래밍 환경이기 때문에 여전히 널리 사용됩니다. 다른 프로그래밍 언어는 특정 작업이나 데이터 유형에 더 적합합니다. 개발자가 올바른 언어를 사용하면 문제를 훨씬 쉽게 해결할 수 있습니다.

    Vasilakis는 "사람들은 또한 다양한 프로그래밍 언어로 개발하는 것을 즐깁니다. 따라서 이러한 모든 구성 요소를 단일 프로그램으로 구성하는 것은 매우 자주 발생하는 일입니다."라고 덧붙였습니다.

    Unix 셸은 다국어 스크립트를 가능하게 하지만 유연하고 동적인 구조로 인해 이러한 스크립트는 기존 방법을 사용하여 병렬화하기 어렵습니다.

    프로그램 병렬화는 일반적으로 프로그램의 일부가 다른 부분에 의존하기 때문에 까다롭습니다. 이것은 구성 요소가 실행되어야 하는 순서를 결정합니다. 순서가 잘못되어 프로그램이 실패합니다.

    프로그램이 단일 언어로 작성되면 개발자는 해당 기능과 병렬화할 수 있는 구성 요소를 결정하는 데 도움이 되는 언어에 대한 명시적인 정보를 갖게 됩니다. 그러나 이러한 도구는 Unix 셸의 스크립트에 대해 존재하지 않습니다. 사용자는 구성 요소 내부에서 일어나는 일을 쉽게 볼 수 없으며 병렬화에 도움이 되는 정보를 추출할 수 없습니다.

    적시 솔루션

    이 문제를 극복하기 위해 PaSh는 병렬화될 수 있다고 생각하는 프로그램 구성요소에 간단한 주석을 삽입하는 전처리 단계를 사용합니다. 그런 다음 PaSh는 프로그램이 실행되는 동안 각 구성 요소에 도달하는 정확한 순간에 스크립트의 해당 부분을 병렬화하려고 시도합니다.

    이것은 쉘 프로그래밍의 또 다른 문제를 방지합니다. 미리 프로그램의 동작을 예측하는 것은 불가능합니다.

    프로그램 구성 요소를 "적시에" 병렬화함으로써 시스템은 이 문제를 방지합니다. 미리 병렬화를 시도하는 기존 방법보다 훨씬 더 많은 구성 요소의 속도를 효과적으로 높일 수 있습니다.

    Just-in-time 병렬화는 또한 가속화된 프로그램이 여전히 정확한 결과를 반환하도록 합니다. PaSh가 병렬 처리할 수 없는 프로그램 구성 요소에 도달하면(아마도 아직 실행되지 않은 구성 요소에 종속됨) 원래 버전을 실행하고 오류 발생을 방지합니다.

    Vasilakis는 "성능상의 이점이 있더라도 1년이 아닌 1초 만에 실행하겠다고 약속한 경우 잘못된 결과를 반환할 가능성이 있다면 아무도 당신의 방법을 사용하지 않을 것입니다."라고 말합니다.

    사용자는 PaSh를 사용하기 위해 수정할 필요가 없습니다. 그들은 기존 Unix 셸에 도구를 추가하고 스크립트에 이를 사용하도록 지시할 수 있습니다.

    가속 및 정확도

    연구원들은 고전 프로그램에서 현대 프로그램에 이르기까지 수백 개의 스크립트에서 PaSh를 테스트했으며 단 하나의 스크립트도 손상시키지 않았습니다. 시스템은 비교할 수 없는 스크립트와 비교할 때 평균적으로 6배 더 빠르게 프로그램을 실행할 수 있었고 거의 34배에 달하는 최대 속도 향상을 달성했습니다.

    또한 다른 접근 방식이 병렬화할 수 없었던 스크립트 속도를 향상시켰습니다.

    Vasilakis는 "우리 시스템은 이러한 유형의 완전히 올바른 변환을 처음으로 보여주지만 간접적인 이점도 있습니다. 우리 시스템이 설계된 방식을 통해 업계의 다른 연구원과 사용자가 이 작업을 기반으로 구축할 수 있습니다."라고 말합니다.

    그는 사용자로부터 추가 피드백을 받고 시스템을 개선하는 방법을 보게 되어 매우 기쁩니다. 오픈 소스 프로젝트는 작년에 Linux Foundation에 합류하여 업계와 학계의 사용자가 널리 사용할 수 있게 되었습니다.

    앞으로 Vasilakis는 배포 문제를 해결하기 위해 PaSh를 사용하기를 원합니다. 즉, 한 컴퓨터 내의 여러 프로세서가 아니라 여러 컴퓨터에서 실행되도록 프로그램을 나누는 것입니다. 그는 또한 주석 체계를 개선하여 사용자 친화적이며 복잡한 프로그램 구성 요소를 더 잘 설명할 수 있도록 노력하고 있습니다.

Designed by Tistory.