KR20230156416A - data pipeline - Google Patents

data pipeline Download PDF

Info

Publication number
KR20230156416A
KR20230156416A KR1020237035224A KR20237035224A KR20230156416A KR 20230156416 A KR20230156416 A KR 20230156416A KR 1020237035224 A KR1020237035224 A KR 1020237035224A KR 20237035224 A KR20237035224 A KR 20237035224A KR 20230156416 A KR20230156416 A KR 20230156416A
Authority
KR
South Korea
Prior art keywords
data
files
file system
storage
distributed file
Prior art date
Application number
KR1020237035224A
Other languages
Korean (ko)
Inventor
콴 양
샤 나와즈
나빈 카루무리
라제스와 간데
쿠이 후
스리니바산 사다난드하무시
크리스티안 부하이
매튜 프랭클린
압둘 샤이크
마르코 에르난데스
Original Assignee
리제너론 파마슈티칼스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 리제너론 파마슈티칼스 인코포레이티드 filed Critical 리제너론 파마슈티칼스 인코포레이티드
Publication of KR20230156416A publication Critical patent/KR20230156416A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

확장 가능한 클라우드 기반 데이터 처리 및 컴퓨팅 플랫폼은 대용량 데이터 파이프라인을 지원하기 위한 것이다.A scalable, cloud-based data processing and computing platform to support high-volume data pipelines.

Description

데이터 파이프라인data pipeline

관련 특허 출원에 대한 상호 참조Cross-reference to related patent applications

본 출원은 2021년 3월 19일에 출원된 미국 특허 가출원 제63/163,690호, 및 2021년 8월 27일에 출원된 미국 특허 가출원 제63/237,904호의 이익 및 우선권을 주장한다. 전술한 출원의 전체 내용은 본원에 참조로 포함된다.This application claims the benefit and priority of U.S. Provisional Patent Application No. 63/163,690, filed March 19, 2021, and U.S. Provisional Patent Application No. 63/237,904, filed August 27, 2021. The entire contents of the foregoing application are incorporated herein by reference.

현재, 클라우드 컴퓨팅 서비스는 전 세계적으로 다양한 지역(예, 국가, 대륙 등)에 거주하는 수백만 명의 사용자 및 고객에게 제공된다. 다양한 엔티티는, 중요 및 비중요 애플리케이션에 대해 다양한 섹터의 다양한 고객에게 사설 또는 공용 클라우드 컴퓨팅 서비스를 전 세계적으로 제공한다. 이들 엔티티는, 예를 들어 소프트웨어-애즈-어-서비스(SaaS), 인프라스트럭처-애즈-어-서비스(IaaS) 및/또는 플랫폼-애즈-어-서비스(PaaS)를 포함하는, 다양한 클라우드 컴퓨팅 서비스를 제공한다. 이러한 클라우드 컴퓨팅 서비스를 이용하기 위해, 사용자는 로컬에서 생성된 데이터를 클라우드에 전송해야 한다. 그러나, 연구 실험은 엄청난 양의 데이터를 생성하며, 클라우드 컴퓨팅 서비스에 이러한 데이터를 업로드하는 것은, 만족스럽지 못한 시간이 걸리고 연구를 더디게 한다. 예를 들어, 극저온 전자 현미경(cryo-EM)은 전자 빔으로 플래쉬-냉동 용액을 프로빙한 다음, 개별 분자의 이차원(2D) 이미지를 삼차원(3D) 화상으로 조합함으로써 단백질의 구조를 드러낸다. Cryo-EM은 강력한 과학 도구이며, 고해상도에서 단백질에 대한 2D 사진의 형태로 엄청난 양의 데이터를 생성한다. 과학자는 2D 이미지를 유용한 3D 모델로 변환하기 위해 많은 양의 연산 능력을 필요로 하는 일련의 연산을 수행해야 한다. 이러한 태스크는 제한된 용량을 가진 일반 워크스테이션 또는 컴퓨터 클러스터에서 몇 주의 시간이 소요된다. 모델 생성을 위해 클라우드 컴퓨팅 서비스를 활용하는 것과 연관된 과도한 업로드 시간은, 3D 모델을 생성하는 데 필요한 시간을 더욱 악화시켜, 연구 속도를 더디게 한다.Currently, cloud computing services are available globally to millions of users and customers living in various regions (e.g., countries, continents, etc.). Various entities provide private or public cloud computing services globally to a variety of customers in various sectors for critical and non-critical applications. These entities include various cloud computing services, including, for example, software-as-a-service (SaaS), infrastructure-as-a-service (IaaS), and/or platform-as-a-service (PaaS). provides. To use these cloud computing services, users must transfer locally generated data to the cloud. However, research experiments generate enormous amounts of data, and uploading this data to cloud computing services takes unsatisfactory time and slows down research. For example, cryo-electron microscopy (cryo-EM) reveals the structure of proteins by probing a flash-frozen solution with an electron beam and then combining two-dimensional (2D) images of individual molecules into a three-dimensional (3D) image. Cryo-EM is a powerful scientific tool, generating enormous amounts of data in the form of 2D pictures of proteins at high resolution. To transform a 2D image into a useful 3D model, scientists must perform a series of operations that require large amounts of computational power. These tasks can take weeks on a typical workstation or computer cluster with limited capacity. Excessive upload times associated with utilizing cloud computing services for model creation further exacerbate the time required to create 3D models, slowing research.

개별적으로 또는 조합하여 개시된 방법 및 시스템은, 대규모 데이터 파이프라인을 지원하기 위해 확장 가능한 클라우드 기반 데이터 처리 및 컴퓨팅 플랫폼을 제공한다.The disclosed methods and systems, individually or in combination, provide a scalable cloud-based data processing and computing platform to support large-scale data pipelines.

일 구현예에서, 본 개시는 방법을 제공한다. 상기 방법은 동기화 요청의 표시를 수신하는 단계를 포함한다. 상기 방법은, 상기 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계를 추가로 포함한다. 상기 방법은, 하나 이상의 파일에 기초하여, 데이터 전송 필터를 생성하는 단계를 추가로 포함한다. 상기 방법은, 데이터 전송 필터에 기초하여, 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하는 단계를 추가로 포함한다.In one implementation, the present disclosure provides a method. The method includes receiving an indication of a synchronization request. The method further includes determining, based on the indication, one or more files stored in the staging location. The method further includes creating a data transmission filter based on the one or more files. The method further includes transmitting one or more files to the target computing device based on the data transmission filter.

일 구현예에서, 본 개시는 방법을 제공한다. 상기 방법은, 그래픽 사용자 인터페이스를 통해, 객체 스토리지로부터 분산 파일 시스템으로 데이터세트를 변환하라는 요청을 수신하는 단계를 포함한다. 상기 방법은, 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계를 추가로 포함한다. 상기 방법은, 요청 및 표시에 기초하여, 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 데이터세트를 변환하는 단계를 추가로 포함한다.In one implementation, the present disclosure provides a method. The method includes receiving, via a graphical user interface, a request to convert a dataset from object storage to a distributed file system. The method further includes receiving, via a graphical user interface, an indication of the storage size of the distributed file system. The method further includes converting the dataset from object storage to a distributed file system associated with the storage size, based on the request and indication.

일 구현예에서, 본 개시는 방법을 제공한다. 상기 방법은 데이터 분석 애플리케이션 프로그램을 식별하는 단계를 포함한다. 상기 방법은 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하는 단계를 추가로 포함한다. 상기 방법은, 프로그램 템플릿으로서, 데이터세트를 처리하는 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계를 추가로 포함한다. 상기 방법은, 프로그램 템플릿에 기초하여, 데이터세트 상에서 데이터 분석 애플리케이션 프로그램의 실행을 유발하는 단계를 추가로 포함한다.In one implementation, the present disclosure provides a method. The method includes identifying a data analysis application program. The method further includes identifying a dataset associated with the data analysis application program. The method further includes determining, as a program template, one or more operational parameters associated with a data analysis application program that processes the dataset. The method further includes causing execution of a data analysis application program on the dataset, based on the program template.

일 구현예에서, 본 개시는 방법을 제공한다. 상기 방법은 동기화 요청의 표시를 수신하는 단계를 포함한다. 상기 방법은, 상기 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계를 추가로 포함한다. 상기 방법은, 하나 이상의 파일에 기초하여, 데이터 전송 필터를 생성하는 단계를 추가로 포함한다. 상기 방법은, 데이터 전송 필터에 기초하여, 하나 이상의 파일을 대상 컴퓨팅 장치의 객체 스토리지로 전송하는 단계를 추가로 포함한다. 상기 방법은, 그래픽 사용자 인터페이스를 통해, 객체 스토리지로부터 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하라는 요청을 수신하는 단계를 추가로 포함한다. 상기 방법은, 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계를 추가로 포함한다. 상기 방법은, 요청 및 표시에 기초하여, 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하는 단계를 추가로 포함한다. 상기 방법은, 분산 파일 시스템 내의 하나 이상의 파일과 연관된 데이터 분석 애플리케이션 프로그램을 식별하는 단계를 추가로 포함한다. 상기 방법은, 프로그램 템플릿으로서, 데이터세트를 처리하는 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계를 추가로 포함한다. 상기 방법은, 프로그램 템플릿에 기초하여, 분산 파일 시스템 내의 하나 이상의 파일에 데이터 분석 애플리케이션 프로그램의 실행을 유발하는 단계를 추가로 포함한다.In one implementation, the present disclosure provides a method. The method includes receiving an indication of a synchronization request. The method further includes determining, based on the indication, one or more files stored in the staging location. The method further includes creating a data transmission filter based on the one or more files. The method further includes transferring one or more files to object storage of the target computing device based on the data transfer filter. The method further includes receiving, via a graphical user interface, a request to convert the one or more files from object storage to a distributed file system. The method further includes receiving, via a graphical user interface, an indication of the storage size of the distributed file system. The method further includes converting the one or more files from object storage to a distributed file system associated with a storage size, based on the request and indication. The method further includes identifying a data analysis application program associated with one or more files within the distributed file system. The method further includes determining, as a program template, one or more operational parameters associated with a data analysis application program that processes the dataset. The method further includes causing execution of a data analysis application program on one or more files in the distributed file system, based on the program template.

개시된 방법 및 구성 요소의 추가적인 장점은 다음의 설명에서 부분적으로 제시될 것이고, 본 설명으로부터 부분적으로 이해될 것이고, 또는 개시된 방법 및 구성 요소의 실시에 의해 학습될 수 있다. 개시된 방법 및 구성 요소의 장점은 첨부된 청구범위에서 특히 언급된 요소 및 조합에 의해 실현되고 달성될 것이다. 전술한 일반적인 설명 및 하기의 상세한 설명 둘 모두는 단지 예시적이고 설명적인 것이며 청구된 바와 같이 본 발명을 제한하지 않는다는 것을 이해해야 한다.Additional advantages of the disclosed methods and components will be set forth in part in the following description, may be understood in part from this description, or may be learned by practice of the disclosed methods and components. The advantages of the disclosed method and components will be realized and achieved by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and do not limit the invention as claimed.

본 명세서에 통합되고 그 일부를 구성하는 첨부 도면은, 개시된 방법 및 구성 요소의 여러 구현예를 예시하며, 본 명세서와 함께 개시된 방법 및 시스템의 원리를 설명하는 역할을 한다:
도 1은 예시적인 작동 환경을 나타낸다.
도 2a는 예시적인 데이터 파이프라인을 나타낸다.
도 2b는 예시적인 작동 환경을 나타낸다.
도 3은 예시적인 작동 환경을 나타낸다.
도 4a는 예시적인 작동 환경을 나타낸다.
도 4b는 예시적인 클라우드 기반 스토리지 시스템을 나타낸다.
도 5는 예시적인 그래픽 사용자 인터페이스를 나타낸다.
도 6a는 예시적인 그래픽 사용자 인터페이스를 나타낸다.
도 6b는 예시적인 그래픽 사용자 인터페이스를 나타낸다.
도 7은 예시적인 그래픽 사용자 인터페이스를 나타낸다.
도 8a는 예시적인 프로그램 템플릿을 나타낸다.
도 8b는 예시적인 작동 환경을 나타낸다.
도 8c는 예시적인 작동 환경을 나타낸다.
도 9는 예시적인 작동 환경을 나타낸다.
도 10은 예시적인 작동 환경을 나타낸다.
도 11은 예시적인 작동 환경을 나타낸다.
도 12는 예시적인 방법을 나타낸다.
도 13은 예시적인 방법을 나타낸다.
도 14는 예시적인 방법을 나타낸다.
도 15는 예시적인 방법을 나타낸다.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several implementations of the disclosed methods and components and, together with this specification, serve to explain the principles of the disclosed methods and systems:
1 shows an exemplary operating environment.
Figure 2A shows an example data pipeline.
Figure 2B shows an example operating environment.
Figure 3 shows an example operating environment.
Figure 4A shows an example operating environment.
Figure 4B shows an example cloud-based storage system.
Figure 5 shows an example graphical user interface.
Figure 6A shows an example graphical user interface.
Figure 6B shows an example graphical user interface.
Figure 7 shows an example graphical user interface.
Figure 8A shows an example program template.
Figure 8B shows an example operating environment.
Figure 8C shows an example operating environment.
Figure 9 shows an example operating environment.
Figure 10 shows an example operating environment.
Figure 11 shows an example operating environment.
Figure 12 shows an example method.
Figure 13 shows an example method.
Figure 14 shows an example method.
Figure 15 shows an example method.

개시된 방법 및 시스템은 특정 구현예 및 그 안에 포함된 실시예에 대한 다음의 상세한 설명 및 도면 및 이들의 이전 및 다음 설명을 참조하여 보다 쉽게 이해될 수 있다.The disclosed methods and systems may be more readily understood by reference to the following detailed description and drawings of specific implementations and examples included therein and the preceding and following descriptions thereof.

개시된 방법 및 시스템은 설명된 특정 방법론, 프로토콜 및 시약에 제한되지 않는데, 그 이유는 이들이 다양할 수 있기 때문으로 이해된다. 또한, 본원에서 사용되는 용어는 단지 특정 구현예를 설명하기 위한 것이며, 첨부된 청구범위에 의해서만 제한되는 본 발명의 범주를 제한하려는 것이 아님을 이해해야 한다.It is understood that the disclosed methods and systems are not limited to the specific methodologies, protocols and reagents described, as these may vary. Additionally, it should be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of the invention, which is limited only by the appended claims.

본원에서 및 첨부된 청구범위에서 사용되는 바와 같이, 단수 형태 "일", "하나" 및 "특정한 하나"는 문맥이 달리 명확하게 지시하지 않는 한 복수의 참조를 포함함을 주목해야 한다. 따라서, 예를 들어, "하나의 이미지"에 대한 참조는 복수의 이미지 등을 포함한다.It should be noted that as used herein and in the appended claims, the singular forms "a", "an" and "a particular one" include plural references unless the context clearly dictates otherwise. Thus, for example, reference to “one image” includes a plurality of images, etc.

"선택적인" 또는 "선택적으로"는 후속하여 설명된 이벤트, 상황 또는 재료가 발생하거나 일어나거나 존재하지 않을 수 있고, 그 설명이 이벤트, 상황 또는 재료가 일어나거나 존재하는 경우 및 발생하지 않거나 존재하지 않는 경우를 포함하는 것을 의미한다. “Optional” or “optionally” means that a subsequently described event, situation, or material may occur, occur, or not be present, and that the description may be made in cases where the event, situation, or material occurs or is present, and that the event, situation, or material does not occur or does not exist. It means including cases where it is not.

본 명세서의 설명 및 청구범위 전반에 걸쳐, "포함하다"라는 단어 및 "포함하는" 및 "포함한다"와 같은 단어의 변형은 "포함하지만 이에 제한되지 않는"을 의미하며, 예를 들어 다른 첨가제, 성분, 정수 또는 단계를 배제하도록 의도되지 않는다. 특히, 하나 이상의 단계 또는 동작을 포함하는 것으로 설명된 방법에서, 각 단계는 (단계가 "구성"과 같은 제한 용어를 포함하지 않는 한) 열거된 것을 포함하는 것으로 구체적으로 고려되는데, 이는 각 단계가, 예를 들어 단계에 열거되지 않은 다른 첨가제, 성분, 정수 또는 단계를 배제하도록 의도되지 않음을 의미한다.Throughout the description and claims herein, the word "comprise" and variations of words such as "comprising" and "comprising" mean "including but not limited to" other additives, for example. , is not intended to exclude any ingredient, integer or step. In particular, in methods described as comprising one or more steps or acts, each step is specifically considered to include the listed (unless the step includes a qualifying term such as “constituting”), which means that each step , is not intended to exclude, for example, other additives, ingredients, purifiers or steps not listed in the step.

"예시적인"은 "~의 예시"를 의미하며, 바람직한 또는 이상적인 구성의 표시를 전달하도록 의도되지 않는다. "예컨대"는 제한적인 의미로 사용되는 것이 아니라 설명을 목적으로 사용된다.“Exemplary” means “an example of,” and is not intended to convey an indication of a preferred or ideal configuration. “For example” is not used in a limiting sense but is used for illustrative purposes.

범위는 본원에서 "약" 하나의 특정 값으로부터 및/또는 "약" 다른 특정 값으로 표현될 수 있다. 이러한 범위가 표현되고, 또한 구체적으로 고려되고 개시가 고려되는 것은, 문맥이 달리 구체적으로 나타내지 않는 한, 하나의 특정 값으로부터 및/또는 다른 특정 값까지의 범위인 것이다. 유사하게, 값이 근사값으로서 표현될 경우, 선행어 "약"의 사용에 의해, 문맥이 달리 구체적으로 나타내지 않는 한, 특정 값이 다른 구체적으로 고려된 구현예를 형성하는 것으로, 이는 개시되는 것으로 간주되어야 함을 이해할 것이다. 문맥상 달리 명시되지 않는 한, 범위 각각의 종점은 다른 종점과 관련하여 그리고 다른 종점과 독립적으로 유의미함을 추가로 이해할 것이다. 마지막으로, 명시적으로 개시된 범위 내에 포함된 값의 모든 개별 값 및 하위 범위는 또한 구체적으로 고려되며 문맥이 달리 구체적으로 나타내지 않는 한, 개시된 것으로 간주되어야 함을 이해해야 한다. 전술한 내용은, 특정 경우에 관계없이 이들 구현예의 일부 또는 전부가 명시적으로 개시된다.Ranges may be expressed herein from “about” one particular value and/or to “about” another particular value. When such ranges are expressed, and are specifically contemplated and disclosed, they are ranges from one particular value and/or to another particular value, unless the context specifically indicates otherwise. Similarly, when values are expressed as approximations, by use of the antecedent "about", the particular value shall be deemed to be disclosed as forming another specifically contemplated embodiment, unless the context specifically indicates otherwise. You will understand that It will be further understood that, unless otherwise indicated by context, each endpoint of the range is significant in relation to and independently of the other endpoints. Finally, it should be understood that all individual values and subranges of values included within an explicitly disclosed range are also specifically contemplated and should be considered disclosed, unless the context clearly indicates otherwise. The foregoing explicitly discloses some or all of these implementations, regardless of the specific instance.

개시된 기술은 단백질, 펩티드, 핵산 및 중합체를 포함하지만 이에 제한되지 않는 광범위한 거대분자에 사용될 수 있다. 일부 양태에서, 단백질은 항체 또는 이의 단편일 수 있다.The disclosed technology can be used on a wide range of macromolecules, including but not limited to proteins, peptides, nucleic acids, and polymers. In some embodiments, the protein may be an antibody or fragment thereof.

일단 개시된 기술이 항체와 같은 거대분자의 구조를 결정하는 데 사용되었다면, 거대분자는 그 다음 치료, 검출 또는 진단 방법에 사용될 수 있다. 예를 들어, 개시된 기술을 사용하여 식별된 항체는, 관심 질환, 장애 및/또는 병태를 치료하기 위해 대상체에게 투여될 수 있다. 일부 양태에서, 관심 질환, 장애 및/또는 병태는 암, 바이러스 감염(예, 코로나바이러스, 인플루엔자 바이러스), 또는 염증성 장애(예, 류마티스 관절염, 루푸스)일 수 있다.Once the disclosed technology has been used to determine the structure of a macromolecule, such as an antibody, the macromolecule can then be used in a therapeutic, detection or diagnostic method. For example, antibodies identified using the disclosed techniques can be administered to a subject to treat a disease, disorder, and/or condition of interest. In some embodiments, the disease, disorder and/or condition of interest may be cancer, viral infection (e.g., coronavirus, influenza virus), or inflammatory disorder (e.g., rheumatoid arthritis, lupus).

다양한 기술을 사용하여, 그의 이미지로부터 단백질, 바이러스, 및 다른 분자의 3D 구조를 결정하려고 시도할 수 있다. 일단 표적 분자의 이미지가 수집되면, 분자의 3D 구조를 결정하는 것은 이미지로부터 3D 구조의 어려운 재구성을 성공적으로 완료하는 것을 필요로 한다. 2D 이미지의 양 및 후속 3D 구조의 생성을 처리하기 위한 연산 요구는 극단적이며, 하루에 수 테라바이트의 데이터가 쉽게 생성될 수 있다.Using a variety of techniques, one can attempt to determine the 3D structure of proteins, viruses, and other molecules from their images. Once images of a target molecule are collected, determining the 3D structure of the molecule requires successfully completing the difficult reconstruction of the 3D structure from the image. The computational demands to process the volume of 2D images and subsequent creation of 3D structures are extreme, and multiple terabytes of data can easily be generated per day.

cryo-EM 기술에 대한 약속을 완전히 이행하기 위해, 연구자는 네트워크를 통해 데이터와 연산력 모두에 대해 시기적절한 액세스가 필요하다. 연구원은 이미지를 캡처한 후 이미지 처리를 위해 고도로 전문화된 패키지를 사용하여 클라우드에서 데이터 증가뿐만 아니라 컴퓨팅에 대한 엄청난 요구를 처리할 수 있는 정보 기술(IT) 인프라가 필요하다. cryo-EM 현미경에서 나오는 데이터/이미지를 처리하려면, 큰 데이터세트(샘플당 중간 크기, 예, 1.2 TB)용 확장 가능한 스토리지, 더 큰 데이터세트와 관련된 연산을 수행하기 위한 가장 빠른 CPU/GPU 지원 하이브리드 환경, 장비에서 클라우드로 데이터를 이동하기 위한 고속 네트워크가 필요하다. 스토리지, 연산력 및 운영 비용을 해결하기 위해, 본 개시는 클라우드 상에서 고성능 컴퓨팅(HPC) 플랫폼을 제공한다. 개시된 방법 및 시스템은 최첨단 시스템보다 상당히 짧은 시간 내에 (3D 모델과 같은) 최종 결과를 제공할 수 있다.To fully deliver on the promise of cryo-EM technology, researchers need timely access to both data and computing power over the network. After capturing images, researchers need an information technology (IT) infrastructure that can handle the enormous demands for computing as well as data growth in the cloud, using highly specialized packages for image processing. To process data/images from cryo-EM microscopy, scalable storage for large datasets (medium size per sample, e.g. 1.2 TB), fastest CPU/GPU capable hybrid to perform computations involving larger datasets. A high-speed network is needed to move data from the environment and equipment to the cloud. To address storage, computing power, and operational costs, this disclosure provides a high-performance computing (HPC) platform on the cloud. The disclosed methods and systems can provide final results (such as 3D models) in significantly less time than state-of-the-art systems.

데이터 증가와 속도에 비추어, 다양한 고려 사항이 고려될 수 있고, 구성 요소가 재설계되어 cryo-EM 요구를 처리하기 위한 최상의 인프라를 제공할 수 있다. 데이터 전송 속도 증가는, 필요성 증가를 처리하기 위한 유연성을 제공하고, 해결 불가능한 병목 현상을 최소화하고, 최소한의 시간(예, 각 데이터세트에 대해 1시간 내지 2시간 미만) 내에 데이터를 처리에 이용 가능하게 한다. 스토리지 최적화(예, FSx Lustre(1 순위) 및 S3(2 순위)을 사용하여 구현됨)는, 스토리지 용량을 무제한으로 사용할 수 있고, 동시에 운영 비용을 낮출 수 있고, 원시 데이터에 대한 장기 스토리지를 제공할 수 있으며, 무거운 입출력(또는 처리량)을 견딜 수 있는 매우 높은 병렬 처리 기능을 갖춘 파일 시스템을 제공할 수 있다. 연산 최적화는, 작업 부하 사용 패턴의 평가에 기초하여 조절될 수 있다. 소프트웨어 최적화는, 작업 기반 제출 스크립트 최적화가 전체 리소스를 통해 생성되어 더 적은 연산력으로 더 빠른 작업 완료를 가능하게 할 수 있다. 셀프 서비스 스토리지 관리 유틸리티는, 사용자로 하여금 분석 중인 데이터세트를 관리하게 할 수 있다. 예를 들어, 하나의 더 큰 파일 시스템을 생성하는 대신에, 분석 중인 데이터세트마다 분산 파일 시스템(DFS) 및/또는 병렬 파일 시스템이 생성될 수 있다. 이러한 분산/병렬 파일 시스템은 스토리지 용량 및/또는 비용을 감소시킬 수 있다.In light of data growth and velocity, various considerations can be considered and components redesigned to provide the best infrastructure to handle cryo-EM needs. Increased data transfer rates provide flexibility to handle increasing needs, minimize unsolvable bottlenecks, and make data available for processing in minimal time (e.g., less than 1 to 2 hours for each dataset). Let's do it. Storage optimization (e.g. implemented using FSx Luster (priority 1) and S3 (priority 2)) allows unlimited storage capacity while lowering operational costs and providing long-term storage for raw data It can provide a file system with very high parallelism capabilities that can withstand heavy I/O (or throughput). Computational optimization can be adjusted based on evaluation of workload usage patterns. As for software optimization, task-based submission script optimizations can be generated across resources to enable faster task completion with less computing power. Self-service storage management utilities can allow users to manage datasets being analyzed. For example, instead of creating one larger file system, a distributed file system (DFS) and/or parallel file system can be created for each dataset being analyzed. These distributed/parallel file systems can reduce storage capacity and/or cost.

하나 이상의 데이터 처리 애플리케이션을 지원할 수 있는, 효율적인 고속 빅 데이터 전송 방법이 개시된다. 예를 들어, 본원에 개시된 효율적인 고속 빅 데이터 전송 기술에 의해 뒷받침될 수 있는 데이터 처리 애플리케이션은, 2D 전자 cryo-현미경 이미지로부터의 3D 구조 추정을 포함한다.An efficient, high-speed big data transmission method capable of supporting one or more data processing applications is disclosed. For example, data processing applications that can be supported by the efficient high-speed big data transfer technology disclosed herein include 3D structure estimation from 2D electron cryo-microscopy images.

도 1에 나타낸 바와 같이, 시스템(100)은 데이터 출처(102)를 포함할 수 있다. 데이터 출처(102)는 임의의 유형의 데이터 생성 시스템, 예를 들어 이미징 시스템, 유전자 시퀀싱 시스템, 이들의 조합 등일 수 있다. 데이터 출처(102)는, 일 구현예에서, 데이터를 공급하는 하나 이상의 구성 요소를 포함할 수 있다. 구성 요소(들)는 하나 또는 여러 메커니즘에 따라 수많은 방식으로 데이터를 노출시킬 수 있다. 예를 들어, 구성 요소(들)는 하나 또는 여러 유형의 데이터 스토리지를 포함한 컴퓨팅 장치로 구현되거나 이를 구성할 수 있다. 따라서, 데이터 출처(102)는 네트워크 파일 시스템(NFS), 서버 메시지 블록(SMB), 하둡 분산 파일 시스템(HDFS), 및/또는 온-프레미즈 객체 저장소를 포함할 수 있다.As shown in FIG. 1 , system 100 may include data source 102 . Data source 102 may be any type of data generation system, such as an imaging system, a genetic sequencing system, a combination thereof, etc. Data sources 102, in one implementation, may include one or more components that supply data. Component(s) can expose data in numerous ways, depending on one or more mechanisms. For example, the component(s) may be implemented as or consist of a computing device that includes one or more types of data storage. Accordingly, data sources 102 may include Network File System (NFS), Server Message Block (SMB), Hadoop Distributed File System (HDFS), and/or on-premises object storage.

일 구현예에서, 데이터 출처(102)는 하나 이상의 전자 현미경(예, 극저온 전자 현미경(Cryo-EM))으로 이루어진 이미징 시스템을 포함할 수 있다. Cryo-EM은 3D 거대분자 구조 결정에 대한 컴퓨터 비전 기반 접근법이다. Cryo-EM은 고유 상태에서 중간 크기 내지 큰 크기의 분자에 적용 가능하다. 이러한 적용 가능성의 범주는 표적 분자의 결정을 필요로 하는 X-선 결정학과는 매우 대조적이며, 이러한 결정체는 종종 (비-실용성이 아닌 경우) 성장하기가 어렵다. 이러한 범주는 또한, 상대적으로 작은 분자로 제한된 핵 자기 공명(NMR) 분광법과 매우 대조적이다. Cryo-EM은, 이전에 알려지지 않은 생물학적 구조의 원자 구조를 발견함으로써, 근본적인 생물학의 분자 및 화학적 성질을 밝혀낼 가능성이 있다. 이러한 원자 구조 중 많은 구조는, 종래의 구조적 생물학 기술에 의해 연구하기 어렵거나 불가능한 것으로 입증되었다.In one implementation, data source 102 may include an imaging system consisting of one or more electron microscopes (e.g., cryo-electron microscopy (Cryo-EM)). Cryo-EM is a computer vision-based approach to 3D macromolecular structure determination. Cryo-EM is applicable to medium to large sized molecules in their native state. This range of applicability is in sharp contrast to X-ray crystallography, which requires crystallization of the target molecule, and such crystals are often difficult (if not impractical) to grow. These categories are also in sharp contrast to nuclear magnetic resonance (NMR) spectroscopy, which is limited to relatively small molecules. Cryo-EM has the potential to reveal the molecular and chemical properties of fundamental biology by discovering the atomic structures of previously unknown biological structures. Many of these atomic structures have proven difficult or impossible to study by conventional structural biology techniques.

Cryo-EM에서, 표적 분자의 정제된 용액을 먼저 탄소 그리드 상의 얇은 (단일 분자 두께의) 막으로 극저온 냉동시킨 다음, 생성된 그리드를 투과 전자 현미경으로 촬영한다. 그리드는 현미경 컬럼 내부의 저 선량 전자 빔에 노출되고, 샘플의 2D 투사는 컬럼의 베이스에서 카메라(막, 전하 결합 장치(CCD) 센서, 직접식 전자 검출기, 또는 유사물)를 사용하여 수집된다. 많은 수의 이러한 투사를 얻으며, 이들 각각은 수백 개의 가시적인 개별 분자를 함유하는 현미경 사진을 제공한다. 입자 피킹으로 알려진 공정에서, 개별 분자는 현미경 사진으로부터 선택되어, 분자의 잘린 이미지("입자 이미지"로 지칭됨)의 스택을 생성한다. 각각의 입자 이미지는 알려지지 않은 포즈를 갖는 분자의 노이즈 뷰를 제공한다. 일단 분자의 2D 전자 현미경 입자 이미지 세트를 크게 얻으면, 재구성을 수행하여 이미지로부터 표적 분자의 3D 밀도를 추정할 수 있다.In Cryo-EM, a purified solution of a target molecule is first cryogenically frozen into a thin (single molecule thick) film on a carbon grid, and the resulting grid is then imaged with a transmission electron microscope. The grid is exposed to a low-dose electron beam inside a microscope column, and a 2D projection of the sample is collected using a camera (membrane, charge-coupled device (CCD) sensor, direct electron detector, or similar) at the base of the column. A large number of these projections are obtained, each of which provides a micrograph containing hundreds of visible individual molecules. In a process known as particle picking, individual molecules are selected from micrographs, creating a stack of cropped images of the molecules (referred to as “particle images”). Each particle image provides a noisy view of a molecule with an unknown pose. Once a large set of 2D electron microscopy particle images of molecules is obtained, reconstruction can be performed to estimate the 3D density of target molecules from the images.

Cryo-EM에서, 종종 단일 단백질 분자 또는 단백질-약물 복합체("표적"으로 알려짐)의 수백 내지 수천 개의 복제로 이루어진 샘플의 수백만 개의 2D 입자 이미지가 전자 현미경에 캡처된다. 그 다음, 입자 이미지를 연산적으로 조립하여 표적의 3D 모델을 원하는 해상도로 재구성하고 미세 조정할 수 있다. 특히, 각 이미지에서 이미지 수, 세부 사항의 레벨, 및 노이즈 레벨은, 이미지를 검사하거나 정신적으로 또는 달리 이미지를 해석하려고 시도함으로써, 인간이 합리적으로 이해할 수 있는 것보다 상당히 크다. 즉, 입자 이미지에 포함된 이미징 데이터의 풍부함 및 복잡함은, 그 표적의 3D 모델을 재구성하고 다듬기 위한 인간의 마음을 쉽게 배제한다. 대부분의 경우, (잠재적으로는 수백만의 정도로) 모든 또는 대부분의 이미지 및 그에 대응하는 관찰 방향이 3D 그리드로 배열된 푸리에 시리즈 확장의 복소수-수치 값 계수의 추상적인 형태로 동시에 집계될 때까지는, 이미지에 포함된 정보가 본원에 설명된 구현예에 의해 해석 가능하게 된다. 본원에 설명된 구현예는 일반적으로 컴퓨팅 장치를 사용하지 않고 구현하는 것이 사실상 불가능한 접근법 및 기호를 사용하고, 따라서, 본원에 설명된 바와 같은 이러한 컴퓨팅 장치의 영리한 사용만이 본원에 설명된 접근법, 방법 및 프로세스가 실질적으로 그리고 구체적으로 수행될 수 있게 한다.In cryo-EM, images of millions of 2D particles of a sample, often consisting of hundreds to thousands of copies of a single protein molecule or protein-drug complex (known as a “target”), are captured on an electron microscope. The particle images can then be computationally assembled to reconstruct and fine-tune a 3D model of the target to the desired resolution. In particular, the number of images, the level of detail, and the level of noise in each image are significantly greater than what a human can reasonably understand by examining the image or attempting to interpret the image mentally or otherwise. That is, the richness and complexity of imaging data contained in a particle image easily precludes the human mind from reconstructing and refining a 3D model of the target. In most cases, the image The information contained in becomes interpretable by the implementations described herein. Implementations described herein generally employ approaches and notations that are virtually impossible to implement without the use of computing devices, and thus only clever use of such computing devices as described herein is the only way to implement the approaches, methods, and methods described herein. and enable the process to be carried out practically and concretely.

일반적으로, 주어진 표적에 대한 특정 Cryo-EM 재구성의 유용성은, 해당 표적에 대해 달성 가능한 해상도에 따라 달라진다. 고해상도 재구성은, 특히 양호한 경우에, 재구성으로부터 해석될 원자 위치를 포함하여, 미세한 세부 사항을 해결할 수 있다. 대조적으로, 저해상도 재구성은 미세한 세부 사항보다는 단백질 분자의 큰 구형 특징부만을 도시할 수 있으며, 따라서, 추가적인 화학 또는 생물학적 연구 파이프라인에서 재구성을 사용하는 것을 어렵게 한다.In general, the usefulness of a particular Cryo-EM reconstruction for a given target depends on the resolution achievable for that target. High-resolution reconstructions can, in particularly good cases, resolve fine details, including atomic positions to be resolved from the reconstruction. In contrast, low-resolution reconstructions can only show large globular features of protein molecules rather than fine details, thus making it difficult to use the reconstructions in further chemical or biological research pipelines.

특히, 약물 개발 파이프라인의 경우, 표적의 고해상도 재구성이 실질적으로 유리할 수 있다. 일례로, 이러한 고해상도 재구성은, 표적이 치료제(예, 약물)의 적용에 적합한지에 대한 매우 가치 있는 통찰력을 제공할 수 있다. 다른 예로서, 고해상도 재구성은, 표적에 적합할 수 있는 약물 후보 물질의 유형을 이해하는 데 사용될 수 있다. 또 다른 예로서, 표적이 실제 단백질 및 특정 약물 후보의 화합물인 경우, 고해상도 재구성은 심지어 약물 후보를 최적화하여 결합 친화도를 개선하고 표적외 결합을 감소시키는 가능한 방법을 비출 수 있으며, 이에 의해 원치 않는 부작용의 가능성을 감소시킬 수 있다. 따라서, Cryo-EM 재구성의 경우, 연산적으로 재구성된 3D 결과의 해상도를 개선할 수 있는 접근법은, 높은 과학적 및 상업적 가치를 갖는다.Particularly for drug development pipelines, high-resolution reconstruction of targets can be substantially advantageous. For example, such high-resolution reconstructions can provide invaluable insight into whether a target is suitable for application as a therapeutic agent (e.g., a drug). As another example, high-resolution reconstruction can be used to understand the types of drug candidates that may be suitable for a target. As another example, if the target is an actual protein and compound of a specific drug candidate, high-resolution reconstruction can even reveal possible ways to optimize the drug candidate to improve binding affinity and reduce off-target binding, thereby eliminating unwanted It can reduce the possibility of side effects. Therefore, in the case of cryo-EM reconstruction, approaches that can improve the resolution of computationally reconstructed 3D results have high scientific and commercial value.

Cryo-EM의 맥락에서의 해상도는 일반적으로, 구조 정제 기술의 최종 3D 구조 출력에서 3D 구조 신호의 최단 분해 가능 파장의 측면에서 측정되고 설명된다. 일부 경우에, 최단 분해 가능 파장은 올바르고 검증 가능한 신호를 갖는 최단 파장인 해상도를 갖는다. 파장은 일반적으로 옹스트롬(Å; 10분의 1 나노미터) 단위로 표시된다. 파장에 대한 값이 작을수록 더 높은 해상도를 나타낸다.Resolution in the context of Cryo-EM is typically measured and described in terms of the shortest resolvable wavelength of the 3D structure signal in the final 3D structure output of the structure refinement technique. In some cases, the shortest resolvable wavelength has a resolution that is the shortest wavelength with a correct, verifiable signal. Wavelength is usually expressed in angstroms (Å; tenths of a nanometer). Smaller values for wavelength indicate higher resolution.

일례로, 매우 높은 해상도의 Cryo-EM 구조는 대략 2 Å의 해상도를 가질 수 있고, 중간 해상도는 대략 4 Å을 가질 수 있고, 낮은 해상도는 약 8 Å 이하의 범위에 있을 수 있다. 수치 해상도와 함께, Cryo-EM 재구성의 해석 가능성 및 유용성은, 재구성되는 3D 밀도 맵의 품질, 및 자격을 갖춘 사용자가 자신의 육안으로 3D 밀도 맵을 검사하여 단백질 분자, 예를 들어 백본, 측쇄, 결합된 리간드 등을 식별할 수 있는지 여부에 따라 달라질 수 있다. 사용자가 이들 특징부를 정확하게 식별할 수 있는 능력은, 3D 밀도 맵의 해상도 품질에 크게 의존한다.As an example, a very high resolution Cryo-EM structure may have a resolution of approximately 2 Å, medium resolution may have a resolution of approximately 4 Å, and low resolution may range from about 8 Å or less. Along with the numerical resolution, the interpretability and usefulness of Cryo-EM reconstructions depend on the quality of the 3D density maps from which they are reconstructed, and the ability of a qualified user to inspect the 3D density maps with their own naked eyes to identify the protein molecule, e.g. backbone, side chains, It may vary depending on whether the bound ligand, etc. can be identified. The ability of a user to accurately identify these features is highly dependent on the resolution quality of the 3D density map.

따라서, 데이터 출처(102)는 데이터(104)를 생성하도록 구성될 수 있다. 데이터(104)는 이미지 데이터, 예컨대 입자 이미지로도 지칭되는 2D 전자 cryo-현미경 이미지를 정의하는 이미지 데이터를 포함할 수 있다. 데이터(104)는 일부 경우에 서열 데이터를 포함할 수 있다.Accordingly, data source 102 may be configured to generate data 104. Data 104 may include image data, such as image data defining a 2D electron cryo-microscope image, also referred to as a particle image. Data 104 may, in some cases, include sequence data.

컴퓨팅 장치(106)는 데이터 출처(102)와 통신할 수 있다. 컴퓨팅 장치(106)는, 예를 들어 스마트폰, 태블릿, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버 컴퓨터 등일 수 있다. 컴퓨팅 장치(106)는 하나 이상의 서버 장치의 그룹을 포함할 수 있다. 컴퓨팅 장치(106)는, 데이터(104)의 저장을 위한 데이터베이스를 포함하여, 다양한 데이터 구조를 생성, 저장, 유지 및/또는 업데이트하도록 구성될 수 있다. 컴퓨팅 장치(106)는, 데이터 스테이징 모듈(108), 데이터 동기화 관리자(110), 및/또는 데이터 동기화 모듈(112)과 같은 하나 이상의 애플리케이션 프로그램을 작동시키도록 구성될 수 있다. 데이터 스테이징 모듈(108), 데이터 동기화 관리자(110), 및/또는 데이터 동기화 모듈(112)은 동일한 컴퓨팅 장치(106)상에서 또는 별도의 컴퓨팅 장치 상에서 별도로 작동하도록 저장되고/저장되거나 구성될 수 있다.Computing device 106 may communicate with data source 102. Computing device 106 may be, for example, a smartphone, tablet, laptop computer, desktop computer, server computer, etc. Computing device 106 may include a group of one or more server devices. Computing device 106 may be configured to create, store, maintain, and/or update various data structures, including databases for storage of data 104. Computing device 106 may be configured to operate one or more application programs, such as data staging module 108, data synchronization manager 110, and/or data synchronization module 112. Data staging module 108, data synchronization manager 110, and/or data synchronization module 112 may be stored and/or configured to operate separately on the same computing device 106 or on separate computing devices.

일 구현예에서, 컴퓨팅 장치(106)는, 데이터 스테이징 모듈(108)을 통해, 컴퓨팅 장치(106) 상의 스토리지 시스템(또는 컴퓨팅 장치(106)에 기능적으로 결합된 스토리지 시스템) 내의 저장을 위해 데이터 출처(102)로부터 데이터(104)를 수집, 검색 및/또는 수신하도록 구성될 수 있다. 스토리지 시스템은 하나 이상의 메모리 장치를 포함할 수 있고, 스테이징 위치로서 지칭될 수 있다. 데이터 스테이징 모듈(108)은, 이러한 데이터가 그 스테이징 위치로부터 전송될 때까지, 스토리지 시스템에 저장된 데이터를 관리할 수 있다. 일단 데이터가 스테이징 위치로부터 전송되었으면, 데이터 스테이징 모듈(108)은 이러한 데이터를 삭제할 수 있다. 데이터 스테이징 모듈(108)은 다양한 메커니즘을 통해 데이터(104)를 수신하도록 구성될 수 있다. 일 구현예에서, 데이터 출처(102)에 의해 생성된 데이터(104)가 스테이징 위치에 직접 저장되도록, 스테이징 위치는 데이터 출처(102)에 대한 원격 디렉토리로서 처리될 수 있다. 추가로, 또는 다른 구현예에서, 데이터 스테이징 모듈(108)은, 네트워크 저장 위치에서 새로운 데이터(104)를 식별할 때, 새로운 데이터(104)를 검출하기 위해 하나 이상의 네트워크 저장 위치를 모니터링하도록 구성될 수 있고, 데이터 스테이징 모듈(108)은 새로운 데이터(104)를 스테이징 위치로 전송할 수 있다. 추가로, 또는 또 다른 구현예에서, 데이터 스테이징 모듈(108)은 사용자가 데이터를 스테이징 위치에 수동으로 업로드하도록 구성될 수 있다.In one implementation, computing device 106, through data staging module 108, stores data from a data source for storage within a storage system on computing device 106 (or a storage system functionally coupled to computing device 106). It may be configured to collect, retrieve and/or receive data 104 from 102 . A storage system may include one or more memory devices and may be referred to as a staging location. Data staging module 108 may manage data stored in a storage system until such data is transferred from its staging location. Once data has been transferred from the staging location, data staging module 108 may delete such data. Data staging module 108 may be configured to receive data 104 through various mechanisms. In one implementation, the staging location may be treated as a remote directory to the data origin 102 such that data 104 generated by the data origin 102 is stored directly in the staging location. Additionally, or in another implementation, the data staging module 108 may be configured to monitor one or more network storage locations to detect new data 104 upon identifying new data 104 in the network storage locations. And the data staging module 108 can transmit the new data 104 to the staging location. Additionally, or in another implementation, data staging module 108 may be configured to allow users to manually upload data to a staging location.

컴퓨팅 장치(106)는, 데이터 동기화 관리자(110 )및 데이터 동기화 모듈(112)을 통해, 데이터(104)를 스테이징 위치에서 클라우드 플랫폼(114)으로 전송하도록 구성될 수 있다. 일 구현예에서, 컴퓨팅 장치(106)는, 데이터(104)가 데이터 출처(102)로부터 수신될 때 데이터 동기화 관리자(110 )및 데이터 동기화 모듈(112)을 통해 데이터(104)를 전송하도록 구성될 수 있다. 개시된 바와 같이, 시스템(100)은 시간당 1 TB를 초과하는 원시 데이터를 전송하고 처리할 수 있는 자동화 엔드-투-엔드 처리 파이프라인을 나타낸다. 일 구현예에서, 데이터(104)는 데이터(104)를 획득함에 따라 거의 실시간으로 전송될 수 있다.Computing device 106 may be configured to transfer data 104 from a staging location to cloud platform 114, via data synchronization manager 110 and data synchronization module 112. In one implementation, computing device 106 may be configured to transmit data 104 through data synchronization manager 110 and data synchronization module 112 when data 104 is received from data source 102. You can. As disclosed, system 100 represents an automated end-to-end processing pipeline capable of transferring and processing in excess of 1 TB of raw data per hour. In one implementation, data 104 may be transmitted in near real-time as data 104 is acquired.

일 구현예에서, 데이터 동기화 모듈(112)은, 데이터(104)를 클라우드 플랫폼(114)에 전송하도록 구성된 데이터 동기화 애플리케이션 프로그램일 수 있다. 데이터 동기화 애플리케이션 프로그램은, 예를 들어 AWS DataSync를 포함하는 임의의 데이터 동기화 프로그램일 수 있다. AWS DataSync는 온-프레미즈 스토리지와 아마존 네이티브 스토리지 서비스 간에 많은 양의 데이터를 전송하도록 구성된 네이티브 AWS 서비스이다. 일례로, 온-프레미즈 스토리지는 컴퓨팅 장치(106)에 존재하거나 그에 기능적으로 결합된 스테이징 위치일 수 있다. 그러나, 데이터 동기화 애플리케이션 프로그램은 "동기화" 유틸리티이므로, 이러한 애플리케이션 프로그램은 단방향 복제 유틸리티로서 기능하지 않는다. AWS DataSync의 경우, AWS DataSync는 데이터를 전송하기 위해 시작, 준비, 전송 및 검증이라는 네 가지 단계를 실행한다. 특히, 준비 단계에서, AWS DataSync는 소스(예, 컴퓨팅 장치(106)) 및 대상(예, 클라우드 플랫폼(114)) 파일 시스템을 검사하여 동기화할 파일을 결정한다. AWS DataSync는 차이점에 대해 소스 및 대상 파일 시스템에 있는 파일의 콘텐츠와 메타데이터를 반복적으로 스캔함으로써 그렇게 한다. AWS DataSync가 준비 단계에 소비하는 시간은 소스 및 대상 파일 시스템 모두의 파일 수에 따라 달라지며, 대용량 데이터 전송에는 몇 시간이 걸릴 수 있다. 소스 및/또는 대상에 저장된 데이터(104)의 크기가 증가함에 따라, AWS DataSync가 준비 단계에 소비하는 시간이 증가한다. 현재, 대상(예, 클라우드 플랫폼(114))에서 500 TB의 예시적인 데이터 크기를 갖는 경우, 준비 단계는 2시간 이상 소요된다. 스캐닝이 완료되고 차이점이 결정된 후에만, AWS DataSync가 전송 단계로 전환하고, 소스와 대상간 상이한 콘텐츠 또는 메타데이터가 있는 파일에 변경 사항을 복제함으로써, 소스 파일 시스템에서 대상으로 파일과 메타데이터를 전송한다.In one implementation, data synchronization module 112 may be a data synchronization application program configured to transmit data 104 to cloud platform 114. The data synchronization application program can be any data synchronization program, including, for example, AWS DataSync. AWS DataSync is a native AWS service configured to transfer large amounts of data between on-premises storage and Amazon native storage services. In one example, on-premise storage may be a staging location that resides on or is functionally coupled to computing device 106. However, because the data synchronization application program is a "synchronization" utility, this application program does not function as a one-way replication utility. For AWS DataSync, AWS DataSync executes four steps to transfer data: launch, prepare, transfer, and validate. In particular, during the preparation phase, AWS DataSync examines the source (e.g., computing device 106) and target (e.g., cloud platform 114) file systems to determine which files to synchronize. AWS DataSync does so by iteratively scanning the content and metadata of files in the source and target file systems for differences. The time AWS DataSync spends in the preparation phase depends on the number of files in both the source and target file systems, and large data transfers can take several hours. As the size of data 104 stored on the source and/or target increases, the time AWS DataSync spends in the preparation phase increases. Currently, with an exemplary data size of 500 TB at the destination (e.g., cloud platform 114), the preparation step takes over 2 hours. Only after scanning is complete and differences are determined, AWS DataSync switches to the transfer phase, transferring files and metadata from the source file system to the target by replicating changes to files with different content or metadata between the source and target. do.

본원에서 설명된 바와 같이, 데이터 출처(102)는 매우 많은 양의 데이터(104)를 생성한다. 이러한 엄청난 양의 데이터는 가능한 한 빨리 클라우드 플랫폼(114)과 같은 고성능 컴퓨팅 플랫폼 상에서 이용 가능하게 할 필요가 있다. 데이터(104)를 더 빠르게 사용할 수 있게 함으로써, 과학자가 더 빠르게 처리하고 결과를 달성할 수 있는 리드 타임을 제공하여, 약물 발견 타이밍에 직접적인 영향을 미친다. 기존 데이터 동기화 애플리케이션 프로그램의 현재 상태는, 데이터 전송 전에 로컬 및 원격 파일 시스템을 스캔하는 데 걸리는 시간 때문에, 고성능 컴퓨팅 플랫폼에 이러한 데이터를 전송하는 데 필요한 시간을 크게 증가시킨다.As described herein, data sources 102 generate very large amounts of data 104. These enormous amounts of data need to be made available on high-performance computing platforms, such as cloud platforms 114, as quickly as possible. By making data 104 available more quickly, it directly impacts the timing of drug discovery, providing scientists with a faster lead time to process and achieve results. The current state of existing data synchronization application programs significantly increases the time required to transfer such data to high-performance computing platforms due to the time it takes to scan local and remote file systems prior to data transfer.

시스템(100)은 데이터 동기화 애플리케이션 프로그램의 기술적 결함을 해결하는, 도 2에 나타낸 바와 같이 개선된 데이터 파이프라인(201)을 구현하도록 구성된다. 데이터 파이프라인(201)은, 데이터(104)를 컴퓨팅 장치(106)(예, 온-프레미즈) 상의 스테이징 위치로부터 클라우드 시스템(114)으로 푸시하기 위한 다단계 데이터 전송 프로세스를 포함할 수 있다. 본원에서 설명된 바와 같이, 데이터(104)는 데이터 출처(102)에 의해 생성될 수 있다. 데이터 스테이징 프로세스(202)의 일부로서, 데이터(104)는, 데이터 스테이징 모듈(108)에 의해 스테이징 위치에 저장될 수 있다. 데이터 스테이징 프로세스(202)의 목적은 데이터(104)를 유지하고 데이터(104)를 송신 준비 상태로 유지하는 것이다. 스테이징 위치에서의 데이터(104)는, 데이터(104)가 데이터 대상(예, 클라우드 플랫폼(114))으로 이동하면, 삭제될 수 있다. 동기화 조건(203)은 데이터 전송 프로세스(204)가 개시될 수 있는 시기를 지시한다. 따라서, 동기화 조건(203)을 만족하면 데이터 전송 프로세스(204)가 시작될 수 있다. 예시적인 시나리오에서, 데이터 전송 프로세스(204)는 구성 가능할 수 있는 시간 간격에 의해 정의된 속도로 주기적으로 개시된다. 따라서, 동기화 조건(203)은 마지막 데이터 전송 이후의 경과 시간이 시간 간격과 같아야 한다고 지시한다. 그러나, 데이터 전송 프로세스(204)의 실행 전에, 데이터 동기화 관리자(110)는 현재 스테이징 위치에서 이용 가능한 데이터(104)를 결정(예를 들어, 파일 및/또는 디렉토리를 식별)하도록 구성될 수 있다. 이를 위해, 예를 들어, 데이터 동기화 관리자(110)는 현재 스테이징 위치에서 이용 가능한 데이터(104)의 목록(205)을 가져올 수 있다. 일 구현예에서, 데이터 동기화 관리자(110)는 스테이징 위치 및/또는 임의의 각각의 마운트 지점/디스크 볼륨에 연결할 수 있다. 그 다음, 데이터 동기화 관리자(110)는 이용 가능한 파일의 목록을 가져오기 위해 리스트 명령을 실행할 수 있다. 데이터 동기화 관리자(110)는 이용 가능한 파일 목록을 가져올 때 명명 규칙을 활용하도록 구성될 수 있다. 예를 들어, 과학 도구는 정의된 명명 규칙에 따라 데이터를 생성하도록 구성될 수 있다. 데이터 동기화 관리자(110)는 레귤러 익스프레션(RegEx)을 사용하여 하나 이상의 파일을 목록에 포함(또는 제외)할 수 있다. 일 구현예에서, 데이터 동기화 관리자(110)는 또한, 목록 상에 포함시키기 위해 디렉토리 및/또는 파일을 검증하도록 RegEx에 의존할 수 있다.System 100 is configured to implement an improved data pipeline 201 as shown in FIG. 2 that addresses technical deficiencies in data synchronization application programs. Data pipeline 201 may include a multi-step data transfer process to push data 104 from a staging location on computing device 106 (e.g., on-premise) to cloud system 114. As described herein, data 104 may be generated by a data source 102. As part of the data staging process 202, data 104 may be stored to a staging location by the data staging module 108. The purpose of the data staging process 202 is to maintain the data 104 and keep the data 104 ready for transmission. Data 104 at the staging location may be deleted once the data 104 moves to the data destination (e.g., cloud platform 114). Synchronization condition 203 indicates when the data transfer process 204 may be initiated. Accordingly, if the synchronization condition 203 is satisfied, the data transfer process 204 can be started. In an example scenario, the data transfer process 204 is initiated periodically at a rate defined by time intervals, which may be configurable. Accordingly, synchronization condition 203 dictates that the elapsed time since the last data transmission should equal the time interval. However, prior to execution of the data transfer process 204, the data synchronization manager 110 may be configured to determine (e.g., identify files and/or directories) available data 104 in the current staging location. To this end, for example, data synchronization manager 110 may retrieve a list 205 of available data 104 in the current staging location. In one implementation, data synchronization manager 110 may connect to a staging location and/or any respective mount point/disk volume. Data synchronization manager 110 can then run a list command to get a list of available files. Data synchronization manager 110 may be configured to utilize a naming convention when retrieving a list of available files. For example, a scientific tool may be configured to generate data according to defined naming conventions. The data synchronization manager 110 can include (or exclude) one or more files from the list using regular expressions (RegEx). In one implementation, data synchronization manager 110 may also rely on RegEx to verify directories and/or files for inclusion on the list.

데이터 동기화 관리자(110)는 목록을 사용하여 필터(206)를 생성하도록 구성될 수 있다. 필터는, 파일 이름, 파일 위치, 파일 확장자, 파일 크기, 체크섬, 생성된 날짜, 수정된 날짜, 이들의 조합 등 중 하나 이상을 포함할 수 있다. 필터(206)를 생성하는 단계는 클라우드 서비스(예, AWS DataSync)에 함수 호출을 호출하는 메시지를 생성하는 단계를 포함할 수 있으며, 여기서 메시지는 함수 호출의 인수로서 이용 가능한 파일의 목록을 전달한다. 함수 호출은 클라우드 서비스의 태스크(또는 작업)을 시작할 수 있다. 함수 호출은 데이터 저장 서비스에 의해 구현된 API에 따라 호출될 수 있다. 클라우드 서비스는 클라우드 플랫폼(114)의 하나 이상의 구성 요소에 의해 제공될 수 있다. 필터는, 데이터 전송 프로세스(204)의 각각의 반복 시마다 생성될 수 있는 점에서, 동적으로 생성될 수 있다. 일 구현예에서, 필터는 부분 파일(예, 아직 완료되지 않았거나 스테이징 위치로의 전송 과정에 있는 파일)에 대한 참조를 포함할 수 있다. 필터가 부분 파일을 포함하는 경우, 부분 파일이 전송되고, 후속 반복 시, 필터는 전체 파일을 포함하고 전송된 부분 파일을 업데이트하게 된다.Data synchronization manager 110 may be configured to create filters 206 using a list. Filters may include one or more of the following: file name, file location, file extension, file size, checksum, date created, date modified, combinations thereof, etc. Creating the filter 206 may include creating a message that calls a function call to a cloud service (e.g., AWS DataSync), where the message passes a list of available files as arguments to the function call. . A function call can start a task (or job) in a cloud service. Function calls can be made according to the API implemented by the data storage service. Cloud services may be provided by one or more components of cloud platform 114. Filters may be created dynamically, in that they may be created with each iteration of the data transfer process 204. In one implementation, a filter may include a reference to a partial file (e.g., a file that has not yet been completed or is in the process of being transferred to a staging location). If the filter includes a partial file, the partial file is transferred, and on subsequent iterations, the filter will include the entire file and update the transferred partial file.

그 다음, 데이터 동기화 관리자(110)는 필터(206)에 따라 데이터 전송 프로세스(204)를 트리거한다. 필터(206)는 데이터 전송 프로세스(204)로 하여금 필터(206)에 의해 지정된 파일 및/또는 디렉토리만을 전송하게 한다. 따라서, 필터(206)는 스테이징 위치에만 존재하는 데이터(104)를 나타낸다. 데이터 파이프라인(201)은 컴퓨터 기술의 개선을 나타내는데, 그 이유는 표준 데이터 전송 프로세스는 스테이징 위치와 클라우드 플랫폼(114)에서 이용 가능한 데이터를 비교하고, 전송할 모든 신규 및 변경/업데이트된 파일을 결정하고, 데이터를 클라우드 플랫폼(114)에 푸시하여, 데이터 전송 프로세스를 완료하는 데 상당한 시간을 증가시킬 것이기 때문이다. 반면, 동적으로 생성된 본 필터는, 데이터 전송 프로세스(204)로 하여금, 데이터 전송 프로세스(204)를 완료하는 데 필요한 시간을 상당히 감소시키는, 스테이징 위치 및 클라우드 플랫폼(114)에서 제한된 데이터세트만을 스캔하게 한다. AWS DataSync의 예에서, 필터(206)는 AWS DataSync 태스크의 준비 단계가 모든 파일 대신 필터에 지정된 파일만 스캔하게 하여 준비 단계 시간을 최소화시킨다.Data synchronization manager 110 then triggers data transfer process 204 according to filter 206. Filter 206 causes data transfer process 204 to transfer only files and/or directories specified by filter 206. Accordingly, filter 206 represents data 104 that exists only in the staging location. The data pipeline 201 represents an improvement in computer technology because the standard data transfer process compares the data available in the staging location and the cloud platform 114, determines all new and changed/updated files to transfer, and , because pushing data to the cloud platform 114 will significantly increase the time to complete the data transfer process. On the other hand, this dynamically generated filter allows the data transfer process 204 to scan only limited datasets from the staging location and cloud platform 114, significantly reducing the time required to complete the data transfer process 204. Let's do it. In the example of AWS DataSync, filter 206 minimizes preparation phase time by causing the preparation phase of an AWS DataSync task to scan only the files specified in the filter instead of all files.

일부 구현예에서, 다양한 동기화 정책이 생성되고/생성되거나 적용되어 동기화 데이터와 비동기화 데이터를 결정할 수 있다. 동기화 정책은, 데이터 유형, 메타데이터, 및 위치 정보(예, 그 데이터를 생성한 전자 현미경 장비)를 포함하는 선택된 기준에 기초하여, 동기화될 파일을 특정할 수 있다. 도 2b를 참조하면, 동기화 정책은 하나 이상의 데이터 구조(260)(정책(260)으로 지칭됨) 내에서 하나 이상의 메모리 장치(250)(데이터 저장소(250)로 지칭됨)에 유지될 수 있다. 데이터 저장소(250)는 컴퓨팅 장치(106)에 통합될 수 있거나, 그에 기능적으로 결합될 수 있다. 일부 경우에, 데이터 저장소(250)는 스테이징 위치의 일부일 수 있다. 동기화 정책은 필터(206)를 생성하는 방식을 지시할 수 있다. 하나의 예시적인 시나리오에서, 과학자는 데이터가 스테이징 위치에 존재하더라도, 동기화되지 않도록 특정 데이터를 표시할 수 있다. 동기화 정책은 이러한 방식으로 플래그가 지정된 데이터가 동기화되지 않도록 지시할 수 있다. 결과적으로, 데이터 동기화 관리자(110)는 필터(206)의 인스턴스를 생성하기 위해 하나 이상의 파일 목록 및 이러한 동기화 정책을 사용하도록 구성될 수 있다. 따라서, 필터의 인스턴스는 각각의 파일과 연관된 하나 이상의 플래그(배제 플래그로서 지칭될 수 있음)를 포함하도록 업데이트될 수 있다. 배제 플래그(들)로 인해 이러한 파일(들)은 동기화에서 배제된다. 다른 동기화 정책은 배제 플래그의 생존까지의 시간(TTL)을 지정할 수 있으며, 여기서 생존까지의 시간은 배제 플래그가 활성인 시간 간격을 정의한다. TTL 기간은 데이터가 특정 시점에 동기화되도록 하여, 스테이징 위치에서 불필요하게 데이터를 유보하는 것을 방지한다.In some implementations, various synchronization policies may be created and/or applied to determine synchronized and out-of-sync data. A synchronization policy can specify files to be synchronized based on selected criteria including data type, metadata, and location information (e.g., electron microscope equipment that generated the data). Referring to FIG. 2B, synchronization policies may be maintained in one or more memory devices 250 (referred to as data stores 250) within one or more data structures 260 (referred to as policies 260). Data storage 250 may be integrated into or functionally coupled to computing device 106 . In some cases, data store 250 may be part of a staging location. A synchronization policy may dictate how filters 206 are created. In one example scenario, a scientist may mark certain data to be out of sync, even though the data exists in a staging location. A synchronization policy can dictate that data flagged in this way is not synchronized. As a result, data synchronization manager 110 may be configured to use one or more file lists and such synchronization policies to create instances of filters 206 . Accordingly, an instance of a filter may be updated to include one or more flags (which may be referred to as exclusion flags) associated with each file. The exclusion flag(s) cause these file(s) to be excluded from synchronization. Other synchronization policies may specify a time-to-live (TTL) of the exclusion flag, where time-to-live defines the time interval for which the exclusion flag is active. The TTL period ensures that data is synchronized at a specific point in time, preventing data from being held unnecessarily in a staging location.

다른 유형의 플래그 또는 메타데이터는, 필터(206)의 인스턴스가 생성되고 데이터 동기화에 적용되는 방식을 제어하도록 정의될 수 있다. 일부 플래그는, 예를 들어 부분 동기화를 피하기 위해 전체 데이터세트가 스테이징 위치에 로딩된 후 자동으로 만료될 수 있다.Other types of flags or metadata may be defined to control how instances of filter 206 are created and applied to data synchronization. Some flags may expire automatically after the entire dataset is loaded into a staging location, for example to avoid partial synchronization.

도 3은 도 2의 데이터 파이프라인(201)을 구현하기 위한 예시적인 AWS 아키텍쳐를 나타낸다. 데이터는 301의 데이터 센터/실험실에서 생성된다. 생성된 데이터는 302의 로컬 데이터 센터에 있는 NetApp 스토리지에서 스테이징할 수 있다. AWS 클라우드 감시 규칙은 합의한 SLA에 따라 303에서 규칙적인 간격(예, 주기적으로, 구성 가능한 속도 또는 시간 간격)으로 람다 함수를 트리거하도록 구성된다. 호출된 람다 함수는 NFS를 통해 온-프레미즈 NetApp 스토리지에 연결하여 304에서 사용 가능한 파일 목록을 가져올 수 있다. 파일 목록을 사용할 수 있게 되면, 람다 함수는 (명명 규칙에 기초하여) 유효한 데이터세트를 필터링하고, 305에서 트리거된 DataSYNC 작업에 필터로서 전달될 수 있다. 람다 환경 변수는 트리거해야 하는 DataSYNC 작업 ID를 보유할 것이다. 람다를 벗어나 실행(성공/실패)은 306에서 SNS 주제로 넘어갈 것이다. 람다 환경 변수는 SNS 주제 ARN을 보유할 것이다. 모든 성공 또는 실패 메시지는 307에서 구독된 이메일로 전송될 것이다. SNS 구독은 메시지 속성 필터 설정을 갖고, 이는 실패를 고르고 추가로 308에서 관리자에게 텍스트를 전송한다. 오류는 즉시 관리자에게 문자로 알려 신속하게 대응할 수 있다. 도 3의 예시적인 AWS 아키텍처는 표 1에 나타낸 바와 같이 준비 단계 타이밍을 크게 감소시킨다. 데이터를 가능한 한 빨리 연산에 사용할 수 있게 하는 것이, 신속한 약물 발견 및 분석을 위한 핵심 요인이다. 본 개시의 구현예에 의해 개선된 데이터 파이프라인을 제공함으로써, 연산시 데이터를 훨씬 빠르게 이용할 수 있다. 일부 경우에, 약 4의 속도 증가 인자가 달성될 수 있다.Figure 3 illustrates an example AWS architecture for implementing the data pipeline 201 of Figure 2. Data is generated in 301's data center/laboratory. The generated data can be staged on NetApp storage in 302's local data center. AWS Cloud Watch Rules are configured to trigger the Lambda function at regular intervals (e.g., periodically, at a configurable rate or time interval) according to the agreed-upon SLA. The called lambda function can connect to the on-premises NetApp storage via NFS to get a list of available files on 304. Once the list of files is available, the lambda function filters the valid datasets (based on naming conventions) and can be passed as a filter to the DataSYNC operation triggered at 305. The lambda environment variable will hold the DataSYNC job ID that needs to be triggered. Execution (success/failure) outside of Lambda will move to the SNS topic in 306. The lambda environment variable will hold the SNS topic ARN. All success or failure messages will be sent to your subscribed email on 307. SNS subscriptions have message attribute filter settings, which pick up failures and additionally send a text to the administrator at 308. Errors are immediately notified to the administrator via text message so they can respond quickly. The example AWS architecture of Figure 3 significantly reduces preparation phase timing, as shown in Table 1. Making data computationally available as quickly as possible is a key factor for rapid drug discovery and analysis. By providing an improved data pipeline by implementations of the present disclosure, data can be used much faster during computation. In some cases, a speedup factor of about 4 can be achieved.

표 1:Table 1: 솔루션solution 전송된 데이터data transferred 태스크 기간task duration TB 시간 당TB per hour DataSYNC 파이프라인DataSYNC Pipeline 1.25 TB1.25 TB 3시간 04분3 hours 04 minutes 146분146 minutes 향상된 DataSYNC 파이프라인Enhanced DataSYNC Pipeline 1.22 TB1.22 TB 41분 33초41 minutes 33 seconds 34분34 minutes

클라우드 플랫폼(114)에 의해 수신된 데이터(104)는, 하나 이상의 유형의 스토리지(예, 파일 시스템)에 저장될 수 있다. 클라우드 플랫폼(114)은 분산된 병렬 파일 시스템(예, Lustre) 및/또는 객체 기반 파일 시스템을 포함할 수 있다. 일 구현예에서, 클라우드 플랫폼(114)에 의해 수신된 데이터(104)는 분산된 병렬 파일 시스템 또는 객체 기반 파일 시스템에 저장될 수 있다. 일 구현예에서, 클라우드 플랫폼(114)에 의해 수신된 데이터(104)는, 초기에 객체 기반 파일 시스템에 저장되고, 데이터(104)가 처리(예를 들어, 분석)되는 경우에 분산된 병렬 파일 시스템으로 이동된다.Data 104 received by cloud platform 114 may be stored in one or more types of storage (e.g., a file system). Cloud platform 114 may include a distributed parallel file system (e.g., Luster) and/or an object-based file system. In one implementation, data 104 received by cloud platform 114 may be stored in a distributed parallel file system or an object-based file system. In one implementation, the data 104 received by the cloud platform 114 is initially stored in an object-based file system and, when the data 104 is processed (e.g., analyzed), the data 104 is stored in distributed parallel files. moved to the system.

파일 시스템은, 운영 체제 또는 프로그램이 파일을 구성하고 추적하기 위해 사용하는 서브시스템이다. 파일 시스템은 다양한 방식으로 구성될 수 있다. 예를 들어, 계층적 파일 시스템은, 디렉토리를 사용하여 파일을 트리 구조로 구성하는 시스템이다. 파일 시스템은 파일 시스템 내에 저장된 하나 이상의 파일을 검색할 수 있는 기능을 제공한다. 이는 종종 "디렉터리" 스캔 또는 검색을 사용하여 수행된다. 일부 운영 체제에서, 검색은 파일 버전, 파일 이름 및/또는 파일 확장자를 포함할 수 있다.A file system is a subsystem that an operating system or program uses to organize and track files. File systems can be configured in a variety of ways. For example, a hierarchical file system is a system that uses directories to organize files into a tree structure. The file system provides the ability to search one or more files stored within the file system. This is often done using a "directory" scan or search. On some operating systems, searches may include file version, file name, and/or file extension.

운영 체제가 자체 파일 관리 시스템을 제공하지만 제3자 파일 시스템을 개발할 수 있다. 이들 시스템은 운영 체제와 원활하게 상호 작용할 수 있지만 암호화, 압축, 파일 버전 관리, 개선된 백업 절차 및 보다 엄격한 파일 보호와 같은 더 많은 기능을 제공한다. 일부 파일 시스템은 네트워크를 통해 구현된다. 두 가지 공통 시스템은 네트워크 파일 시스템(NFS)과 서버 메시지 블록(SMB, 현재 CFIS) 시스템이다. 네트워크를 통해 구현된 파일 시스템은, 운영 체제의 요청을 받고, 요청을 네트워크 패킷으로 변환하고, 패킷을 원격 서버로 전송한 다음 응답을 처리한다. 다른 파일 시스템은 다운로드 가능한 파일 시스템으로서 구현되며, 여기서 파일 시스템은 패키지화되어 유닛으로서 사용자에게 전달된다.Although the operating system provides its own file management system, third-party file systems can be developed. These systems can interact seamlessly with operating systems, but offer more features such as encryption, compression, file versioning, improved backup procedures, and more stringent file protection. Some file systems are implemented over networks. Two common systems are the Network File System (NFS) and Server Message Block (SMB, now CFIS) systems. A file system implemented over a network receives requests from the operating system, converts the requests into network packets, transmits the packets to a remote server, and then processes the response. Other file systems are implemented as downloadable file systems, where the file system is packaged and delivered to the user as a unit.

파일 시스템은, 사용자가 작업을 수행할 수 있는 추상화 인터페이스를 공유한다. 이들 작업에는 다음이 포함되나 이에 제한되지 않는다: 마운트/마운트 해제, 디렉토리 스캔, 열기(생성)/닫기, 읽기/쓰기, 상태 등. 파일 시스템을 운영 체제와 연결하는 단계(예, 운영 체제에 대한 파일 시스템의 가상 레이어 바인딩을 만드는 단계)를 통칭하여 "마운트"라고 한다. 일반적인 사용에서, 새로 마운트된 파일 시스템이 계층적 파일 트리의 특정 위치와 연결된다. 파일 트리의 해당 부분에 대한 모든 요청은 마운트된 파일 시스템으로 전달된다. 운영 체제에 따라, 파일 시스템 마운트의 수와 마운트가 얼마나 깊게 중첩되는지에 제한이 있다. 마운트 해제는 마운트와는 반대이다: 파일 시스템은 운영 체제와 분리된다.File systems share an abstract interface through which users can perform tasks. These operations include, but are not limited to: mount/unmount, directory scan, open (create)/close, read/write, status, etc. The step of associating a file system with the operating system (i.e., creating a virtual layer binding of the file system to the operating system) is collectively called "mounting." In typical use, a newly mounted file system is associated with a specific location in a hierarchical file tree. All requests for that part of the file tree are directed to the mounted file system. Depending on the operating system, there are limits to the number of file system mounts and how deeply the mounts can be nested. Unmounting is the opposite of mounting: the file system is separated from the operating system.

도 4에 나타낸 바와 같이, 일 구현예에서, 데이터(104)의 분석은 클라우드 플랫폼(114)과 같은 분산형 연산 및 스토리지 아키텍처에 대해 수행될 수 있다. 데이터 출처(102)는 통상적으로 상당한 양의 데이터(104)(예, 실험 당 데이터)를 생성하므로, 이러한 데이터를 핫 스토리지(401)(예, 분산된 병렬 파일 시스템, 솔리드 스테이트 드라이브(SSD) 등)에 장기간 보관하는 것은 가능하지 않다. 따라서, 데이터(104)는 핫 스토리지(401) 대신에 웜 스토리지(402)(예, 객체 스토리지)에 유지될 수 있다. 데이터 처리에 대한 필요성이 있는 경우, 데이터(104)는 본원에 개시된 바와 같은 데이터세트 관리(DSM) 유틸리티(116)를 사용하여 셀프 서비스 모델을 통해 핫 스토리지(401)로 이동될 수 있다. DSM 유틸리티(116)는 사용자에 의한 POSIX 분산 파일 시스템의 생성 및 웜 스토리지(402)로부터 핫 스토리지(401)로의 적절한 데이터세트의 검색을 허용하거나 달리 용이하게 할 수 있다. POSIX 파일 시스템은 처리를 위해 HPC 클러스터(예, 연산 노드(403))에 부착될 수 있다. 예로서, Lustre는 고성능 분산 파일 시스템이며, S3 데이터에 대한 프론트 엔드 역할을 하고 POSIX 기반 파일 시스템의 S3 데이터를 연산 노드(403)에 제공할 수 있다. 그러나, 이러한 파일 시스템은 재정적으로 고가이다. 스토리지 비용을 최소화하기 위해, 개시된 DSM 유틸리티(116)는, 예를 들어 클라우드 기반 파일 시스템의 주문형 프로비저닝을 제공한다. Lustre 파일 시스템은, 제공될 수 있는 클라우드 기반 파일 시스템의 예이다. 사용자는 작업을 실행하는 경우에 데이터세트를 가리키는 Lustre 파일 시스템을 생성할 수 있다. Lustre 파일 시스템은 처리를 위한 스테이징 스토리지의 역할을 하고, 작업이 완료된 후 결과를 S3 객체 스토리지와 다시 동기화하고, DSM 유틸리티(116)를 사용하여 Lustre 파일 시스템을 삭제할 수 있다.4 , in one implementation, analysis of data 104 may be performed on a distributed computing and storage architecture, such as cloud platform 114. Data sources 102 typically generate significant amounts of data 104 (e.g., data per experiment) and thus may be stored in hot storage 401 (e.g., distributed parallel file systems, solid-state drives (SSDs), etc.). ) is not possible for long-term storage. Accordingly, data 104 may be maintained in warm storage 402 (e.g., object storage) instead of hot storage 401. If there is a need for data processing, data 104 may be moved to hot storage 401 through a self-service model using a dataset management (DSM) utility 116 as disclosed herein. DSM utility 116 may allow or otherwise facilitate the creation of a POSIX distributed file system by a user and retrieval of appropriate datasets from warm storage 402 to hot storage 401. The POSIX file system may be attached to an HPC cluster (e.g., compute node 403) for processing. As an example, Luster is a high-performance distributed file system and can act as a front end for S3 data and provide S3 data from a POSIX-based file system to compute nodes 403. However, these file systems are financially expensive. To minimize storage costs, the disclosed DSM utility 116 provides on-demand provisioning of cloud-based file systems, for example. The Luster file system is an example of a cloud-based file system that can be provided. Users can create a Luster file system that points to a dataset when running a job. The Luster file system acts as staging storage for processing, and after the operation is complete, the results can be synchronized back to S3 object storage and the Luster file system can be deleted using the DSM utility (116).

DSM 유틸리티(116)는 처리될 데이터세트를 타켓팅하여 새로운 사용자 지정 크기 분산 파일 시스템을 생성할 수 있다. DSM 유틸리티(116)은 처리된 데이터를 스테이징하기 위해 분산된 파일 시스템을 HPC 클러스터(예, 연산 노드(403))에 마운트할 수 있다. DSM 유틸리티(116)는 수정된 데이터세트를 S3 객체 저장소로 다시 동기화할 수 있다. DSM 유틸리티(116)는 S3 객체 저장소에서 이용 가능한 파일을 볼 수 있게 한다. DSM 유틸리티(116)는 셀프 서비스 데이터 수명주기 관리를 가능하게 할 수 있다. 일반적으로 이러한 기능은 기술적으로 훈련된 사용자의 지원을 필요로 하지만, DSM 유틸리티(116)는 비기술적 사용자가 이들 태스크를 수행할 수 있게 한다.DSM utility 116 can create a new custom size distributed file system by targeting the dataset to be processed. DSM utility 116 may mount a distributed file system on an HPC cluster (e.g., compute node 403) for staging processed data. DSM utility 116 may synchronize the modified dataset back to the S3 object store. DSM utility 116 allows viewing available files in S3 object storage. DSM utility 116 may enable self-service data lifecycle management. Typically, these functions require the assistance of technically trained users, but DSM utilities 116 enable non-technical users to perform these tasks.

도 5는 DSM 유틸리티(116)에 대한 그래픽 사용자 인터페이스(501)를 나타낸다. 그래픽 사용자 인터페이스(501)는 분산된 워크로드에 대한 파일 시스템을 생성하고 관리하는 능력을 사용자에게 제공한다. 도 5에 나타낸 바와 같이, 그래픽 사용자 인터페이스(501)는 제1 선택 가능한 옵션(502)("Lustre 생성"으로 표시됨) 및 제2 선택 가능한 옵션(503)("Lustre 관리"로 표시됨)을 포함한 선택 가능한 옵션 메뉴를 제공한다. 제1 선택 가능한 옵션(502)은 사용자가 S3 상의 데이터 저장소를 탐색하여 파일 및 디렉토리를 보고 S3 상의 임의의 위치로부터 파일 시스템(예, Lustre 파일 시스템)을 생성할 수 있게 한다. 제2 선택 가능한 옵션(503)은, Lustre 파일 시스템이 생성되면 사용자가 파일 시스템을 마운트하여 운영 체제(O/S) 레벨의 파일 시스템을 보고 파일 시스템 내의 데이터를 액세스할 수 있게 한다. 제2 선택 가능한 옵션(503)은, Lustre 파일 시스템이 생성되면 사용자가 S3에 데이터를 저장할 수 있게 하고, 파일 시스템으로 작업하는 동안 사용자가 파일 시스템에서 새 데이터를 생성하거나 기존 데이터를 수정할 수 있게 한다. 파일 시스템을 삭제한 후에도 이러한 데이터를 지속시키기 위해, 사용자는 데이터를 데이터 저장소(S3)로 다시 내보낼 수 있다. 제2 선택 가능한 옵션(503)은, Lustre 파일 시스템이 생성되면 사용자가 내보내기 작업의 상태를 볼 수 있게 한다. 사용자는 내보내기 작업 상태와 파일 시스템 뷰 사이를 전환할 수 있다. 제2 선택 가능한 옵션(503)은, Lustre 파일 시스템이 생성되면 태스크가 완료된 후 사용자가 파일 시스템을 삭제할 수 있게 한다.Figure 5 shows a graphical user interface 501 for the DSM utility 116. Graphical user interface 501 provides users with the ability to create and manage file systems for distributed workloads. As shown in FIG. 5 , graphical user interface 501 displays a first selectable option 502 (denoted “Create Lustre”) and a second selectable option 503 (denoted “Manage Lustre”). A menu of possible options is provided. A first selectable option 502 allows the user to browse the data store on S3 to view files and directories and create a file system (e.g., a Luster file system) from any location on S3. A second selectable option 503 allows the user to mount the file system once the Luster file system is created to view the file system at the operating system (O/S) level and access data within the file system. A second selectable option 503 allows the user to store data in S3 once the Luster file system is created and allows the user to create new data or modify existing data in the file system while working with the file system. . To persist this data even after deleting the file system, users can export the data back to data storage (S3). A second selectable option 503 allows the user to view the status of the export operation once the Luster file system has been created. Users can switch between the export task status and the file system view. A second selectable option 503 allows the user to delete the Luster file system once the task is complete once it has been created.

도 6a에 나타낸 바와 같이, 제1 선택 가능한 옵션(502)("Lustre 생성")를 선택(예, 클릭)하면, 그래픽 사용자 인터페이스(501)는 데이터 저장소인 웜 스토리지의 콘텐츠를 제공한다. 사용자는, 특정 디렉토리를 두 번 클릭하여 어느 디렉토리로든 드릴다운하여 서브폴더를 볼 수 있다. 시각적 선택 요소(602)("이전 디렉토리"로 표시됨)는 사용자가 한 단계씩 되돌아갈 수 있게 한다. 시각적 선택 요소(603)("데이터세트 새로고침"으로 표시됨)는 사용자가 상단 레벨 화면으로 이동할 수 있게 한다. 시각적 선택 요소(603)는 또한, 데이터 저장소로부터 최신 데이터를 가져오기 위한 새로고침 표시로서 기능할 수 있다. 사용자가 로딩할 디렉토리를 선택하면, 시각적 선택 요소(604)("데이터세트 로딩"으로 표시됨)를 선택하여 Lustre 파일 시스템의 생성을 개시한다. 도 6b에 나타낸 바와 같이, 그래픽 사용자 인터페이스(501)는 Lustre 파일 시스템의 크기를 조절하는 능력을 사용자에게 제공한다. 기본적으로, Lustre 파일 시스템은 7.2 TB의 저장 공간을 갖고 생성될 수 있으며, 이는 슬라이더 표시(610)를 좌측(감소) 또는 우측(증가)으로 이동시켜 저장 용량을 변하게 하여 변경될 수 있다. 선택 가능한 옵션의 메뉴도 도 6b에 나타나 있고, 제1 선택 가능한 옵션(605)("진행"으로 표시됨) 및 제2 선택 가능한 옵션(606)("취소"로 표시됨)을 포함한다. 제1 선택 가능한 옵션(605)을 선택하면 Lustre 파일 시스템이 생성된다.As shown in Figure 6A, upon selecting (e.g., clicking) the first selectable option 502 (“Create Lustre”), graphical user interface 501 presents the contents of the data store, warm storage. Users can drill down into any directory to view subfolders by double-clicking on a specific directory. A visual selection element 602 (marked “previous directory”) allows the user to step back. A visual selection element 603 (marked “Refresh Dataset”) allows the user to navigate to the top level screen. Visual selection element 603 may also function as a refresh indicator to retrieve the latest data from a data store. Once the user has selected the directory to load, selecting visual selection element 604 (marked “Load Dataset”) initiates the creation of the Luster file system. As shown in Figure 6B, graphical user interface 501 provides the user with the ability to resize the Luster file system. By default, the Luster file system can be created with 7.2 TB of storage space, which can be changed by changing the storage capacity by moving the slider indicator 610 to the left (decrease) or right (increase). A menu of selectable options is also shown in FIG. 6B and includes a first selectable option 605 (indicated as “Proceed”) and a second selectable option 606 (indicated as “Cancel”). Selecting the first selectable option 605 creates a Luster file system.

도 7에 나타낸 바와 같이, 제2 선택 가능한 옵션(503)("Lustre 관리")을 선택하면, 그래픽 사용자 인터페이스(501)는 사용자가 소유한 모든 파일 시스템을 표시하는 상부 윈도우(710a) 및 사용자가 소유하지 않는 다른 파일 시스템을 표시하는 하부 윈도우(710b)를 제공한다. 도 7에 나타낸 그래픽 사용자 인터페이스(501)는 또한, 제1 선택 가능한 옵션(701)("파일 시스템을 마운트"로 표시됨), 제2 선택 가능한 옵션(702)("S3에 데이터 저장"으로 표시됨), 제3 선택 가능한 옵션(703)("저장소 태스크 보여주기"로 표시됨), 및 제4 선택 가능한 옵션(704)("Lustre FSx 삭제"로 표시됨)를 포함하는 선택 가능한 옵션 메뉴를 포함한다. 파일 시스템 생성이 완료되면 사용자는 파일을 액세스하기 위해 파일 시스템을 O/S 레벨에 마운트해야 한다. 파일 시스템을 마운트하기 위해, 사용자는 마운트할 파일 시스템을 선택하고, 추가로 제1 선택 가능한 옵션(701)("파일 시스템을 마운트")을 선택(예, 클릭)할 수 있다. 데이터 분석 작업이 실행 중일 때 새로 생성된 파일이 있거나 기존 파일이 수정될 수 있다. 새로운 데이터 또는 변경된 데이터를 영구적으로 만들기 위해, 데이터는 데이터 저장소(예, S3)에 저장된다. 이 작업을 위해, 사용자는 저장할 파일 시스템을 선택하고, 제2 선택 가능한 옵션(702)("데이터세트를 S3에 저장")을 추가로 선택(예, 클릭)할 수 있다. 저장소 태스크의 상태(예, 데이터세트를 S3에 저장)를 확인하기 위해, 사용자는 '데이터세트를 S3에 저장' 작업이 수행되는 파일 시스템을 선택하고, 추가로 제3 선택 가능한 옵션(703)("저장소 태스크 보여주기")을 선택(예, 클릭)하여 스크린 나열 저장소 작업 상태를 표시할 수 있다. 파일 시스템에서 데이터 분석이 완료되면, 사용자는 파일 시스템을 삭제하여 비용을 절약할 수 있다. 파일 시스템을 삭제하기 위해, 사용자는 삭제할 파일 시스템을 선택하고, 추가로 제4 선택 가능한 옵션("Lustre FSx를 삭제")을 선택(예: 클릭)할 수 있다. 이들 선택 사항 중 후자는 선택된 파일 시스템을 삭제하기 전에 "데이터세트를 S3에 저장"(702)을 실행하도록 사용자에게 프롬프팅할 수 있다. 확인 후, 파일 시스템 삭제를 시작할 수 있다.As shown in Figure 7, upon selecting the second selectable option 503 (“Lustre Management”), the graphical user interface 501 opens with a top window 710a displaying all file systems owned by the user and a top window 710a displaying all file systems owned by the user. A lower window 710b is provided to display other file systems that are not owned. The graphical user interface 501 shown in FIG. 7 also includes a first selectable option 701 (denoted “Mount file system”) and a second selectable option 702 (denoted “Save data to S3”). , a third selectable option 703 (denoted “Show Storage Tasks”), and a fourth selectable option 704 (denoted “Delete Luster FSx”). Once file system creation is complete, users must mount the file system at the O/S level to access files. To mount a file system, the user selects the file system to be mounted and may further select (e.g. click) the first selectable option 701 (“Mount file system”). When a data analysis job is running, new files may be created or existing files may be modified. To make new or changed data persistent, the data is stored in a data storage (e.g. S3). To do this, the user may select a file system to save to and may further select (e.g., click) a second selectable option 702 (“Save dataset to S3”). To check the status of a storage task (e.g., save dataset to S3), the user selects the file system on which the 'Save dataset to S3' operation is performed, and further selects a third selectable option 703 ( You can display the status of repository tasks on the screen listing by selecting (e.g., clicking) "Show repository tasks". Once data analysis from the file system is complete, users can save money by deleting the file system. To delete a file system, the user can select the file system to be deleted and further select (e.g. click) a fourth selectable option (“Delete Luster FSx”). The latter of these options may prompt the user to “Save dataset to S3” 702 before deleting the selected file system. After confirmation, you can start deleting the file system.

추가 설명을 위해, 도 4b는 본 개시의 일부 구현예에 따라 클라우드 플랫폼(114)의 클라우드 기반 스토리지 시스템(418)의 예를 제시한다. 일 구현예에서, DSM 유틸리티(104)는 클라우드 스토리지 시스템(418)과 통신할 수 있고, 일 구현예에서는 도 4b에 나타낸 하나 이상의 구성 요소(예, 스토리지 컨트롤러 애플리케이션, 소프트웨어 데먼 등)에서 구현될 수 있다. 도 4b에 도시된 예에서, 클라우드 기반 스토리지 시스템(418)은, 예를 들어 Amazon Web Services (AWS')TM, Microsoft AzureTM, Google Cloud PlatformTM, IBM CloudTM, Oracle CloudTM 등과 같은 클라우드 플랫폼(114)에서 완전히 생성된다. 도 4b에 도시된 클라우드 기반 스토리지 시스템(418)은 두 개의 클라우드 컴퓨팅 인스턴스(420, 422)를 포함하고, 이는 스토리지 컨트롤러 애플리케이션(424, 426)의 실행을 지원하는 데 사용된다. 클라우드 컴퓨팅 인스턴스(420, 422)는, 예를 들어 스토리지 컨트롤러 애플리케이션(424, 426)과 같은 소프트웨어 애플리케이션의 실행을 지원하기 위해 클라우드 플랫폼(114)에 의해 제공될 수 있는 클라우드 컴퓨팅 리소스의 인스턴스(예, 가상 머신)로서 구현될 수 있다. 예를 들어, 클라우드 컴퓨팅 인스턴스(420, 422) 각각은 Azure VM에서 실행될 수 있으며, 여기서 각각의 Azure VM은 캐시(예, 읽기 캐시)로서 활용될 수 있는 고속 임시 스토리지를 포함할 수 있다. 일 구현예에서, 클라우드 컴퓨팅 인스턴스(420, 422)는 Amazon Elastic Compute Cloud ('EC2') 인스턴스로 구현될 수 있다. 이러한 예에서, 스토리지 컨트롤러 애플리케이션(424, 426)을 포함하는 Amazon Machine Image('AMI')는, 스토리지 컨트롤러 애플리케이션(424, 426)을 실행할 수 있는 가상 머신을 생성하고 구성하도록 부팅될 수 있다.For further illustration, FIG. 4B presents an example of a cloud-based storage system 418 of cloud platform 114 in accordance with some implementations of the present disclosure. In one implementation, DSM utility 104 may communicate with cloud storage system 418, and in one implementation may be implemented in one or more components shown in FIG. 4B (e.g., storage controller application, software daemon, etc.). there is. In the example shown in FIG. 4B, cloud-based storage system 418 is a cloud platform (e.g., Amazon Web Services (AWS') TM , Microsoft Azure TM , Google Cloud Platform TM , IBM Cloud TM , Oracle Cloud TM, etc.). 114) is completely created. The cloud-based storage system 418 shown in FIG. 4B includes two cloud computing instances 420 and 422, which are used to support execution of storage controller applications 424 and 426. Cloud computing instances 420, 422 are instances of cloud computing resources (e.g., that may be provided by cloud platform 114 to support execution of software applications, for example, storage controller applications 424, 426). It can be implemented as a virtual machine). For example, each of cloud computing instances 420, 422 may run on an Azure VM, where each Azure VM may include high-speed temporary storage that may be utilized as a cache (e.g., read cache). In one implementation, cloud computing instances 420 and 422 may be implemented as Amazon Elastic Compute Cloud ('EC2') instances. In this example, an Amazon Machine Image ('AMI') containing the storage controller applications 424, 426 may be booted to create and configure a virtual machine capable of running the storage controller applications 424, 426.

도 4b에 도시된 예시적인 방법에서, 스토리지 컨트롤러 애플리케이션(424, 426)은, 실행될 때 다양한 저장 태스크를 수행하는 컴퓨터 프로그램 명령어의 모듈로서 구현될 수 있다. 예를 들어, 스토리지 컨트롤러 애플리케이션(424, 426)은 컴퓨터 프로그램 명령어의 모듈로서 구현될 수 있고, 이는 실행시, 클라우드 기반 스토리지 시스템(418)에 데이터를 쓰는 것, 클라우드 기반 스토리지 시스템(418)으로부터 데이터를 지우는 것, 클라우드 기반 스토리지 시스템(418)으로부터 데이터를 검색하는 것, 디스크 활용도 및 성능 모니터링하는 것, 및 보고 중복 작업을 수행하는 것과 연관된 동일한 태스크를 수행하고, 예컨대 RAID 또는 RAID와 유사한 데이터 중복성 운영, 데이터 압축, 데이터 암호화, 데이터 중복 제거, 기타 등을 수행한다. 각각 스토리지 컨트롤러 애플리케이션(424, 426)을 포함하는 두 개의 클라우드 컴퓨팅 인스턴스(420, 422)가 있기 때문에, 일부 구현예에서, 하나의 클라우드 컴퓨팅 인스턴스(420)는 전술한 바와 같이 일차 컨트롤러로서 작동할 수 있는 반면에 다른 클라우드 컴퓨팅 인스턴스(422)는 전술한 바와 같이 이차 컨트롤러로서 작동할 수 있다. 도 4b에 도시된 스토리지 컨트롤러 애플리케이션(424, 426)은 별개의 EC2 인스턴스와 같은 상이한 클라우드 컴퓨팅 인스턴스(420, 422) 내에서 실행되는 동일한 소스 코드를 포함할 수 있다.In the example method shown in FIG. 4B, storage controller applications 424, 426 may be implemented as modules of computer program instructions that, when executed, perform various storage tasks. For example, storage controller applications 424, 426 may be implemented as modules of computer program instructions that, when executed, write data to, and retrieve data from, cloud-based storage system 418. performs the same tasks associated with erasing data, retrieving data from the cloud-based storage system 418, monitoring disk utilization and performance, and performing reporting redundancy operations, such as RAID or RAID-like data redundancy operations. , data compression, data encryption, data deduplication, etc. Because there are two cloud computing instances 420, 422, each containing a storage controller application 424, 426, in some implementations, one cloud computing instance 420 may act as the primary controller as described above. While other cloud computing instances 422 may act as secondary controllers as described above. The storage controller applications 424 and 426 shown in FIG. 4B may include identical source code running within different cloud computing instances 420 and 422, such as separate EC2 instances.

다른 구현예는 일차 및 이차 컨트롤러를 포함하지 않을 수 있고 이는 본 개시의 범주 내에 있다. 예를 들어, 각각의 클라우드 컴퓨팅 인스턴스(420, 422)는 클라우드 기반 스토리지 시스템(418)에 의해 지원되는 어드레스 공간의 일부에 대한 일차 컨트롤러로서 작동할 수 있고, 각각의 클라우드 컴퓨팅 인스턴스(420, 422)는 일차 컨트롤러로서 작동할 수 있고, 여기서 클라우드 기반 스토리지 시스템(418)에 대한 I/O 작동의 서비스는 다른 방식으로 나누어지는 식으로 작동할 수 있다. 실제로, 비용 절감이 성능 요구보다 우선순위가 높아질 수 있는 다른 구현예에서, 스토리지 컨트롤러 애플리케이션을 포함한 단일 클라우드 컴퓨팅 인스턴스만이 존재할 수 있다.Other implementations may not include primary and secondary controllers and are within the scope of this disclosure. For example, each cloud computing instance 420, 422 may act as a primary controller for a portion of the address space supported by cloud-based storage system 418, and each cloud computing instance 420, 422 may operate as a primary controller, where servicing of I/O operations to the cloud-based storage system 418 may be divided in different ways. In fact, in other implementations where cost savings may be prioritized over performance needs, there may be only a single cloud computing instance containing the storage controller application.

도 4b에 도시된 클라우드 기반 스토리지 시스템(418)은 로컬 스토리지(430, 434 및 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B 및 440n)를 포함한다. 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n)는, 예를 들어 소프트웨어 애플리케이션의 실행을 지원하기 위해 클라우드 플랫폼(114)에 의해 제공될 수 있는 클라우드 컴퓨팅 리소스의 인스턴스로서 구현될 수 있다. 도 4b의 클라우드 컴퓨팅 인스턴스(440A, 440B 및 440n)는 전술한 클라우드 컴퓨팅 인스턴스(420, 422)와 상이할 수 있는데, 그 이유는 도 4b의 클라우드 컴퓨팅 인스턴스(440A, 440B 및 440n)는 로컬 스토리지(430, 434, 및 438) 리소스를 갖는 반면, 스토리지 컨트롤러 애플리케이션(424, 426)의 실행을 지원하는 클라우드 컴퓨팅 인스턴스(420, 422)는 로컬 스토리지 리소스를 가질 필요는 없다. 로컬 스토리지(430, 434 및 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B 및 440n)는, 예를 들어 하나 이상의 SSD를 포함하는 EC2 M5 인스턴스로서, 하나 이상의 SSD를 포함하는 EC2 R5 인스턴스로서, 하나 이상의 SSD를 포함하는 EC2 I3 인스턴스로서, 구현될 수 있다. 일부 구현예에서, 로컬 스토리지(430, 434, 및 438)는, 하드 디스크 드라이브를 사용하는 스토리지보다는 솔리드 스테이트 스토리지(예, SSD)로서 구현될 수 있다. 핫 스토리지(401)는 하나 이상의 로컬 스토리지(430, 434, 및 438)를 포함할 수 있다. Cloud-based storage system 418 shown in FIG. 4B includes cloud computing instances 440A, 440B, and 440n with local storage 430, 434, and 438. Cloud computing instances 440A, 440B, and 440n may be implemented as instances of cloud computing resources that may be provided by cloud platform 114, for example, to support execution of software applications. The cloud computing instances 440A, 440B, and 440n of FIG. 4B may be different from the cloud computing instances 420, 422 described above because the cloud computing instances 440A, 440B, and 440n of FIG. 4B may have local storage ( 430, 434, and 438) resources, while cloud computing instances 420, 422 that support execution of storage controller applications 424, 426 do not need to have local storage resources. Cloud computing instances 440A, 440B, and 440n with local storage 430, 434, and 438 may include, for example, an EC2 M5 instance with one or more SSDs, an EC2 R5 instance with one or more SSDs, one or more It can be implemented as an EC2 I3 instance with SSD. In some implementations, local storage 430, 434, and 438 may be implemented as solid state storage (eg, SSD) rather than storage using hard disk drives. Hot storage 401 may include one or more local storages 430, 434, and 438.

도 4b에 도시된 예에서, 로컬 스토리지(430, 434, 및 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n) 각각은 소프트웨어 데몬(428, 432, 436)을 포함할 수 있고, 이는 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n)에 의해 실행될 때, 마치 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n)가 물리적 스토리지 장치(예, 하나 이상의 SSD)인 것처럼 자신을 스토리지 컨트롤러 애플리케이션(424, 426)에 제공할 수 있다. 이러한 예에서, 소프트웨어 데먼(428, 432, 436)은, 스토리지 컨트롤러 애플리케이션(424, 426)이 스토리지 장치에 전송할 동일한 명령을 송신하고 수신할 수 있도록, 스토리지 장치에 일반적으로 포함될 컴퓨터 프로그램 명령어와 유사한 컴퓨터 프로그램 명령어를 포함할 수 있다. 이러한 방식으로, 스토리지 컨트롤러 애플리케이션(424, 426)은 전술한 스토리지 시스템에서 컨트롤러에 의해 실행될 코드와 동일하거나 실질적으로 동일한 코드를 포함할 수 있다. 이들 및 유사한 구현예에서, 로컬 스토리지(430, 434, 및 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n)와 스토리지 컨트롤러 애플리케이션(424, 426) 간의 통신은, iSCSI, TCP를 통한 NVMe, 메시징, 사용자 지정 프로토콜, 또는 일부 다른 메커니즘을 이용할 수 있다.In the example shown in FIG. 4B, each of cloud computing instances 440A, 440B, and 440n with local storage 430, 434, and 438 may include software daemons 428, 432, and 436, which When executed by the computing instances 440A, 440B, and 440n, the cloud computing instances 440A, 440B, and 440n present themselves to the storage controller applications 424, 426 as if the cloud computing instances 440A, 440B, and 440n were physical storage devices (e.g., one or more SSDs). can be provided. In this example, the software daemons 428, 432, and 436 are computer-like computer program instructions that would typically be included in a storage device so that the storage controller applications 424, 426 can send and receive the same commands to send to the storage device. May contain program instructions. In this manner, the storage controller applications 424, 426 may include code that is identical or substantially identical to code to be executed by the controller in the storage system described above. In these and similar implementations, communications between cloud computing instances 440A, 440B, and 440n with local storage 430, 434, and 438 and storage controller applications 424, 426 include iSCSI, NVMe over TCP, You could use messaging, a custom protocol, or some other mechanism.

도 4b에 도시된 예에서, 로컬 스토리지(430, 434, 및 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n) 각각은, 예를 들어 Amazon Elastic Block Store ('EBS') 볼륨과 같은 클라우드 플랫폼(114)에 의해 제공되는 블록 스토리지(442, 444, 446)에 결합될 수도 있다. 핫 스토리지(401)는 블록 스토리지(442, 444, 및 446) 중 하나 이상을 포함할 수 있다. 이러한 예에서, 클라우드 플랫폼(114)에 의해 제공되는 블록 스토리지(442, 444, 446)는 전술한 NVRAM 장치가 사용되는 방식과 유사한 방식으로 이용될 수 있고, 이 때 특정 클라우드 컴퓨팅 인스턴스(440A, 440B, 및 440n) 내에서 실행하는 소프트웨어 데먼(428, 432, 436)(또는 일부 다른 모듈)은, 데이터 쓰기 요청을 수신하면 부착된 EBS 볼륨에 대한 데이터 쓰기뿐만 아니라 로컬 스토리지(430, 434, 438)에 대한 데이터 쓰기를 개시할 수 있다. 일부 대안적인 구현예에서, 데이터는 특정 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n) 내의 로컬 스토리지(430, 434, 438) 리소스에만 기록될 수 있다. 대안적인 구현예에서, 클라우드 플랫폼(114)에 의해 NVRAM으로 제공되는 블록 스토리지(442, 444, 446)를 사용하기 보다는, 로컬 스토리지(430, 434, 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n) 각각에 대한 실제 RAM을 사용하여, EBS 볼륨을 NVRAM으로 사용하는 것과 연관되는 네트워크 이용 비용을 감소시킬 수 있다. 또 다른 구현예에서, 하나 이상의 Azure Ultra Disk와 같은 고성능 블록 스토리지 리소스가 NVRAM으로서 사용될 수 있다.In the example shown in Figure 4B, cloud computing instances 440A, 440B, and 440n each have local storage 430, 434, and 438, each of which has a It may also be coupled to block storage 442, 444, and 446 provided by platform 114. Hot storage 401 may include one or more of block storage 442, 444, and 446. In this example, block storage 442, 444, and 446 provided by cloud platform 114 may be utilized in a manner similar to the manner in which the NVRAM devices described above are used, with particular cloud computing instances 440A and 440B. , and 440n), the software daemon 428, 432, 436 (or some other module) running within the local storage 430, 434, 438, as well as the data write to the attached EBS volume, upon receiving a data write request. Data writing can be initiated. In some alternative implementations, data may be written only to local storage 430, 434, 438 resources within a particular cloud computing instance 440A, 440B, 440n. In an alternative implementation, rather than using block storage 442, 444, 446 provided as NVRAM by cloud platform 114, cloud computing instances 440A, 440B, have local storage 430, 434, 438. 440n) By using physical RAM for each, network utilization costs associated with using EBS volumes as NVRAM can be reduced. In another implementation, high-performance block storage resources, such as one or more Azure Ultra Disks, may be used as NVRAM.

스토리지 컨트롤러 애플리케이션(424, 426)은, 로컬 스토리지(430, 434, 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n) 중 하나 이상에 데이터의 중복 제거, 암호화, 또는 가능하게는 업데이트된 버전을 쓰기 위한 요청을 궁극적으로 전송하기 전에, 요청에 포함된 데이터의 중복 제거, 요청에 포함된 데이터 압축, 요청에 포함된 데이터의 쓰기 위치 결정 등과 같은 다양한 태스크를 수행하는 데 사용될 수 있다. 클라우드 컴퓨팅 인스턴스(420, 422) 중 어느 하나는, 일부 구현예에서, 클라우드 기반 스토리지 시스템(418)로부터 데이터 읽기 요청을 수신할 수 있고, 궁극적으로 로컬 스토리지(430, 434, 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n) 중 하나 이상에 데이터 읽기 요청을 전송할 수 있다.Storage controller applications 424, 426 provide deduplication, encryption, or possibly updated versions of data to one or more of the cloud computing instances 440A, 440B, 440n with local storage 430, 434, 438. It can be used to perform a variety of tasks, such as deduplicating the data contained in the request, compressing the data contained in the request, determining where to write the data contained in the request, etc., before ultimately transmitting the request for writing. Either of the cloud computing instances 420, 422 may, in some implementations, receive data read requests from the cloud-based storage system 418, ultimately cloud computing with local storage 430, 434, 438. A data read request may be sent to one or more of the instances 440A, 440B, and 440n.

데이터 쓰기 요청이 로컬 스토리지(430, 434, 438)를 갖는 특정 클라우드 컴퓨팅 인스턴스(440A 440B, 440n)에 의해 수신되는 경우, 소프트웨어 데먼(428, 432, 436)은 자체 로컬 스토리지(430, 434, 438) 및 임의의 적절한 블록 스토리지(442, 444, 446)에 데이터를 쓸 뿐만 아니라 소프트웨어 데먼(428, 432, 436)은 또한, 특정 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 부착된 클라우드 객체 스토리지(448)에 데이터를 기록하도록 구성될 수 있다. 특정 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 부착된 클라우드 객체 스토리지(448)는, 예를 들어, Amazon Simple Storage Service('S3')로서 구현될 수 있다. 다른 구현예에서, 각각 스토리지 컨트롤러 애플리케이션(424, 426)을 포함하는 클라우드 컴퓨팅 인스턴스(420, 422)는, 클라우드 객체 스토리지(448) 및 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)의 로컬 스토리지(430, 434, 438)에서 데이터의 저장을 개시할 수 있다. 다른 구현예에서, 로컬 스토리지(430, 434, 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)(본원에서 '가상 드라이브'로도 지칭됨)와 클라우드 객체 스토리지(448) 모두를 사용하여 데이터를 저장하기 보다는, 영구 스토리지 레이어가 다른 방식으로 구현될 수 있다. 예를 들어, 하나 이상의 Azure Ultra 디스크가 (예를 들어, 데이터가 NVRAM 레이어에 기록된 후) 데이터를 영구적으로 저장하는 데 사용될 수 있다. 웜 스토리지(402)는 클라우드 객체 스토리지(448)를 포함할 수 있다. 따라서, 일 구현예에서, DSM 유틸리티(116)는 클라우드 객체 스토리지(448), 로컬 스토리지(430, 434, 438) 및/또는 블록 스토리지(442, 444, 및 446)와 통신할 수 있다. 본원에 설명된 바와 같이, DSM 유틸리티(116)는 사용자에 의한 분산 파일 시스템의 생성 및 웜 스토리지(402)로부터 핫 스토리지(401)로의 데이터세트의 검색을 허용하거나 달리 용이하게 하도록 구성될 수 있다. 이러한 방식으로, DSM 유틸리티(116)는 클라우드 객체 스토리지(448), 로컬 스토리지(430, 434, 438) 및/또는 블록 스토리지(442, 444, 및 446) 상에 파일 시스템을 생성할 수 있게 한다. DSM 유틸리티(116)는 클라우드 객체 스토리지(448)로부터 로컬 스토리지(430, 434, 438)로/로부터 및/또는 블록 스토리지(442, 444, 및 446)로 데이터세트를 전송하는 것을 지원한다.When a data write request is received by a particular cloud computing instance 440A 440B, 440n with local storage 430, 434, 438, the software daemon 428, 432, 436 writes its own local storage 430, 434, 438. ) and any suitable block storage (442, 444, 446), the software daemons (428, 432, 436) also write data to cloud object storage (440A, 440B, 440n) attached to a particular cloud computing instance (440A, 440B, 440n). 448) may be configured to record data. Cloud object storage 448 attached to a particular cloud computing instance 440A, 440B, 440n may be implemented as, for example, Amazon Simple Storage Service ('S3'). In another implementation, cloud computing instances 420, 422, including storage controller applications 424, 426, respectively, may include cloud object storage 448 and local storage 430 of cloud computing instances 440A, 440B, and 440n. Storage of data may begin at 434, 438). In another implementation, both cloud computing instances 440A, 440B, 440n (also referred to herein as “virtual drives”) with local storage 430, 434, 438 and cloud object storage 448 are used to store data. Rather than storing, the persistent storage layer can be implemented in other ways. For example, one or more Azure Ultra disks can be used to permanently store data (e.g., after the data has been written to the NVRAM layer). Warm storage 402 may include cloud object storage 448. Accordingly, in one implementation, DSM utility 116 may communicate with cloud object storage 448, local storage 430, 434, 438, and/or block storage 442, 444, and 446. As described herein, DSM utility 116 may be configured to allow or otherwise facilitate the creation of a distributed file system by a user and retrieval of datasets from warm storage 402 to hot storage 401. In this way, DSM utility 116 allows creating file systems on cloud object storage 448, local storage 430, 434, 438, and/or block storage 442, 444, and 446. DSM utility 116 supports transferring datasets from cloud object storage 448 to/from local storage 430, 434, 438 and/or block storage 442, 444, and 446.

클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 및 블록 스토리지(442, 444, 446) 리소스는 블록 레벨 액세스를 지원할 수 있지만, 특정 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 부착된 클라우드 객체 스토리지(448)는 객체 기반 액세스만을 지원한다. 따라서, 소프트웨어 데먼(428, 432, 436)은 데이터의 블록을 취하고, 이들 블록을 객체로 패키징하고, 특정 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 부착된 클라우드 객체 스토리지(448)에 객체를 쓰도록 구성될 수 있다.Local storage (430, 434, 438) resources and block storage (442, 444, 446) resources utilized by cloud computing instances (440A, 440B, 440n) may support block-level access, but may support block-level access by specific cloud computing instances (440A). , 440B, 440n), the cloud object storage 448 attached supports only object-based access. Accordingly, software daemons 428, 432, and 436 take blocks of data, package these blocks into objects, and write the objects to cloud object storage 448 attached to a particular cloud computing instance 440A, 440B, and 440n. It can be configured as follows.

클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 및 블록 스토리지(442, 444, 446) 리소스에 데이터가 1 MB 블록 내에 기록되는 예를 생각한다. 이러한 예에서, 클라우드 기반 스토리지 시스템(418)의 사용자가, 스토리지 컨트롤러 애플리케이션(424, 426)에 의해 압축되고 중복 제거된 후에 5 MB의 데이터를 쓸 필요가 있는 데이터 쓰기 요청을 보내는 것으로 가정한다. 이러한 예에서, 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 및 블록 스토리지(442, 444, 446) 리소스에 데이터를 쓰는 것은, 1 MB 크기의 5개의 블록이 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 및 블록 스토리지(442, 444, 446) 리소스에 쓰여지기 때문에, 비교적 간단하다. 이러한 예에서, 소프트웨어 데먼(428, 432, 436)은 또한, 데이터의 별개의 1 MB 청크를 포함하는 다섯 개의 객체를 생성하도록 구성될 수 있다. 이와 같이, 일부 구현예에서, 클라우드 객체 스토리지(448)에 기록되는 각각의 객체는 크기가 동일할 수 있다(또는 거의 동일할 수 있다). 이러한 예에서, 데이터 자체와 연관된 메타데이터가 각 객체에 포함될 수 있다(예를 들어, 객체의 첫 1 MB는 데이터이고 나머지 부분은 데이터와 연관된 메타데이터임). 클라우드 객체 스토리지(448)는 클라우드 기반 스토리지 시스템(418)에 통합되어 클라우드 기반 스토리지 시스템(418)의 내구성을 증가시킬 수 있다.Consider an example where data is written in 1 MB blocks to local storage (430, 434, 438) resources and block storage (442, 444, 446) resources utilized by cloud computing instances (440A, 440B, 440n). In this example, assume a user of cloud-based storage system 418 sends a data write request that requires writing 5 MB of data after being compressed and deduplicated by storage controller applications 424, 426. In this example, writing data to local storage (430, 434, 438) resources and block storage (442, 444, 446) resources utilized by cloud computing instances (440A, 440B, 440n) would result in 5 1 MB size This is relatively simple, since blocks are written to local storage (430, 434, 438) resources and block storage (442, 444, 446) resources utilized by cloud computing instances (440A, 440B, 440n). In this example, software daemons 428, 432, and 436 may also be configured to create five objects containing separate 1 MB chunks of data. As such, in some implementations, each object written to cloud object storage 448 may be the same (or approximately the same) in size. In this example, metadata associated with the data itself may be included in each object (e.g., the first 1 MB of the object is the data and the remaining portion is metadata associated with the data). Cloud object storage 448 may be integrated into cloud-based storage system 418 to increase durability of cloud-based storage system 418.

일부 구현예에서, 클라우드 기반 스토리지 시스템(418)에 의해 저장되는 모든 데이터는, 1) 클라우드 객체 스토리지(448) 및 2) 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 또는 블록 스토리지(442, 444, 446) 리소스 중 적어도 하나에 저장될 수 있다. 이러한 구현예에서, 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 및 블록 스토리지(442, 444, 446) 리소스는 캐시로서 효과적으로 작동할 수 있고, 상기 캐시는 클라우드 인스턴스(440A, 440B, 440n)에게 클라우드 객체 스토리지(448)에 액세스하는 것을 요구하지 않으면서 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 모든 데이터 기록이 서비스될 수 있도록 또한 S3에 저장되는 모든 데이터를 일반적으로 포함한다. 그러나, 다른 구현예에서, 클라우드 기반 스토리지 시스템(418)에 의해 저장되는 모든 데이터는, 클라우드 객체 스토리지(448)에 저장될 수 있지만, 클라우드 기반 스토리지 시스템(418)에 의해 저장되는 모든 데이터보다 적은 데이터는, 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 이용되는 로컬 스토리지(430, 434, 438) 리소스 또는 블록 스토리지(442, 444, 446) 리소스 중 적어도 하나에 저장될 수 있다. 이러한 예에서, 클라우드 기반 스토리지 시스템(418)에 의해 저장되는 데이터의 하위 집합을 결정하는 데 사용될 수 다양한 정책은, 1) 클라우드 객체 스토리지(448) 및 2) 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 의해 활용되는 로컬 스토리지(430, 434, 438) 리소스 또는 블록 스토리지(442, 444, 446) 리소스 중 적어도 하나에 남을 수 있다.In some implementations, all data stored by cloud-based storage system 418 is stored in 1) cloud object storage 448 and 2) local storage 430 utilized by cloud computing instances 440A, 440B, 440n. It may be stored in at least one of resources 434, 438) or block storage resources 442, 444, and 446. In this implementation, the local storage (430, 434, 438) resources and block storage (442, 444, 446) resources utilized by the cloud computing instances (440A, 440B, 440n) can effectively operate as a cache, The cache is also stored in S3 so that all data records can be served by cloud computing instances 440A, 440B, 440n without requiring cloud instances 440A, 440B, 440n to access cloud object storage 448. It generally includes all data available. However, in another implementation, all of the data stored by cloud-based storage system 418 may be stored in cloud object storage 448, but less data than all of the data stored by cloud-based storage system 418. May be stored in at least one of local storage (430, 434, 438) resources or block storage (442, 444, 446) resources used by the cloud computing instances (440A, 440B, 440n). In this example, various policies may be used to determine the subset of data stored by cloud-based storage system 418: 1) cloud object storage 448 and 2) cloud computing instances 440A, 440B, 440n. It may remain in at least one of the local storage (430, 434, 438) resources or the block storage (442, 444, 446) resources utilized by.

클라우드 기반 스토리지 시스템(418)내에서 실행되는 컴퓨터 프로그램 명령어의 하나 이상의 모듈(예, 자체 EC2 인스턴스에서 실행되는 모니터링 모듈)은 로컬 스토리지(430, 434, 438)를 갖는 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n) 중 하나 이상의 장애를 처리하도록 설계될 수 있다. 이러한 예에서, 모니터링 모듈은, 로컬 스토리지를 갖는 하나 이상의 신규 클라우드 컴퓨팅 인스턴스를 생성함으로써, 실패한 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)에 저장된 데이터를 클라우드 클라우드 객체 스토리지(448)로부터 검색함으로써, 그리고 신규 생성된 클라우드 컴퓨팅 인스턴스 상에 로컬 스토리지 내 클라우드 객체 스토리지 스토리지(448)로부터 검색된 데이터를 저장함으로써, 로컬 스토리지(430, 434, 438)를 갖는 하나 이상의 클라우드 컴퓨팅 인스턴스(440A, 440B, 440n)의 장애를 처리할 수 있다.One or more modules of computer program instructions executing within the cloud-based storage system 418 (e.g., a monitoring module executing on its own EC2 instance) may be configured to include a cloud computing instance 440A, 440B, or 440n) may be designed to handle one or more failures. In this example, the monitoring module may be configured to: create one or more new cloud computing instances with local storage, retrieve data stored in failed cloud computing instances 440A, 440B, and 440n from cloud object storage 448, and By storing data retrieved from the cloud object storage storage 448 in local storage on the created cloud computing instance, failure of one or more cloud computing instances 440A, 440B, 440n with local storage 430, 434, and 438 is prevented. It can be handled.

클라우드 기반 스토리지 시스템(418)의 다양한 성능 양태는 (예를 들어, EC2 인스턴스에서 실행되는 모니터링 모듈에 의해) 모니터링될 수 있어서, 클라우드 기반 스토리지 시스템(418)은 필요에 따라 스케일 업되거나 스케일 아웃될 수 있다. 예를 들어, 스토리지 컨트롤러 애플리케이션(424, 426)의 실행을 지원하는 데 사용되는 클라우드 컴퓨팅 인스턴스(420, 422)가 사이즈 미만이거나 클라우드 기반 스토리지 시스템(418)의 사용자에 의해 발급되는 I/O 요청을 서비스하기에 충분하지 않은 경우, 모니터링 모듈은 새롭고 보다 강력한 클라우드 컴퓨팅 인스턴스(예, 더 많은 처리 능력, 더 많은 메모리, 기타를 포함하는 유형의 클라우드 컴퓨팅 인스턴스 등 …)를 생성할 수 있고, 이는 스토리지 컨트롤러 애플리케이션을 포함하여 더 강력한 클라우드 컴퓨팅 인스턴스가 일차 컨트롤러로 작동할 수 있도록 한다. 마찬가지로, 모니터링 모듈이, 스토리지 컨트롤러 애플리케이션(424, 426)의 실행을 지원하는 데 사용되는 클라우드 컴퓨팅 인스턴스(420, 422)가 사이즈 초과이거나 비용 절감이 더 작고 덜 강력한 클라우드 컴퓨팅 인스턴스로 바꾸어 얻을 수 있다라고 결정하는 경우, 상기 모니터링 모듈은, 스토리지 컨트롤러 애플리케이션을 포함하는 덜 강력한(그리고 덜 비싼) 신규 클라우드 컴퓨팅 인스턴스를 생성하여, 덜 강력한 신규 클라우드 컴퓨팅 인스턴스가 일차 컨트롤러로 작동 시작할 수 있도록 한다.Various performance aspects of cloud-based storage system 418 can be monitored (e.g., by a monitoring module running on an EC2 instance) so that cloud-based storage system 418 can be scaled up or out as needed. there is. For example, the cloud computing instances 420, 422 used to support execution of storage controller applications 424, 426 are undersized or are unable to handle I/O requests issued by users of the cloud-based storage system 418. If this is not enough to service, the monitoring module can create a new, more powerful cloud computing instance (e.g., a type of cloud computing instance with more processing power, more memory, etc., etc.), which can be used by the storage controller. Allows more powerful cloud computing instances, including applications, to act as primary controllers. Likewise, the monitoring module may indicate that the cloud computing instances 420, 422 used to support execution of the storage controller applications 424, 426 are oversized or cost savings may be achieved by replacing them with smaller, less powerful cloud computing instances. If determined, the monitoring module creates a new, less powerful (and less expensive) cloud computing instance containing a storage controller application, allowing the new, less powerful cloud computing instance to start operating as the primary controller.

도 1로 돌아가면, 클라우드 플랫폼(114)은 (간략화를 위해 도 1에 도시되지 않은) 복수의 연산 노드를 포함할 수 있다. 복수의 연산 노드는 클라우드 플랫폼(114)의 스토리지 시스템과 통신한다. 복수의 연산 노드는 하나 이상의 처리 플랫폼의 각각의 처리 장치를 포함할 수 있다. 예를 들어, 복수의 연산 노드는 프로세서 및 메모리를 각각 갖는 각각의 가상 머신(VM)을 포함할 수 있지만, 수많은 다른 구성이 가능하다. 복수의 연산 노드는 추가적으로 또는 대안적으로 Amazon Web Services(AWS) 시스템과 같은 클라우드 인프라의 일부일 수 있다. 연산 노드를 제공하는 데 사용될 수 있는 클라우드 기반 시스템의 다른 예는 Google 클라우드 플랫폼(GCP) 및 Microsoft Azure를 포함한다. 복수의 연산 노드는, 일부 구현예에서, 복수의 연산 노드 중 각각의 하나와 연관된 하나 이상의 사용자 각각을 대신하여, 하나 이상의 애플리케이션 프로그램의 실행과 같은 연산 서비스를 예시적으로 제공한다. 복수의 연산 노드는 병렬 연산을 위해 구성될 수 있다.Returning to Figure 1, cloud platform 114 may include a plurality of computational nodes (not shown in Figure 1 for simplicity). A plurality of computational nodes communicate with a storage system of cloud platform 114. The plurality of computational nodes may include respective processing units of one or more processing platforms. For example, a plurality of compute nodes may include each virtual machine (VM), each having a processor and memory, but numerous other configurations are possible. The plurality of compute nodes may additionally or alternatively be part of a cloud infrastructure, such as an Amazon Web Services (AWS) system. Other examples of cloud-based systems that can be used to provide compute nodes include Google Cloud Platform (GCP) and Microsoft Azure. The plurality of computing nodes illustratively provide computational services, such as execution of one or more application programs, in some implementations, on behalf of each of one or more users associated with each one of the plurality of computing nodes. Multiple computation nodes may be configured for parallel computation.

일 구현예에서, 클라우드 플랫폼(114)은 데이터 분석 시스템의 일부일 수 있다. 예를 들어, 클라우드 플랫폼(114)은 3D 구조 추정 서비스, 유전자 데이터 분석 서비스(예, GEWAS, PHEWAS 등) 등을 제공할 수 있다. 클라우드 플랫폼(114)은 하나 이상의 데이터 분석 모듈(118)을 통해 이러한 데이터 분석을 수행하도록 구성될 수 있다. 데이터 분석 모듈(들)(118)은 연산 모듈(120)을 활용하도록 구성될 수 있다. 연산 모듈(120)은, GPU 기반 연산의 사용과 같이, 하나 이상의 프로세스/태스크의 실행을 제어하기 위해 데이터 분석 모듈(들)(118) 중 적어도 하나에 의해 사용될 수 있는 프로그램 템플릿을 생성하도록 구성될 수 있다. 데이터 분석 모듈(들)(118)은, 결과적인 3D 맵(예, 3D 모델)에서 표적의 추정된 3D 구조와 같은 데이터 분석 결과를 출력하도록 구성될 수 있다. 클라우드 플랫폼(114)은 원격 디스플레이 모듈(122)을 포함할 수도 있다. 원격 디스플레이 모듈(122)은, 원격 데스크탑 및 애플리케이션 스트리밍을 다른 컴퓨팅 장치(124)에 안전하게 전달하도록 구성되는, 고성능 원격 디스플레이 프로토콜을 포함할 수 있다. 예를 들어, 원격 디스플레이 모듈(122)은 NICE DCV로서 구성될 수 있다.In one implementation, cloud platform 114 may be part of a data analysis system. For example, the cloud platform 114 may provide 3D structure estimation services, genetic data analysis services (eg, GEWAS, PHEWAS, etc.), etc. Cloud platform 114 may be configured to perform such data analysis through one or more data analysis modules 118. Data analysis module(s) 118 may be configured to utilize computation module 120 . The computation module 120 may be configured to generate a program template that can be used by at least one of the data analysis module(s) 118 to control the execution of one or more processes/tasks, such as the use of GPU-based computation. You can. Data analysis module(s) 118 may be configured to output data analysis results, such as an estimated 3D structure of the target in the resulting 3D map (e.g., 3D model). Cloud platform 114 may include a remote display module 122. Remote display module 122 may include a high-performance remote display protocol configured to securely deliver remote desktop and application streaming to another computing device 124. For example, remote display module 122 may be configured as a NICE DCV.

일 구현예에서, 데이터 분석 모듈(118)은 이미지 재구성을 수행하도록 구성된 애플리케이션 프로그램(예, 재구성 모듈)일 수 있다. 이러한 애플리케이션 프로그램(예, 재구성 모듈)은 가능한 분자 구조를 결정하기 위해 재구성 기술을 실행하도록 구성될 수 있다. 가능한 분자 구조를 결정하기 위한 임의의 공지된 기술이 사용될 수 있다. 일 구현예에서, 애플리케이션 프로그램은 RELION을 포함할 수 있다. RELION은 경험적 베이즈 접근법을 적용하도록 구성된 오픈 소스 프로그램으로서, 정렬 및 재구성을 위한 최적의 푸리에 필터가 완전히 자동화된 방식으로 데이터로부터 유도된다.In one implementation, data analysis module 118 may be an application program (e.g., a reconstruction module) configured to perform image reconstruction. Such application programs (e.g., reconstruction modules) may be configured to perform reconstruction techniques to determine possible molecular structures. Any known technique for determining possible molecular structures can be used. In one implementation, the application program may include RELION. RELION is an open source program structured to apply an empirical Bayesian approach, where optimal Fourier filters for alignment and reconstruction are derived from the data in a fully automated manner.

연산 모듈(120)은 데이터 분석 모듈(118)에 대한 하나 이상의 작업 파라미터를 결정하도록 구성될 수 있다. 하나 이상의 작업 파라미터는 프로그램 템플릿으로서 지칭될 수 있다. 프로그램 템플릿은 애플리케이션 프로그램이 프로그램 및/또는 작업을 관리할 수 있게 한다. 프로그램 템플릿은 애플리케이션 프로그램이, 예를 들어 CPU 처리 시간 및/또는 GPU 처리 시간을 포함한 연산 리소스를 활용하게 할 수 있다. 예로서, 프로그램 템플릿은 애플리케이션 프로그램(예, 재구성 모듈)이 원시 데이터(104)(예, 원시 이미지 데이터 파일 및/또는 원시 비디오 데이터 파일)로부터 추출될 세부 사항 레벨을 결정할 수 있게 한다. 일 구현예에서, 작업 파라미터는 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 다수의 연산 노드, 원하는 벽시계 시간, 이들의 조합 등 중 하나 이상을 포함할 수 있다. 작업 파라미터의 특정 구성은 특정 프로그램 템플릿을 구성한다. 일례로, 프로그램 템플릿은 다수의 MPI, 다수의 스레드, 및 다수의 연산 노드에 의해 정의된다. 연산 모듈(120)은, 주어진 애플리케이션 프로그램의 주어진 하나 이상의 태스크 또는 프로세스 각각에 대해 포함하도록, 주어진 애플리케이션 프로그램 중 하나 이상의 부분에 대한 이러한 작업 파라미터를 결정하도록 구성될 수 있다. 도 8a는 프로그램 템플릿의 예를 나타낸다. 프로그램 템플릿은 각각의 템플릿 이름으로 식별된다. 일부 경우에, 템플릿 이름은 프로그램 템플릿을 포함하는 파일, 즉 프로그램 템플릿을 정의하는 하나 이상의 작업 파라미터를 포함하는 파일을 식별한다.Computation module 120 may be configured to determine one or more operating parameters for data analysis module 118. One or more task parameters may be referred to as program templates. Program templates allow application programs to manage programs and/or tasks. Program templates may allow application programs to utilize computational resources, including, for example, CPU processing time and/or GPU processing time. By way of example, a program template allows an application program (e.g., a reconstruction module) to determine the level of detail to be extracted from raw data 104 (e.g., a raw image data file and/or a raw video data file). In one implementation, the operation parameters may include one or more of a number of message passing interfaces (MPIs), a number of threads, a number of compute nodes, desired wall clock time, combinations thereof, etc. A specific configuration of task parameters constitutes a specific program template. In one example, a program template is defined by multiple MPIs, multiple threads, and multiple computational nodes. Computation module 120 may be configured to determine such operational parameters for one or more portions of a given application program, including for each of a given one or more tasks or processes of the given application program. Figure 8A shows an example of a program template. Program templates are identified by their respective template names. In some cases, the template name identifies the file that contains the program template, i.e., the file that contains one or more operational parameters that define the program template.

본원에서 설명된 바와 같이, 연산 모듈(120)은, 작업에 대한 MPI 및 스레드의 수가 클수록, 더 많은 성과가 얻어진다고 가정할 수 있다(예, 작업 완료에 소비되는 시간이 더 적음). 연산 모듈(120)은, 하이퍼스레딩된 코어를 불능화하는 것이 성능을 유익하게 할 수 있다고 가정할 수 있다. 연산 모듈(120)은 하이퍼스레딩된 코어가 비활성화된 다중 GPU 및 다중 코어 인프라 설정을 지정하는 하나 이상의 파라미터를 구현할 수 있다. 연산 모듈(120)은, 프로그램 애플리케이션 또는 그의 태스크에 대해 만족스러운(예를 들어, 최적 또는 거의 최적의) 프로그램 템플릿을 정의하는 하나 이상의 작업 파라미터를 결정하기 위해, 하나 이상의 시뮬레이션을 실행하도록 구성될 수 있다. 예를 들어, 연산 모듈(120)은 MPI의 수를 이용 가능한 GPU 카드의 수와, 스레드의 수를 노드 상의 이용 가능한 CPU 코어의 수와 동등하게 할 수 있다. 이러한 관찰에 이어서, 다중 노드 작업(예, 2, 4, 6, 12 노드 작업 등)의 조합이 수행될 수 있고 성능 벤치마크가 컴파일될 수 있다. 성능 벤치마크에 기초하여, 성능이 포화된 작업에 대한 MPI 스레드 및 연산 노드의 수의 조합이 결정될 수 있으며, 이는 이러한 병렬화를 넘어서는 성능 이득이 관찰되지 않음을 나타낸다.As described herein, compute module 120 may assume that the greater the MPI and number of threads for a task, the more performance is achieved (e.g., less time is spent completing the task). Computational module 120 may assume that disabling hyperthreaded cores may benefit performance. Compute module 120 may implement one or more parameters specifying multi-GPU and multi-core infrastructure settings with hyperthreaded cores disabled. Computation module 120 may be configured to run one or more simulations to determine one or more operational parameters that define a satisfactory (e.g., optimal or near-optimal) program template for a program application or its task. there is. For example, the computation module 120 may equalize the number of MPIs to the number of available GPU cards and the number of threads to the number of available CPU cores on the node. Following these observations, combinations of multi-node tasks (e.g., 2, 4, 6, 12 node tasks, etc.) can be performed and performance benchmarks can be compiled. Based on performance benchmarks, a combination of the number of MPI threads and compute nodes can be determined for a task that is performance saturated, indicating that no performance gain is observed beyond this parallelization.

일 구현예에서, GPU 대 CPU 기반 연산에서 작업을 실행하는 다중 대기열 모델이 개시된다. 일 구현예에서, 개시된 Cryo-EM 시스템은 이미지를 처리하기 위해 RELION 및 CryoSPARC 애플리케이션을 사용할 수 있다. 워크플로우는 이미지 처리를 완료하기 위한 일련의 작업(예, 8개의 작업)을 포함할 수 있다. 워크플로우는 연산적으로 가벼운 단계의 양 및 상당한 리소스(CPU 대 GPU)를 요구하는 단계의 양을 포함할 수 있다. 모든 워크플로우 처리를 위해 연산 노드를 GPU 기반 처리로 설정하는 것은, CPU 기반 처리만 필요한 작업을 처리할 때 비용이 많이 들 수 있다.In one implementation, a multi-queue model for executing tasks in GPU versus CPU based computation is disclosed. In one implementation, the disclosed Cryo-EM system can use RELION and CryoSPARC applications to process images. A workflow may include a series of tasks (e.g., eight tasks) to complete image processing. A workflow may include a number of steps that are computationally light and a number of steps that require significant resources (CPU vs. GPU). Setting up compute nodes for GPU-based processing for all workflow processing can be expensive when processing tasks that only require CPU-based processing.

일 구현예에서, 다중 대기열 시스템은 (HPC) 클러스터 상에서 구현될 수 있다. HPC 클러스터는, 함께 네트워크로 연결된 수백 또는 수천 개의 컴퓨팅 서버를 포함할 수 있다. 각 서버를 노드라고 지칭한다. 각 클러스터의 노드는 서로 병렬로 작동하여 처리 속도를 높여 고성능 연산을 제공한다. 열은 CPU 기반 컴퓨팅 인스턴스로 실행되도록 구성될 수 있고, 또 다른 열은 GPU 기반 컴퓨팅 인스턴스로 실행되도록 구성될 수 있다. 사용자는 특정 작업 및/또는 워크플로우를 실행하는 데 필요한 열을 선택할 수 있다.In one implementation, a multi-queue system may be implemented on a (HPC) cluster. An HPC cluster can include hundreds or thousands of computing servers networked together. Each server is referred to as a node. Nodes in each cluster operate in parallel with each other to increase processing speed and provide high-performance computation. A row may be configured to run as a CPU-based compute instance, and another row may be configured to run as a GPU-based compute instance. Users can select the columns needed to execute specific tasks and/or workflows.

일 구현예에서, 이용 가능한 최상의 리소스를 사용하기 위한 방법이 개시된다. 언급된 바와 같이, RELION은, Cryo-EM 데이터를 처리하고 단백질 구조 이미지를 생성하도록 구성된 오픈 소스 소프트웨어 패키지이다. 해당 소프트웨어의 실행은, 소프트웨어가 기본 컴퓨팅 리소스를 사용하는 방법을 결정하는, 다양한 작업 파라미터에 의존한다. 이들 작업 파라미터의 잘못된 구성은, 리소스 활용도 저하로 이어져 운영 비용을 상당 수준 및 작업 실행 시간까지 증가시킨다.In one implementation, a method for using the best available resources is disclosed. As mentioned, RELION is an open source software package configured to process Cryo-EM data and generate protein structural images. The execution of the software depends on various operational parameters that determine how the software uses underlying computing resources. Incorrect configuration of these task parameters leads to poor resource utilization, significantly increasing operating costs and task execution times.

모든 작업 유형(CPU 기반 작업 및 GPU 기반 작업)에 대한 클러스터의 Cryo-EM 작업 리소스 사용량은, 시간이 지남에 따라 결정될 수 있다. 개시된 방법은, 클러스터에서 이용 가능한 리소스를 효과적으로 관리하여 연산 및 분산 스토리지와 관련된 작업 실행 시간 및 비용을 감소시킬 수 있다. 개시된 방법은 작업 실행의 다수의 단계에서 적용될 수 있다. 개시된 방법은 시간이 지남에 따라 Cryo-EM 작업 리소스 사용 데이터를 관찰할 수 있고, 향후 사용을 위해 템플릿 파일에서 최적화된 패턴을 결정할 수 있다. 이러한 최적화된 패턴은 프로그램 템플릿, 즉 정의된 다수의 작업 파라미터 세트를 정의한다. 이러한 최적화된 패턴은 더 적은 연산 리소스를 사용함으로써 작업을 여러 배(예, 6 내지 8배) 더 빠르게 완료할 수 있게 한다.Cryo-EM task resource usage in a cluster for all task types (CPU-based tasks and GPU-based tasks) can be determined over time. The disclosed method can effectively manage available resources in a cluster to reduce task execution time and costs related to computation and distributed storage. The disclosed method can be applied at multiple stages of task execution. The disclosed method can observe Cryo-EM operational resource usage data over time and determine optimized patterns in template files for future use. These optimized patterns define program templates, i.e. a set of multiple defined operational parameters. These optimized patterns allow tasks to be completed many times (e.g., 6 to 8 times) faster by using fewer computational resources.

일 구현예에서, 도 8b에 나타낸 바와 같이, 컴퓨팅 환경(800)은 본원에 설명된 양태에 따라 프로그램 템플릿을 생성할 수 있다. 컴퓨팅 환경(800)은 데이터(802)를 수신할 수 있는 작업 생성 모듈(810)을 포함할 수 있다. 일부 경우에, 데이터는 데이터 출처(102)로부터 수신될 수 있다. 다른 경우에, 데이터(802)는 시뮬레이션된 재구성을 실행할 목적으로 연산 장치에 의해 생성될 수 있다는 점에서 합성일 수 있다. 작업 생성 모듈(810)은 하나 이상의 표적을 재구성하기 위해, 작업 또는 작업과 연관된 태스크를 생성할 수 있다. 일부 경우에, 현실적인 재구성을 해결하기 보다는, 작업 생성 모듈(810)은 데이터(802)의 하위 집합을 선택할 수 있고, 축약된 시뮬레이션(또는 재구성)을 수행하도록 유도된 작업을 생성하거나 달리 예약할 수 있다.In one implementation, as shown in Figure 8B, computing environment 800 can generate program templates according to aspects described herein. Computing environment 800 may include a task creation module 810 that can receive data 802 . In some cases, data may be received from data source 102. In other cases, data 802 may be synthetic in that it may be generated by a computing device for the purpose of performing a simulated reconstruction. The task creation module 810 may create a task or a task associated with the task to reconstruct one or more targets. In some cases, rather than solving a realistic reconstruction, task generation module 810 may select a subset of data 802 and generate or otherwise schedule tasks directed to performing an abbreviated simulation (or reconstruction). there is.

이러한 방식으로 생성된 작업은, 작업 파라미터의 다양한 구성을 생성할 수 있는 템플릿 생성 모듈(820)에 전송될 수 있다. 이러한 구성은 작업 구성으로서 지칭될 수 있다. 각각의 작업 구성은 각각의 작업 파라미터의 특정 값을 포함한다. 따라서, 이러한 작업 구성은 각각의 후보 프로그램 템플릿에 대응한다. 템플릿 생성기 모듈(820)은 작업 구성을 생성하기 위해 다수의 전략을 적용할 수 있다. 일부 경우에, 템플릿 생성기 모듈(820)은 무작위로 작업 구성을 생성할 수 있다. 다른 경우에, 템플릿 생성기 모듈(820)은, 템플릿 생성기 모듈(820)이 표적의 생성 (또는 실제) 재구성에 사용된 기존 구성의 변형을 생성하는 교란 접근법에 의존할 수 있다. 템플릿 생성기 모듈(820)은, 작업 구성에 정의된 작업 파라미터에 따라, 클라우드 플랫폼(114)에서 실행을 위해 연산 모듈(120)에 작업 구성을 전송할 수 있다. 템플릿 생성기 모듈(820)은 특정 작업을 사용하여 작업 실행의 성능을 나타내는 메트릭을 수집하거나 달리 수신할 수 있다. 다수의 메트릭이 수집될 수 있다. 메트릭의 예는 벽시계 시간, GPU 시간, CPU 시간, I/O 연산 수, 실행 비용 등을 포함한다. 수집되는 메트릭의 값은 작업에 대한 작업 구성의 적합성에 대한 피드백의 역할을 한다. 템플릿 생성 모듈(820)은 만족스러운 성능이 달성될 때까지 작업에 대한 작업 구성을 반복적으로 생성할 수 있다. 이를 위해, 템플릿 생성기 모듈(820)은 가장 가파른 하강, 몬테 카를로 시뮬레이션, 유전자 알고리즘 또는 유사한 것과 같은 다양한 최적화 솔버 중 하나를 사용하여 작업 파라미터의 공간을 탐색할 수 있다. 만족스러운 성능(예, 최적의 성능)을 초래하는 작업 구성은 작업 파라미터의 만족스러운 값을 결정할 수 있다. 이러한 값은 프로그램 템플릿을 정의한다.Jobs created in this way can be sent to the template creation module 820, which can create various configurations of job parameters. This configuration may be referred to as a working configuration. Each task configuration contains specific values for each task parameter. Accordingly, this task configuration corresponds to each candidate program template. Template generator module 820 can apply a number of strategies to create a working configuration. In some cases, template generator module 820 may randomly generate task configurations. In other cases, the template generator module 820 may rely on a perturbation approach in which the template generator module 820 creates a variation of an existing configuration used in the created (or actual) reconstruction of the target. Template generator module 820 may transmit the task configuration to the compute module 120 for execution on cloud platform 114, according to task parameters defined in the task configuration. Template generator module 820 may use a particular task to collect or otherwise receive metrics indicative of performance of task execution. Multiple metrics may be collected. Examples of metrics include wall clock time, GPU time, CPU time, number of I/O operations, execution cost, etc. The values of the metrics collected serve as feedback on the suitability of the task configuration for the task. The template creation module 820 may iteratively generate task configurations for a task until satisfactory performance is achieved. To this end, template generator module 820 may explore the space of operational parameters using one of a variety of optimization solvers, such as steepest descent, Monte Carlo simulation, genetic algorithm, or similar. A task configuration that results in satisfactory performance (e.g., optimal performance) can determine satisfactory values of task parameters. These values define the program template.

유사한 최적화가 다양한 유형의 재구성 또는 재구성의 일부인 태스크에 대해 수행될 수 있다. 각각의 최적화는 프로그램 템플릿을 생성한다.Similar optimizations can be performed for tasks that are part of various types of reconfiguration or reconfiguration. Each optimization creates a program template.

데이터 분석 모듈(118)은 데이터를 분석하기 위해 프로그램 템플릿에 따라 하나 이상의 작업을 실행할 수 있다. 이를 위해, 일부 경우에, 연산 모듈(120)은, 연산 작업 또는 연산 작업의 일부인 연산 태스크를 실행하기 위해 클라우드 플랫폼(114 )내의 연산 노드를 선택할 수 있다. 선택된 연산 노드는 연산 노드(403)의 일부일 수 있다(도 4). 일 구현예에서, 도 8c에 나타낸 바와 같이, 연산 모듈(120)은, 프로그램 템플릿(844) 및 작업을 정의하는 데이터(846)를 수신할 수 있는, 인터페이스 모듈(850)을 포함한다. 이러한 프로그램 템플릿(844)은 다수의 작업 파라미터의 세트를 지정하며, 클라우드 플랫폼(114) 내의 연산 노드의 선택을 위한 조건으로서 기능한다. 예를 들어, 프로그램 템플릿은 실행될 태스크(예, 재구성 태스크)에 대해 n MPI, m 스레드 및 q 연산 노드를 지정할 수 있다. 클라우드 플랫폼(114)은, 태스크를 실행하도록 선택될 수 있는, 다수의 q 연산 노드 세트를 포함할 수 있다. 또한, 연산 노드 중 적어도 일부는 각각의 프로세서를 가질 수 있으며, 각각은 m 스레드를 지원할 수 있는 다수의 코어를 갖는다. 유사하게, 다른 연산 노드, 예를 들어 n MPI를 지원할 수 있다. 따라서, 클라우드 플랫폼(114)은 프로그램 템플릿과 일치하는 다수의 배열 또는 할당을 지원할 수 있다.The data analysis module 118 may execute one or more tasks according to a program template to analyze data. To this end, in some cases, computing module 120 may select a computing node within cloud platform 114 to execute a computational task or a computational task that is part of a computational task. The selected computational node may be part of computational node 403 (Figure 4). In one implementation, as shown in Figure 8C, computational module 120 includes an interface module 850, which can receive a program template 844 and data 846 defining tasks. These program templates 844 specify a set of multiple operational parameters and serve as conditions for the selection of computational nodes within the cloud platform 114. For example, a program template may specify n MPIs, m threads, and q compute nodes for the task to be executed (e.g., a reconfiguration task). Cloud platform 114 may include a number of sets of q compute nodes, which may be selected to execute tasks. Additionally, at least some of the compute nodes may have respective processors, each having a number of cores capable of supporting m threads. Similarly, other computational nodes may support n MPIs, for example. Accordingly, cloud platform 114 may support multiple arrangements or assignments that match a program template.

일 구현예에서, 도 8c에 나타낸 바와 같이, 연산 모듈(120)은 프로그램 템플릿과 일치하는 후보 배열을 평가할 수 있는 선택 모듈(860)을 포함한다. 후보 배열을 평가하기 위해, 평가 구성 요소(864)는 후보 배열을 형성하는 각각의 연산 노드 상의 각각의 워크로드의 각각의 성능 메트릭을 결정할 수 있다. 각각의 워크로드는 데이터(846)에 의해 정의된 연산 작업을 포함할 수 있다. 컴퓨팅 장치(106)(도 1)는 연산 작업을 요청할 수 있다. 평가 구성 요소(864)는, 후보 배열에서 연산 노드의 각각의 측정된 성능 데이터에 기초하여, 각각의 성능 메트릭을 결정할 수 있다. 연산 모듈(120)은 클라우드 플랫폼(114) 내의 하나 이상의 구성 요소로부터 측정된 성능 데이터를 획득할 수 있다. 측정된 성능 데이터는, 예를 들어 하나 이상의 리소스, 또는 다른 데이터의 현재 사용 또는 공급을 포함할 수 있다. 측정된 성능 데이터는 또한, 처리된 데이터, 예를 들어 측정된 데이터의 통계와 같은 측정된 데이터로부터 유래된 값을 포함하거나 이에 기초할 수 있다. 예를 들어, 연산 노드에서의 평균 CPU 사용량 및/또는 평균 GPU 사용량은, 후보 배열에서 노드에 대한 측정된 성능 데이터에 포함될 수 있다.In one implementation, as shown in Figure 8C, computation module 120 includes a selection module 860 that can evaluate candidate sequences that match a program template. To evaluate a candidate arrangement, evaluation component 864 may determine a respective performance metric of each workload on each compute node forming the candidate arrangement. Each workload may include computational tasks defined by data 846. Computing device 106 (Figure 1) may request a computational task. Evaluation component 864 may determine each performance metric based on the measured performance data of each of the compute nodes in the candidate array. Computation module 120 may obtain measured performance data from one or more components within cloud platform 114. Measured performance data may include, for example, current use or provision of one or more resources, or other data. Measured performance data may also include or be based on processed data, for example, values derived from measured data, such as statistics of the measured data. For example, average CPU usage and/or average GPU usage on a compute node may be included in the measured performance data for the node in the candidate array.

선택 모듈(860)은, 각각의 (또는 일부 경우에, 적어도 일부) 후보 배열을 평가하는, 다수의 후보 배열의 세트를 통과할 수 있는 구성 요소(868)를 포함할 수 있다. 이러한 통과는 각각의 후보 배열에 대한 다수의 적합성 점수를 생성할 수 있다. 구성 요소(868)는 적합성 점수에 따라 다수의 후보 배열의 순위를 매길 수 있고, 그 다음 후보 배열 중 최고 순위 또는 높은 순위를 가진 하나를 데이터(846)에 의해 정의된 연산 작업을 실행하는 데 사용될 노드 배열(850)로서 선택할 수 있다. Selection module 860 may include a component 868 that can go through a set of multiple candidate sequences, evaluating each (or in some cases, at least some) of the candidate sequences. These passes can generate multiple fitness scores for each candidate sequence. Component 868 may rank a number of candidate arrays according to their suitability scores, and then select the highest or highest ranking one of the candidate arrays to be used to execute the computational task defined by data 846. It can be selected as a node array 850.

데이터 분석 모듈(118)은 클라우드 플랫폼(114)의 파일 시스템에 임의의 데이터 분석 결과를 저장할 수 있고/있거나 컴퓨팅 장치(106)에 결과를 다시 제공할 수 있다. DSM 유틸리티(116)는, 파일 시스템으로부터의 데이터 분석 결과를 데이터 저장소에 저장하고 파일 시스템을 삭제하는데 사용될 수 있다.Data analysis module 118 may store any data analysis results in a file system of cloud platform 114 and/or provide results back to computing device 106. The DSM utility 116 can be used to store data analysis results from a file system in a data storage and delete the file system.

도 9 및 도 10은, 전자 현미경을 통해 데이터가 생성될 수 있고 각각의 지원 컴퓨팅 장치에 캐시될 수 있는, 예시적인 시스템 및 방법을 나타낸다. 다수의 전자 현미경은 각각의 전자 현미경 실험의 일부로서 이미징 데이터를 생성할 수 있다. 전자 현미경의 각각에 기능적으로 결합된 컴퓨팅 장치는, 이미징 데이터를 획득하고 캐시할 수 있다. 지원 컴퓨팅 장치로부터의 이미징 데이터는 로컬 스테이징 영역으로 푸시될 수 있다. 일정(예, 매시간, 매일, 정의된 시간 등)에 따라, 스테이징 영역으로부터의 이미징 데이터는 클라우드 기반 스토리지(예, AWS S3)와 같은 스토리지 시스템에 푸시될 수 있다. 별도의 스케줄링된 데이터 동기화 태스크는, 각각의 데이터 저장소 버킷(예, S3 버킷)에 데이터를 계속 푸시할 수 있다. 이미징 데이터는 스토리지 게이트웨이에서 볼 수 있다. 예약된 자동 캐시 새로 고침을 사용할 수 있다. 처리에 필요한 데이터세트는 DSM 유틸리티를 통해 마스터/컴퓨팅 노트에 장착될 수 있고, 사용된 스토리지는 분산 및/또는 병렬(예, FSx-Lustre)될 수 있다.9 and 10 illustrate example systems and methods in which data may be generated via an electron microscope and cached on a respective supporting computing device. Multiple electron microscopes can generate imaging data as part of each electron microscopy experiment. A computing device functionally coupled to each of the electron microscopes may acquire and cache imaging data. Imaging data from the supporting computing device may be pushed to a local staging area. Depending on the schedule (e.g., hourly, daily, defined time, etc.), imaging data from the staging area may be pushed to a storage system, such as cloud-based storage (e.g., AWS S3). Separately scheduled data synchronization tasks can continuously push data to each data storage bucket (e.g., S3 bucket). Imaging data can be viewed on the storage gateway. Scheduled automatic cache refresh is available. Datasets required for processing can be mounted in a master/computing notebook via DSM utilities, and the storage used can be distributed and/or parallel (e.g. FSx-Lustre).

도 11은, 네트워크(1104)를 통해 연결된 컴퓨팅 장치(106) 및 클라우드 플랫폼(114)의 비제한적인 실시예를 포함하는, 환경(1100)을 도시하는 블록 다이어그램이다. 일 양태에서, 임의의 설명된 방법의 일부 또는 모든 단계는 본원에서 설명된 바와 같은 컴퓨팅 장치 및/또는 클라우드 플랫폼에서 수행될 수 있다. 컴퓨팅 장치(106)는, 데이터(104), 데이터 동기화 관리자(110), 및/또는 데이터 동기화 모듈(112) 중 하나 이상을 저장하도록 구성된 하나 이상의 컴퓨터를 포함할 수 있다. 클라우드 플랫폼(114)은 데이터(104), DSM 유틸리티(116), 데이터 분석 모듈(들)(118), 연산 모듈(120), 원격 디스플레이 모듈(122), 및/또는 데이터(104)를 처리하도록 구성된 하나 이상의 연산 노드(1108)를 저장하도록 구성된 고 처리량 저장 시스템(1106)을 포함할 수 있다. 클라우드 플랫폼(114)은 네트워크(1104)를 통해 컴퓨팅 장치(106)와 통신할 수 있다.FIG. 11 is a block diagram illustrating an environment 1100, including a non-limiting example of a cloud platform 114 and a computing device 106 connected via a network 1104. In one aspect, some or all steps of any described method may be performed on a computing device and/or cloud platform as described herein. Computing device 106 may include one or more computers configured to store one or more of data 104, data synchronization manager 110, and/or data synchronization module 112. Cloud platform 114 is configured to process data 104, DSM utility 116, data analysis module(s) 118, computation module 120, remote display module 122, and/or data 104. A high-throughput storage system 1106 configured to store one or more configured compute nodes 1108 may be included. Cloud platform 114 may communicate with computing device 106 over network 1104.

컴퓨팅 장치(106) 및 클라우드 플랫폼(114)은, 하드웨어 아키텍처의 관점에서 일반적으로 프로세서(1110), 메모리 시스템(1112), 입력/출력(I/O) 인터페이스(1114), 및 네트워크 인터페이스(1116)를 포함하는, 하나 이상의 디지털 컴퓨터일 수 있다. 이들 구성 요소(1110, 1112, 1114, 및 1116)는 로컬 인터페이스(1118)를 통해 통신 가능하게 결합된다. 로컬 인터페이스(1118)는, 예를 들어 당업계에 공지된 바와 같이, 하나 이상의 버스 또는 다른 유무선 연결일 수 있지만, 이에 한정되지 않는다. 로컬 인터페이스(1118)는, 통신을 가능하게 하기 위한 컨트롤러, 버퍼(캐시), 드라이버, 리피터, 및 수신기와 같이, 단순성을 위해 생략된 추가 요소를 가질 수 있다. 또한, 로컬 인터페이스는 전술한 구성 요소 간의 적절한 통신을 가능하게 하기 위한 주소, 제어 및/또는 데이터 연결을 포함할 수 있다.Computing device 106 and cloud platform 114 generally include, in terms of hardware architecture, a processor 1110, a memory system 1112, an input/output (I/O) interface 1114, and a network interface 1116. It may be one or more digital computers, including. These components 1110, 1112, 1114, and 1116 are communicatively coupled via local interface 1118. Local interface 1118 may be, for example, but is not limited to, one or more buses or other wired or wireless connections, as known in the art. Local interface 1118 may have additional elements omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers to enable communication. Additionally, the local interface may include address, control, and/or data connections to enable proper communication between the aforementioned components.

프로세서(1110)는, 특히 메모리 시스템(1112)에 저장된 소프트웨어를 실행하기 위한 하나 이상의 하드웨어 장치일 수 있다. 프로세서(1110)는 임의의 맞춤형 또는 상업적으로 이용 가능한 프로세서, 중앙 처리 유닛(CPU), 컴퓨팅 장치(106) 및 클라우드 플랫폼(114)과 연관된 여러 프로세서 중 보조 프로세서, 반도체 기반 마이크로프로세서(마이크로칩 또는 칩 세트의 형태), 또는 일반적으로 소프트웨어 명령어를 실행하기 위한 임의의 장치일 수 있다. 컴퓨팅 장치(106) 및/또는 클라우드 플랫폼(114)이 작동 중일 때, 프로세서(1110)는 메모리 시스템(1112) 내에 저장된 소프트웨어를 실행하고, 메모리 시스템(1112)과 데이터를 통신하고, 소프트웨어에 따라 컴퓨팅 장치(106) 및 클라우드 플랫폼(114)의 작동을 일반적으로 제어하도록 구성될 수 있다.Processor 1110 may be one or more hardware devices, particularly for executing software stored in memory system 1112. Processor 1110 may include any custom or commercially available processor, central processing unit (CPU), a coprocessor, a semiconductor-based microprocessor (microchip or chip), one of several processors associated with computing device 106 and cloud platform 114. in the form of a set), or generally any device for executing software instructions. When computing device 106 and/or cloud platform 114 are operating, processor 1110 executes software stored within memory system 1112, communicates data with memory system 1112, and performs computing in accordance with the software. It may be configured to generally control the operation of device 106 and cloud platform 114.

I/O 인터페이스(1114)는 하나 이상의 장치 또는 구성 요소로부터 사용자 입력을 수신하고/하거나 시스템 출력을 제공하는 데 사용될 수 있다. 사용자 입력은, 예를 들어 키보드 및/또는 마우스를 통해 제공될 수 있다. 시스템 출력은 디스플레이 장치 및 프린터(미도시)를 통해 제공될 수 있다. I/O 인터페이스(1114)는, 예를 들어 직렬 포트, 병렬 포트, 소형 컴퓨터 시스템 인터페이스(SCSI), 적외선(IR) 인터페이스, 무선 주파수(RF) 인터페이스, 및/또는 범용 직렬 버스(USB) 인터페이스를 포함할 수 있다.I/O interface 1114 may be used to receive user input and/or provide system output from one or more devices or components. User input may be provided via a keyboard and/or mouse, for example. System output may be provided through a display device and a printer (not shown). I/O interface 1114 may include, for example, a serial port, a parallel port, a small computer system interface (SCSI), an infrared (IR) interface, a radio frequency (RF) interface, and/or a universal serial bus (USB) interface. It can be included.

네트워크 인터페이스(1116)는 네트워크(1104) 상의 컴퓨팅 장치(106) 및/또는 클라우드 플랫폼(114)으로부터 송신하고 수신하는 데 사용될 수 있다. 네트워크 인터페이스(1116)는, 예를 들어 10BaseT 이더넷 어댑터, 100BaseT 이더넷 어댑터, LAN PHY 이더넷 어댑터, 토큰 링 어댑터, 무선 네트워크 어댑터(예, WiFi, 셀룰러, 위성), 또는 임의의 다른 적절한 네트워크 인터페이스 장치를 포함할 수 있다. 네트워크 인터페이스(1116)는 네트워크(1104) 상에서 적절한 통신을 가능하게 하기 위한 어드레스, 제어 및/또는 데이터 연결을 포함할 수 있다.Network interface 1116 may be used to transmit and receive from computing device 106 on network 1104 and/or cloud platform 114. Network interface 1116 includes, for example, a 10BaseT Ethernet adapter, a 100BaseT Ethernet adapter, a LAN PHY Ethernet adapter, a token ring adapter, a wireless network adapter (e.g., WiFi, cellular, satellite), or any other suitable network interface device. can do. Network interface 1116 may include address, control and/or data connections to enable proper communication over network 1104.

메모리 시스템(1112)은 휘발성 메모리 요소(예, 무작위 액세스 메모리(DRAM, SRAM, SDRAM 등과 같은 RAM)) 및 비휘발성 메모리 요소(예, ROM, 하드 드라이브, 테이프, CDROM, DVDROM 등) 중 임의의 하나 또는 조합을 포함할 수 있다. 또한, 메모리 시스템(1112)은 전자, 자기, 광학 및/또는 다른 유형의 저장 매체를 포함할 수 있다. 메모리 시스템(1112)은, 다양한 구성 요소가 서로 원격에 위치하지만 프로세서(1110)에 의해 액세스될 수 있는, 분산 아키텍처를 가질 수 있음을 주목한다.Memory system 1112 may be any one of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and non-volatile memory elements (e.g., ROM, hard drive, tape, CDROM, DVDROM, etc.). Or it may include a combination. Additionally, memory system 1112 may include electronic, magnetic, optical, and/or other types of storage media. Note that memory system 1112 may have a distributed architecture, where various components may be located remotely from each other but can be accessed by processor 1110.

메모리 시스템(1112 )내의 소프트웨어는 하나 이상의 소프트웨어 프로그램을 포함할 수 있으며, 이들 각각은 논리적 기능을 구현하기 위한 실행가능 명령어의 순서 목록을 포함한다. 도 11의 예에서, 컴퓨팅 장치(106)의 메모리 시스템(1112 )내의 소프트웨어는 데이터(104), 데이터 스테이징 모듈(108), 데이터 동기화 관리자(110), 데이터 동기화 모듈(112), 정책(260), 적절한 운영 체제(O/S)(1120), 및/또는 임의의 다른 모듈(예를 들어, 도 1에 개시됨)을 포함할 수 있다. 도 11의 예에서, 클라우드 플랫폼(114)의 고 처리량 스토리지 시스템(1106) 내의 소프트웨어는, 데이터(104), DSM 유틸리티(116), 데이터 분석 모듈(들)(118), 연산 모듈(120), 원격 디스플레이 모듈(122), 적절한 운영 체제(O/S)(1120), 및/또는 임의의 다른 모듈(예, 도 1 에 개시된 모듈)을 포함할 수 있다. 운영체제(1120)는 본질적으로 다른 컴퓨터 프로그램의 실행을 제어하고, 예약, 입력-출력 제어, 파일 및 데이터 관리, 메모리 관리, 통신 제어 및 관련 서비스를 제공한다.Software within memory system 1112 may include one or more software programs, each of which includes an ordered list of executable instructions for implementing logical functions. In the example of FIG. 11 , software within memory system 1112 of computing device 106 includes data 104, data staging module 108, data synchronization manager 110, data synchronization module 112, and policy 260. , a suitable operating system (O/S) 1120, and/or any other modules (e.g., disclosed in FIG. 1). In the example of FIG. 11 , software within high throughput storage system 1106 of cloud platform 114 includes data 104, DSM utilities 116, data analysis module(s) 118, computation module 120, It may include a remote display module 122, a suitable operating system (O/S) 1120, and/or any other module (e.g., the module disclosed in FIG. 1). The operating system 1120 essentially controls the execution of other computer programs and provides reservation, input-output control, file and data management, memory management, communication control, and related services.

예시의 목적으로, 애플리케이션 프로그램 및 운영 체제(1120)와 같은 다른 실행 가능한 프로그램 구성 요소는, 본원에서는 별개 블록으로서 예시되지만, 컴퓨팅 장치(106) 및/또는 클라우드 플랫폼(114)의 상이한 스토리지 구성 요소에 이러한 프로그램 및 구성 요소가 다양한 시간에 상주할 수 있음도 인식된다. 데이터 동기화 관리자(110), 데이터 동기화 모듈(112), DSM 유틸리티(116), 데이터 분석 모듈(들)(118), 연산 모듈(120), 및/또는 원격 디스플레이 모듈(122)의 구현은 일부 형태의 컴퓨터 판독가능 매체 상에 저장되거나 이를 통해 전송될 수 있다. 임의의 개시된 방법은 컴퓨터 판독가능 매체 상에 구현된 컴퓨터 판독가능 명령어에 의해 수행될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 예로서, 제한하고자 하는 것은 아니지만, 컴퓨터 판독가능 매체는 "컴퓨터 저장 매체" 및 "통신 매체"를 포함할 수 있다. "컴퓨터 저장 매체"는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함할 수 있다. 예시적인 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다.For purposes of illustration, other executable program components, such as application programs and operating system 1120, although illustrated herein as separate blocks, may be associated with different storage components of computing device 106 and/or cloud platform 114. It is also recognized that these programs and components may reside at various times. Implementations of data synchronization manager 110, data synchronization module 112, DSM utility 116, data analysis module(s) 118, computation module 120, and/or remote display module 122 may be implemented in some form. It may be stored on or transmitted through a computer-readable medium. Any of the disclosed methods can be performed by computer-readable instructions embodied on a computer-readable medium. Computer-readable media can be any available media that can be accessed by a computer. By way of example, and not by way of limitation, computer-readable media may include “computer storage media” and “communication media.” “Computer storage media” may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. . Exemplary computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices. , or any other medium that can be used to store desired information and that can be accessed by a computer.

일 구현예에서, 데이터 동기화 관리자(110) 및/또는 데이터 동기화 모듈(112)은 도 12에 나타낸 예시적인 방법(1200)을 실행하도록 구성될 수 있다. 예시적인 방법(1200)은 단일 컴퓨팅 장치, 복수의 전자 장치 등에 의해 전체적으로 또는 부분적으로 수행될 수 있다. 예시적인 방법(1200)은 블록(1210)에서 동기화 요청의 표시를 수신하는 단계를 포함할 수 있다. 동기화 요청의 표시를 수신하는 것은 동기화 조건에 기초할 수 있다. 일부 경우에, 동기화 조건은 시간 간격이다. 표시는, 데이터 동기화가 구현될 것임을 전달하는, 페이로드 데이터를 포함한다. 일부 경우에, 표시는, 예를 들어 데이터 스토리지 서비스에 대한 함수 호출을 호출하는 메시지에 구현될 수 있다.In one implementation, data synchronization manager 110 and/or data synchronization module 112 may be configured to execute the example method 1200 shown in FIG. 12 . Example method 1200 may be performed in whole or in part by a single computing device, multiple electronic devices, etc. Example method 1200 may include receiving an indication of a synchronization request at block 1210. Receiving an indication of a synchronization request may be based on synchronization conditions. In some cases, the synchronization condition is a time interval. The indication includes payload data conveying that data synchronization is to be implemented. In some cases, the indication may be implemented in a message, for example, invoking a function call to a data storage service.

블록(1220)에서, 예시적인 방법(1200)은, 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계를 포함할 수 있다. 다양한 유형의 파일이 결정될 수 있다. 예를 들어, 하나 이상의 파일은 서열 데이터, 입자 이미지, 또는 서열 데이터 및 입자 이미지(들)의 조합을 포함할 수 있다.At block 1220, the example method 1200 may include determining, based on the indication, one or more files stored in the staging location. Various types of files may be determined. For example, one or more files may contain sequence data, particle images, or a combination of sequence data and particle image(s).

블록(1230)에서, 예시적인 방법(1200)은 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하는 단계를 포함할 수 있다. 데이터 전송 필터를 생성하는 단계는 클라우드 서비스(예, AWS DataSync)에 함수 호출을 호출하는 메시지를 생성하는 단계를 포함할 수 있으며, 여기서 메시지는 함수 호출의 인수로서 이용 가능한 파일의 목록을 전달한다. 함수 호출은 클라우드 서비스의 태스크(또는 작업)을 시작할 수 있다. 함수 호출은 데이터 저장 서비스에 의해 구현된 API에 따라 호출될 수 있다. 일부 경우에, 데이터 전송 필터는 스테이징 위치에 저장된 하나 이상의 파일의 목록을 포함한다.At block 1230, the example method 1200 may include creating a data transmission filter based on one or more files. Creating a data transfer filter may include creating a message that calls a function call to a cloud service (e.g., AWS DataSync), where the message passes a list of available files as arguments to the function call. A function call can start a task (or job) in a cloud service. Function calls can be made according to the API implemented by the data storage service. In some cases, the data transfer filter includes a list of one or more files stored in a staging location.

블록(1240)에서, 예시적인 방법(1200)은 데이터 전송 필터에 기초하여 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하는 단계를 포함할 수 있다. 데이터 전송 필터에 기초하여 이러한 전송을 유발하는 단계는, 데이터 동기화 애플리케이션 프로그램이 하나 이상의 파일에 대해서만 스테이징 위치 및 대상 컴퓨팅 장치를 스캔하게 하는 단계를 포함할 수 있다.At block 1240, the example method 1200 may include transmitting one or more files to a target computing device based on a data transmission filter. Triggering this transfer based on the data transfer filter may include causing the data synchronization application program to scan the staging location and target computing device for only one or more files.

블록(1250)에서, 예시적인 방법(1200)은 데이터 출처 장치로부터 하나 이상의 파일을 수신하는 단계를 포함할 수 있다. 데이터 출처 장치는 시퀀서 또는 전자 현미경 중 하나 이상을 포함할 수 있다.At block 1250, example method 1200 may include receiving one or more files from a data source device. The data source device may include one or more of a sequencer or an electron microscope.

블록(1260)에서, 예시적인 방법(1200)은 대상 컴퓨팅 장치로 하나 이상의 파일의 전송에 기초하여, 스테이징 위치로부터 하나 이상의 파일을 삭제하는 단계를 포함할 수 있다.At block 1260, the example method 1200 may include deleting one or more files from a staging location based on the transfer of the one or more files to the target computing device.

일 구현예에서, DSM 유틸리티(116)는 도 13에 나타낸 예시적인 방법(1300)을 수행하도록 구성될 수 있다. 방법(1300)은 단일 컴퓨팅 장치, 복수의 전자 장치 등에 의해 전체적으로 또는 부분적으로 수행될 수 있다. 블록(1310)에서, 예시적인 방법(1300)은 그래픽 사용자 인터페이스를 통해, 객체 스토리지로부터 분산 파일 시스템으로 데이터세트를 변환하라는 요청을 수신하는 단계를 포함한다.In one implementation, DSM utility 116 may be configured to perform the example method 1300 shown in FIG. 13. Method 1300 may be performed in whole or in part by a single computing device, multiple electronic devices, etc. At block 1310, the example method 1300 includes receiving, via a graphical user interface, a request to convert a dataset from object storage to a distributed file system.

블록(1320)에서, 예시적인 방법(1300)은 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계를 포함할 수 있다.At block 1320, the example method 1300 may include receiving, via a graphical user interface, an indication of the storage size of the distributed file system.

블록(1330)에서, 예시적인 방법(1300)은 요청 및 표시에 기초하여, 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 데이터세트를 변환하는 단계를 포함할 수 있다.At block 1330, the example method 1300 may include converting the dataset from object storage to a distributed file system associated with the storage size, based on the request and indication.

블록(1340)에서, 예시적인 방법(1300)은 분산 파일 시스템을 포함한 작동을 수행하기 위한 요청을 수신하는 단계를 포함할 수 있다. 블록(1350)에서, 예시적인 방법(1300)은 작동을 수행하는 단계를 포함할 수 있다. 이 작동은 분산 파일 시스템과 관련된 하나 이상의 작동일 수 있다. 하나의 시나리오로, 블록(1340)에서, 예시적인 방법(1300)은 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템을 마운트하기 위한 요청을 수신하는 단계를 포함한다. 또한, 블록(1350)에서, 예시적인 방법(1300)은 분산 파일 시스템을 마운트하는 단계를 포함한다. 다른 시나리오로, 블록(1340)에서, 예시적인 방법(1300)은 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템의 데이터를 객체 스토리지로 저장하라는 요청을 수신하는 단계를 포함한다. 또한, 블록(1350)에서, 예시적인 방법(1300)은 분산 파일 시스템의 데이터를 객체 스토리지에 저장하는 단계를 포함한다. 다른 하나의 시나리오로, 블록(1340)에서, 예시적인 방법(1300)은 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템을 삭제하기 위한 요청을 수신하는 단계를 포함한다. 또한, 블록(1350)에서, 예시적인 방법(1300)은 분산 파일 시스템을 삭제하는 단계를 포함한다.At block 1340, example method 1300 may include receiving a request to perform an operation involving a distributed file system. At block 1350, example method 1300 may include performing an operation. This operation may be one or more operations related to the distributed file system. In one scenario, at block 1340, example method 1300 includes receiving, via a graphical user interface, a request to mount a distributed file system. Additionally, at block 1350, example method 1300 includes mounting a distributed file system. In another scenario, at block 1340, example method 1300 includes receiving, via a graphical user interface, a request to store data in a distributed file system into object storage. Additionally, at block 1350, the example method 1300 includes storing data in the distributed file system to object storage. In another scenario, at block 1340, example method 1300 includes receiving, via a graphical user interface, a request to delete a distributed file system. Additionally, at block 1350, example method 1300 includes deleting the distributed file system.

일 구현예에서, 데이터 분석 모듈(들)(118) 및/또는 연산 모듈(120)은 도 14에 나타낸 바와 같이 방법(1400)을 수행하도록 구성될 수 있다. 방법(1400)은 단일 컴퓨팅 장치, 복수의 전자 장치 등에 의해 전체적으로 또는 부분적으로 수행될 수 있다. 방법(1400)은, 블록(1410)에서, 데이터 분석 애플리케이션 프로그램을 식별하는 단계를 포함한다.In one implementation, data analysis module(s) 118 and/or computation module 120 may be configured to perform method 1400 as shown in FIG. 14 . Method 1400 may be performed in whole or in part by a single computing device, multiple electronic devices, etc. Method 1400 includes, at block 1410, identifying a data analysis application program.

블록(1420)에서, 예시적인 방법(1400)은 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하는 단계를 포함할 수 있다.At block 1420, example method 1400 may include identifying a dataset associated with a data analysis application program.

블록(1430)에서, 예시적인 방법(1400)은 데이터 분석 애플리케이션 프로그램 처리 데이터세트와 연관된 하나 이상의 작업 파라미터를 프로그램 템플릿으로서 결정하는 단계를 포함할 수 있다. 데이터세트를 처리하는 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계는, 복수의 태스크의 각 태스크에 대한 하나 이상의 작업 파라미터를 결정하는 단계를 포함할 수 있다. 하나 이상의 작업 파라미터는 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 또는 다수의 연산 노드 중 하나 이상을 포함할 수 있다.At block 1430, the example method 1400 may include determining one or more operational parameters associated with a data analysis application program processing dataset as a program template. Determining one or more operating parameters associated with a data analysis application program that processes the dataset may include determining one or more operating parameters for each task of the plurality of tasks. The one or more task parameters may include one or more of a number of message passing interfaces (MPIs), a number of threads, or a number of compute nodes.

블록(1440)에서, 예시적인 방법(1400)은 프로그램 템플릿에 기초하여 데이터세트 상에서 데이터 분석 애플리케이션 프로그램의 실행을 유발하는 단계를 포함할 수 있다.At block 1440, example method 1400 may include causing execution of a data analysis application program on a dataset based on a program template.

블록(1450)에서, 예시적인 방법(1400)은 데이터 분석 애플리케이션 프로그램에 의해 실행 가능한 복수의 태스크를 결정하는 단계를 포함할 수 있다.At block 1450, example method 1400 may include determining a plurality of tasks executable by a data analysis application program.

일 구현예에서, 데이터 동기화 관리자(110), 데이터 동기화 모듈(112), DSM 유틸리티(116), 데이터 분석 모듈(들)(118), 및/또는 연산 모듈(120)은 도 15에 나타낸 예시적인 방법(1500)을 수행하도록 구성될 수 있다. 예시적인 방법(1500)은 단일 컴퓨팅 장치, 복수의 전자 장치 등에 의해 전체적으로 또는 부분적으로 수행될 수 있다. 예시적인 방법(1500)은 블록(1510)에서 동기화 요청의 표시를 수신하는 단계를 포함할 수 있다. 표시는, 데이터 동기화가 구현될 것임을 전달하는, 페이로드 데이터를 포함한다. 일부 경우에, 표시는, 예를 들어 데이터 스토리지 서비스에 대한 함수 호출을 호출하는 메시지에 구현될 수 있다. 동기화 요청의 표시를 수신하는 것은 동기화 조건에 기초할 수 있다. 일부 경우에, 동기화 조건은 시간 간격이다.In one implementation, data synchronization manager 110, data synchronization module 112, DSM utility 116, data analysis module(s) 118, and/or computation module 120 may be configured as the example shown in FIG. 15. Can be configured to perform method 1500. Example method 1500 may be performed in whole or in part by a single computing device, multiple electronic devices, etc. Example method 1500 may include receiving an indication of a synchronization request at block 1510. The indication includes payload data conveying that data synchronization is to be implemented. In some cases, the indication may be implemented in a message, for example, invoking a function call to a data storage service. Receiving an indication of a synchronization request may be based on synchronization conditions. In some cases, the synchronization condition is a time interval.

블록(1520)에서, 예시적인 방법(1500)은, 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계를 포함할 수 있다.At block 1520, the example method 1500 may include determining, based on the indication, one or more files stored in the staging location.

블록(1530)에서, 예시적인 방법(1500)은 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하는 단계를 포함할 수 있다.At block 1530, the example method 1500 may include creating a data transmission filter based on one or more files.

블록(1540)에서, 예시적인 방법(1500)은 데이터 전송 필터에 기초하여 하나 이상의 파일을 대상 컴퓨팅 장치의 객체 스토리지로 전송하는 단계를 포함할 수 있다.At block 1540, the example method 1500 may include transferring one or more files to object storage of a target computing device based on a data transfer filter.

블록(1550)에서, 예시적인 방법(1500)은 그래픽 사용자 인터페이스를 통해, 객체 스토리지로부터 분산 파일 시스템으로 하나 이상의 파일을 변환하라는 요청을 수신하는 단계를 포함할 수 있다.At block 1550, example method 1500 may include receiving, via a graphical user interface, a request to convert one or more files from object storage to a distributed file system.

블록(1560)에서, 예시적인 방법(1500)은 그래픽 사용자 인터페이스를 통해, 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계를 포함할 수 있다.At block 1560, the example method 1500 may include receiving, via a graphical user interface, an indication of the storage size of the distributed file system.

블록(1570)에서, 예시적인 방법(1500)은 요청 및 표시에 기초하여, 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 하나 이상의 파일을 변환하는 단계를 포함할 수 있다.At block 1570, the example method 1500 may include converting one or more files from object storage to a distributed file system associated with the storage size, based on the request and indication.

블록(1580)에서, 예시적인 방법(1500)은, 분산 파일 시스템 내의 하나 이상의 파일과 연관된 데이터 분석 애플리케이션 프로그램을 식별하는 단계를 추가로 포함할 수 있다.At block 1580, the example method 1500 may further include identifying a data analysis application program associated with one or more files within the distributed file system.

블록(1590)에서, 예시적인 방법(1500)은 데이터 분석 애플리케이션 프로그램 처리 데이터세트와 연관된 하나 이상의 작업 파라미터를 프로그램 템플릿으로서 결정하는 단계를 포함할 수 있다.At block 1590, the example method 1500 may include determining one or more operational parameters associated with a data analysis application program processing dataset as a program template.

블록(1595)에서, 예시적인 방법(1500)은 프로그램 템플릿에 기초하여, 분산 파일 시스템 내의 하나 이상의 파일에 데이터 분석 애플리케이션 프로그램의 실행을 유발하는 단계를 포함할 수 있다. 많은 다른 구현예가 전술한 상세한 설명 및 첨부된 도면으로부터 나타난다. 예를 들어, 이들 구현 중 실시예 1은, 동기화 요청의 표시를 수신하는 단계; 상기 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계; 상기 하나 이상의 파일에 기초하여, 데이터 전송 필터를 생성하는 단계; 및 상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하는 단계를 포함하는, 방법을 포함한다.At block 1595, the example method 1500 may include causing execution of a data analysis application program on one or more files within the distributed file system, based on a program template. Many other implementations appear from the foregoing detailed description and accompanying drawings. For example, Embodiment 1 of these implementations includes receiving an indication of a synchronization request; based on the indication, determining one or more files stored in a staging location; creating a data transmission filter based on the one or more files; and transmitting the one or more files to a target computing device based on the data transmission filter.

다수의 구현 중 실시예 2는 실시예 1의 방법을 포함하되, 상기 동기화 요청의 표시를 수신하는 단계는 동기화 조건에 기초한다.Among the multiple implementations, Embodiment 2 includes the method of Embodiment 1, except that the step of receiving the indication of the synchronization request is based on a synchronization condition.

다수의 구현 중 실시예 3은 실시예 2의 방법을 포함하되, 상기 동기화 조건이 시간 간격이다.Among the multiple implementations, Embodiment 3 includes the method of Embodiment 2, but the synchronization condition is a time interval.

다수의 구현 중 실시예 4는 실시예 1의 방법을 포함하되, 상기 데이터 전송 필터는 상기 스테이징 위치에 저장된 상기 하나 이상의 파일의 목록을 포함한다.Embodiment 4 of the number of implementations includes the method of Embodiment 1, but wherein the data transmission filter includes a list of the one or more files stored in the staging location.

다수의 구현 중 실시예 5는 실시예 1의 방법을 포함하되, 상기 하나 이상의 파일에 기초하여, 상기 데이터 전송 필터를 생성하는 단계는 클라우드 서비스에 대한 함수 호출을 호출하는 메시지를 생성하는 단계를 포함하며, 상기 메시지는 상기 함수 호출의 인수로서 하나 이상의 파일을 식별하는 하나 이상의 파라미터를 전달한다.Embodiment 5, among multiple implementations, includes the method of Embodiment 1, wherein, based on the one or more files, creating the data transmission filter includes generating a message that invokes a function call to a cloud service. And, the message carries one or more parameters identifying one or more files as arguments to the function call.

다수의 구현 중 실시예 6은 실시예 1의 방법을 포함하되, 상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 단계는, 데이터 동기화 애플리케이션 프로그램이 상기 하나 이상의 파일에 대해서만 상기 스테이징 위치 및 상기 대상 컴퓨팅 장치를 스캔하게 하는 단계를 포함한다.Among multiple implementations, Embodiment 6 includes the method of Embodiment 1, wherein transmitting the one or more files to the target computing device based on the data transmission filter comprises: a data synchronization application program transmitting the one or more files to the target computing device; and scanning only the staging location and the target computing device.

다수의 구현 중 실시예 7은 실시예 1의 방법을 포함하되, 데이터 출처 장치로부터 상기 하나 이상의 파일을 수신하는 단계를 추가로 포함한다.Embodiment 7 of a number of implementations includes the method of Embodiment 1, but further includes receiving the one or more files from a data source device.

다수의 구현 중 실시예 8은 실시예 7의 방법을 포함하되, 상기 데이터 출처 장치는 시퀀서 또는 전자 현미경 중 하나 이상을 포함한다.Example 8, among a number of implementations, includes the method of Example 7, wherein the data source device includes one or more of a sequencer or an electron microscope.

다수의 구현 중 실시예 9는 실시예 8의 방법을 포함하되, 상기 하나 이상의 파일은 서열 데이터, 입자 이미지, 또는 둘 다를 포함한다.Example 9, among a number of implementations, includes the method of Example 8, wherein the one or more files include sequence data, particle images, or both.

다수의 구현 중 실시예 10은 실시예 1의 방법을 포함하되, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 것에 기초하여, 상기 스테이징 위치로부터 상기 하나 이상의 파일을 삭제하는 단계를 추가로 포함한다.Embodiment 10 of a number of implementations includes the method of Embodiment 1, but further comprising deleting the one or more files from the staging location based on transferring the one or more files to the target computing device. .

이들 다른 다수의 구현 중 실시예 11은, 그래픽 사용자 인터페이스를 통해 객체 스토리지로부터 분산 파일 시스템으로 데이터세트를 변환하는 요청을 수신하는 단계; 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계; 및 상기 요청과 상기 표시에 기초하여, 상기 객체 스토리지로부터의 데이터세트를 상기 스토리지 크기와 연관된 분산 파일 시스템으로 변환하는 단계를 포함하는, 방법을 포함한다.Example 11, among many other implementations, includes receiving a request to convert a dataset from object storage to a distributed file system via a graphical user interface; receiving an indication of a storage size of the distributed file system via the graphical user interface; and, based on the request and the indication, converting the dataset from the object storage to a distributed file system associated with the storage size.

다수의 구현 중 실시예 12는 실시예 11의 방법을 포함하고, 상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템을 마운트하기 위한 요청을 수신하는 단계; 및 상기 분산 파일 시스템을 마운트하는 단계를 추가로 포함한다.Embodiment 12 of a number of implementations includes the method of embodiment 11, comprising: receiving, via the graphical user interface, a request to mount the distributed file system; and mounting the distributed file system.

다수의 구현 중 실시예 13은 실시예 11의 방법을 포함하고, 상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템의 데이터를 객체 스토리지에 저장하는 요청을 수신하는 단계; 및 상기 분산 파일 시스템의 데이터를 상기 객체 스토리지에 저장하는 단계를 추가로 포함한다.Embodiment 13, among multiple implementations, includes the method of embodiment 11, comprising: receiving, via the graphical user interface, a request to store data of the distributed file system in object storage; and storing data of the distributed file system in the object storage.

다수의 구현 중 실시예 14는 실시예 11의 방법을 포함하고, 상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템을 삭제하기 위한 요청을 수신하는 단계; 및 상기 분산 파일 시스템을 삭제하는 단계를 추가로 포함한다.Embodiment 14 of a number of implementations includes the method of embodiment 11, comprising: receiving, via the graphical user interface, a request to delete the distributed file system; and deleting the distributed file system.

다수의 구현 중 실시예 15는, 데이터 분석 애플리케이션 프로그램을 식별하는 단계; 상기 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하는 단계; 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계; 및 상기 프로그램 템플릿에 기초하여 상기 데이터 분석 애플리케이션 프로그램을 상기 데이터세트에 실행하는 단계를 포함하는, 방법을 포함한다.Example 15 of a number of implementations includes identifying a data analysis application program; identifying a dataset associated with the data analysis application program; A program template, comprising: determining one or more operational parameters associated with the data analysis application program to process the dataset; and executing the data analysis application program on the dataset based on the program template.

다수의 구현 중 실시예 16은 실시예 15의 방법을 포함하되, 상기 하나 이상의 작업 파라미터는, 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 또는 다수의 연산 노드 중 하나 이상을 포함한다.Embodiment 16, among multiple implementations, includes the method of embodiment 15, wherein the one or more operational parameters include one or more of a plurality of message passing interfaces (MPIs), a plurality of threads, or a plurality of compute nodes.

다수의 구현 중 실시예 17은 실시예 15의 방법을 포함하고, 상기 데이터 분석 애플리케이션 프로그램에 의해 실행 가능한 복수의 태스크를 결정하는 단계를 추가로 포함한다.Among the multiple implementations, Embodiment 17 includes the method of Embodiment 15, and further includes determining a plurality of tasks executable by the data analysis application program.

다수의 구현 중 실시예 18은 실시예 17의 방법을 포함하되, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 상기 하나 이상의 작업 파라미터를 결정하는 단계는, 상기 복수의 태스크의 각 태스크에 대한 하나 이상의 작업 파라미터를 결정하는 단계를 포함한다.Embodiment 18 of the plurality of implementations includes the method of Embodiment 17, wherein determining the one or more operational parameters associated with the data analysis application program processing the dataset comprises: for each task of the plurality of tasks; and determining one or more operating parameters.

다수의 구현 중 실시예 19는, 동기화 요청의 표시를 수신하는 단계; 상기 표시에 기초하여 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계; 상기 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하는 단계; 상기 데이터 전송 필터에 기초하여 상기 하나 이상의 파일을 대상 컴퓨팅 장치의 객체 스토리지 장치로 전송하는 단계; 그래픽 사용자 인터페이스를 통해 상기 하나 이상의 파일을 객체 스토리지에서 분산 파일 시스템으로 변환하기 위한 요청을 수신하는 단계; 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계; 상기 요청과 상기 표시에 기초하여 상기 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하는 단계; 상기 분산 파일 시스템 내의 상기 하나 이상의 파일과 연관된 데이터 분석 애플리케이션 프로그램을 식별하는 단계; 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계; 및 상기 프로그램 템플릿에 기초하여 상기 데이터 분석 애플리케이션 프로그램을 상기 분산 파일 시스템 내 상기 하나 이상의 파일에 실행하는 단계를 포함하는, 방법을 포함한다.Embodiment 19, among many implementations, includes receiving an indication of a synchronization request; determining one or more files stored in a staging location based on the indication; creating a data transmission filter based on the one or more files; transmitting the one or more files to an object storage device of a target computing device based on the data transmission filter; Receiving a request to convert the one or more files from object storage to a distributed file system via a graphical user interface; receiving an indication of a storage size of the distributed file system via the graphical user interface; converting the one or more files from the object storage to a distributed file system associated with a storage size based on the request and the indication; identifying a data analysis application program associated with the one or more files within the distributed file system; A program template, comprising: determining one or more operational parameters associated with the data analysis application program to process the dataset; and executing the data analysis application program on the one or more files in the distributed file system based on the program template.

다수의 구현 중 실시예 20은 컴퓨팅 시스템을 포함하고, 상기 시스템은 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하고, 상기 명령어는 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템으로 하여금, 동기화 요청의 표시를 수신하게 하고, 상기 표시에 기초하여 스테이징 위치에 저장된 하나 이상의 파일을 결정하게 하고, 상기 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하게 하고, 그리고 상기 데이터 전송 필터에 기초하여 상기 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하게 한다.Embodiment 20 of many implementations includes a computing system, the system comprising at least one processor; and at least one memory device storing processor-executable instructions, wherein, in response to execution by the at least one processor, the instructions cause the computing system to receive an indication of a synchronization request, based on the indication. Determine one or more files stored in the staging location, create a data transmission filter based on the one or more files, and transmit the one or more files to the target computing device based on the data transmission filter.

다수의 구현 중 실시예 21은 실시예 20의 방법을 포함하되, 상기 동기화 요청의 표시를 수신하는 단계는 동기화 조건에 기초한다.Embodiment 21 of the plurality of implementations includes the method of Embodiment 20, but wherein receiving the indication of the synchronization request is based on a synchronization condition.

다수의 구현 중 실시예 22는 실시예 21의 방법을 포함하되, 상기 동기화 조건이 시간 간격이다.Among the multiple implementations, Embodiment 22 includes the method of Embodiment 21, but the synchronization condition is a time interval.

다수의 구현 중 실시예 23은 실시예 20의 방법을 포함하되, 상기 데이터 전송 필터는 상기 스테이징 위치에 저장된 상기 하나 이상의 파일의 목록을 포함한다.Embodiment 23 of a number of implementations includes the method of embodiment 20, wherein the data transmission filter includes a list of the one or more files stored in the staging location.

다수의 구현 중 실시예 24는 실시예 20의 방법을 포함하되, 상기 하나 이상의 파일에 기초하여, 상기 데이터 전송 필터를 생성하는 단계는 클라우드 서비스에 대한 함수 호출을 호출하는 메시지를 생성하는 단계를 포함하며, 상기 메시지는 상기 함수 호출의 인수로서 하나 이상의 파일을 식별하는 하나 이상의 파라미터를 전달한다.Embodiment 24, among a number of implementations, includes the method of Embodiment 20, wherein, based on the one or more files, generating the data transmission filter includes generating a message that invokes a function call to a cloud service. And, the message carries one or more parameters identifying one or more files as arguments to the function call.

다수의 구현 중 실시예 25는 실시예 20의 방법을 포함하되, 상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 단계는, 데이터 동기화 애플리케이션 프로그램이 상기 하나 이상의 파일에 대해서만 상기 스테이징 위치 및 상기 대상 컴퓨팅 장치를 스캔하게 하는 단계를 포함한다.Embodiment 25 of a number of implementations includes the method of embodiment 20, wherein transmitting the one or more files to the target computing device based on the data transmission filter comprises: a data synchronization application program transmitting the one or more files to the target computing device; and scanning only the staging location and the target computing device.

다수의 구현 중 실시예 26은 실시예 20의 방법을 포함하되, 상기 적어도 하나의 메모리 장치는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이 데이터 출처 장치로부터 상기 하나 이상의 파일을 수신하게 하는, 추가 프로세서 실행 가능 명령어를 저장한다.Embodiment 26 of a number of implementations includes the method of embodiment 20, wherein the at least one memory device further causes the computing system, in response to execution by the at least one processor, to retrieve the one or more files from a data source device. Stores additional processor-executable instructions that cause receiving.

다수의 구현 중 실시예 27은 실시예 26의 방법을 포함하되, 상기 데이터 출처 장치는 시퀀서 또는 전자 현미경 중 하나 이상을 포함한다.Example 27, among many implementations, includes the method of Example 26, wherein the data source device includes one or more of a sequencer or an electron microscope.

다수의 구현 중 실시예 28은 실시예 27의 방법을 포함하되, 상기 하나 이상의 파일은 서열 데이터, 입자 이미지, 또는 둘 다를 포함한다.Example 28, among multiple implementations, includes the method of Example 27, wherein the one or more files include sequence data, particle images, or both.

다수의 구현 중 실시예 29는 실시예 20의 방법을 포함하되, 상기 적어도 하나의 메모리 장치는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 상기 컴퓨팅 시스템이 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 것에 기초하여, 상기 하나 이상의 파일을 스테이징 위치로부터 추가로 삭제하도록 하는, 추가 프로세서 실행 가능 명령어를 저장한다.Embodiment 29, among multiple implementations, includes the method of embodiment 20, wherein the at least one memory device is configured to cause the computing system to transfer the one or more files to the target computing device in response to execution by the at least one processor. Store additional processor-executable instructions that cause further deletion of the one or more files from the staging location based on the transfer.

다수의 구현 중 실시예 30은 컴퓨팅 시스템을 포함하고, 상기 시스템은 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하고, 상기 명령어는 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템으로 하여금, 그래픽 사용자 인터페이스를 통해 객체 스토리지로부터의 데이터세트를 분산 파일 시스템으로 변환하는 요청을 수신하게 하고, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하게 하고, 그리고 상기 요청 및 상기 표시에 기초하여 상기 객체 스토리지로부터의 데이터세트를 상기 스토리지 크기와 연관된 상기 분산 파일 시스템으로 변환하게 한다.Embodiment 30 of a number of implementations includes a computing system, the system comprising at least one processor; and at least one memory device storing processor-executable instructions, which instructions, in response to execution by the at least one processor, cause the computing system to distribute the dataset from object storage via a graphical user interface. receive a request to convert to a file system, receive an indication of a storage size of the distributed file system via the graphical user interface, and convert a dataset from the object storage to the storage based on the request and the indication. Allows conversion to the distributed file system with associated size.

다수의 구현 중 실시예 31은 실시예 30의 컴퓨팅 시스템을 포함하되, 상기 적어도 하나의 메모리 장치는 추가의 프로세서 실행 가능 명령어를 저장하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템을 마운트하기 위한 요청을 수신하게 하고, 상기 분산 파일 시스템을 마운트하게 한다.Embodiment 31 of many implementations includes the computing system of embodiment 30, wherein the at least one memory device stores additional processor-executable instructions, the instructions responsive to execution by the at least one processor. Additionally cause the computing system to receive a request to mount the distributed file system via the graphical user interface and mount the distributed file system.

다수의 구현 중 실시예 32는 실시예 30의 컴퓨팅 시스템을 포함하되, 상기 적어도 하나의 메모리 장치는 추가의 프로세서 실행 가능 명령어를 저장하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템 내 데이터를 상기 객체 스토리지 내로 저장하기 위한 요청을 수신하게 하고, 상기 분산 파일 시스템 내 데이터를 상기 객체 스토리지 내로 저장하게 한다.Embodiment 32 of many implementations includes the computing system of embodiment 30, wherein the at least one memory device stores additional processor-executable instructions, the instructions responsive to execution by the at least one processor. Additionally cause the computing system to receive, via the graphical user interface, a request to store data in the distributed file system into the object storage and store data in the distributed file system into the object storage.

다수의 구현 중 실시예 33은 실시예 30의 컴퓨팅 시스템을 포함하되, 상기 적어도 하나의 메모리 장치는 추가의 프로세서 실행 가능 명령어를 저장하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템을 삭제하기 위한 요청을 수신하게 하고, 상기 분산 파일 시스템을 삭제하게 한다.Embodiment 33 of many implementations includes the computing system of embodiment 30, wherein the at least one memory device stores additional processor-executable instructions, the instructions responsive to execution by the at least one processor. Additionally cause the computing system to receive a request to delete the distributed file system via the graphical user interface and delete the distributed file system.

다수의 구현 중 실시예 34는 컴퓨팅 시스템을 포함하고, 상기 시스템은 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하되, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템이, 데이터 분석 애플리케이션 프로그램을 식별하게 하고, 상기 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하게 하고, 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하게 하고, 그리고 상기 프로그램 템플릿에 기초하여 상기 데이터세트 상에 상기 데이터 분석 애플리케이션 프로그램을 실행하게 한다.Embodiment 34 of a number of implementations includes a computing system, the system comprising at least one processor; and at least one memory device storing processor-executable instructions, wherein, in response to execution by the at least one processor, the instructions cause the computing system to identify a data analysis application program, the data analysis application program. identify a dataset associated with a program, determine, as a program template, one or more operational parameters associated with the data analysis application program to process the dataset, and store the data on the dataset based on the program template. Run the analysis application program.

다수의 구현 중 실시예 35는 실시예 34의 컴퓨팅 시스템을 포함하되, 상기 하나 이상의 작업 파라미터는, 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 또는 다수의 연산 노드 중 하나 이상을 포함한다.Embodiment 35 of multiple implementations includes the computing system of embodiment 34, wherein the one or more operational parameters include one or more of a plurality of message passing interfaces (MPIs), a plurality of threads, or a plurality of compute nodes.

다수의 구현 중 실시예 36은 실시예 34의 컴퓨팅 시스템을 포함하되, 상기 적어도 하나의 메모리 장치는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이 상기 데이터 분석 애플리케이션 프로그램에 의해 실행 가능한 복수의 태스크를 결정하게 하는, 추가 프로세서 실행 가능 명령어를 저장한다.Embodiment 36 of multiple implementations includes the computing system of embodiment 34, wherein the at least one memory device further causes the computing system, in response to execution by the at least one processor, to execute the data analysis application program by the data analysis application program. Stores additional processor-executable instructions, which determine the number of tasks that can be executed.

다수의 구현 중 실시예 37은 실시예 36의 컴퓨팅 장치를 포함하되, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 상기 하나 이상의 작업 파라미터를 결정하는 단계는, 상기 복수의 태스크의 각 태스크에 대한 하나 이상의 작업 파라미터를 결정하는 단계를 포함한다.Embodiment 37 of the plurality of implementations includes the computing device of embodiment 36, wherein determining the one or more operational parameters associated with the data analysis application program for processing the dataset comprises: for each task of the plurality of tasks; and determining one or more operating parameters for.

다수의 구현 중 실시예 38은 장치를 포함하고, 상기 장치는 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하고, 상기 명령어는 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템으로 하여금, 동기화 요청의 표시를 수신하게 하고, 상기 표시에 기초하여 스테이징 위치에 저장된 하나 이상의 파일을 결정하게 하고, 상기 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하게 하고, 그리고 상기 데이터 전송 필터에 기초하여 상기 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하게 한다.Embodiment 38 of a number of implementations includes an apparatus, the apparatus comprising at least one processor; and at least one memory device storing processor-executable instructions, wherein, in response to execution by the at least one processor, the instructions cause the computing system to receive an indication of a synchronization request, based on the indication. Determine one or more files stored in the staging location, create a data transmission filter based on the one or more files, and transmit the one or more files to the target computing device based on the data transmission filter.

다수의 구현 중 실시예 39는 실시예 38의 장치를 포함하되, 상기 동기화 요청의 표시를 수신하는 단계는 동기화 조건에 기초한다.Embodiment 39 of the plurality of implementations includes the apparatus of embodiment 38, wherein receiving the indication of the synchronization request is based on a synchronization condition.

다수의 구현 중 실시예 40은 실시예 39의 장치를 포함하되, 상기 동기화 조건이 시간 간격이다.Embodiment 40 of the plurality of implementations includes the device of Embodiment 39, but wherein the synchronization condition is a time interval.

다수의 구현 중 실시예 41은 실시예 38의 장치를 포함하되, 상기 데이터 전송 필터는 상기 스테이징 위치에 저장된 상기 하나 이상의 파일의 목록을 포함한다.Embodiment 41 of the plurality of implementations includes the apparatus of embodiment 38, wherein the data transmission filter includes a list of the one or more files stored in the staging location.

다수의 구현 중 실시예 42는 실시예 38의 장치를 포함하되, 상기 하나 이상의 파일에 기초하여, 상기 데이터 전송 필터를 생성하는 단계는 클라우드 서비스에 대한 함수 호출을 호출하는 메시지를 생성하는 단계를 포함하며, 상기 메시지는 상기 함수 호출의 인수로서 하나 이상의 파일을 식별하는 하나 이상의 파라미터를 전달한다.Embodiment 42 of the plurality of implementations includes the apparatus of embodiment 38, wherein based on the one or more files, generating the data transmission filter includes generating a message that invokes a function call to a cloud service. And, the message carries one or more parameters identifying one or more files as arguments to the function call.

다수의 구현 중 실시예 43은 실시예 38의 장치를 포함하되, 상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 단계는, 데이터 동기화 애플리케이션 프로그램이 상기 하나 이상의 파일에 대해서만 상기 스테이징 위치 및 상기 대상 컴퓨팅 장치를 스캔하게 하는 단계를 포함한다.Embodiment 43 of the plurality of implementations includes the apparatus of embodiment 38, wherein transmitting the one or more files to the target computing device based on the data transmission filter comprises: a data synchronization application program transmitting the one or more files to the target computing device; and scanning only the staging location and the target computing device.

다수의 구현 중 실시예 44는 실시예 38의 장치를 포함하되, 상기 적어도 하나의 메모리 장치는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이 데이터 출처 장치로부터 상기 하나 이상의 파일을 수신하게 하는, 추가 프로세서 실행 가능 명령어를 저장한다.Embodiment 44 of many implementations includes the apparatus of embodiment 38, wherein the at least one memory device further causes the computing system, in response to execution by the at least one processor, to retrieve the one or more files from a data source device. Stores additional processor-executable instructions that cause receiving.

다수의 구현 중 실시예 45는 실시예 44의 장치를 포함하되, 상기 데이터 출처 장치는 시퀀서 또는 전자 현미경 중 하나 이상을 포함한다.Example 45, among multiple implementations, includes the device of Example 44, wherein the data source device includes one or more of a sequencer or an electron microscope.

다수의 구현 중 실시예 46은 실시예 45의 장치를 포함하되, 상기 하나 이상의 파일은 서열 데이터, 입자 이미지, 또는 둘 다를 포함한다.Example 46, among multiple implementations, includes the device of Example 45, wherein the one or more files include sequence data, particle images, or both.

다수의 구현 중 실시예 47은 실시예 38의 장치를 포함하되, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 것에 기초하여, 상기 스테이징 위치로부터 상기 하나 이상의 파일을 삭제하는 단계를 추가로 포함한다.Embodiment 47 of many implementations includes the apparatus of embodiment 38, but further comprising deleting the one or more files from the staging location based on transferring the one or more files to the target computing device. .

다수의 구현 중 실시예 48은 장치를 포함하고, 상기 장치는 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하고, 상기 명령어는 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템으로 하여금, 그래픽 사용자 인터페이스를 통해 객체 스토리지로부터의 데이터세트를 분산 파일 시스템으로 변환하는 요청을 수신하게 하고, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하게 하고, 그리고 상기 요청 및 상기 표시에 기초하여 상기 객체 스토리지로부터의 데이터세트를 상기 스토리지 크기와 연관된 상기 분산 파일 시스템으로 변환하게 한다.Embodiment 48 of a number of implementations includes an apparatus, the apparatus comprising at least one processor; and at least one memory device storing processor-executable instructions, which instructions, in response to execution by the at least one processor, cause the computing system to distribute the dataset from object storage via a graphical user interface. receive a request to convert to a file system, receive an indication of a storage size of the distributed file system via the graphical user interface, and convert a dataset from the object storage to the storage based on the request and the indication. Allows conversion to the distributed file system with associated size.

다수의 구현 중 실시예 49는 실시예 48의 장치를 포함하되, 상기 적어도 하나의 메모리 장치는 추가의 프로세서 실행 가능 명령어를 저장하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템을 마운트하기 위한 요청을 수신하게 하고, 상기 분산 파일 시스템을 마운트하게 한다.Embodiment 49 of many implementations includes the apparatus of embodiment 48, wherein the at least one memory device stores additional processor-executable instructions, wherein the instructions are responsive to execution by the at least one processor. cause the computing system to receive a request to mount the distributed file system through the graphical user interface and mount the distributed file system.

다수의 구현 중 실시예 50은 실시예 48의 장치를 포함하되, 상기 적어도 하나의 메모리 장치는 추가의 프로세서 실행 가능 명령어를 저장하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템 내 데이터를 상기 객체 스토리지 내로 저장하기 위한 요청을 수신하게 하고, 상기 분산 파일 시스템 내 데이터를 상기 객체 스토리지 내로 저장하게 한다.Embodiment 50 of a number of implementations includes the apparatus of embodiment 48, wherein the at least one memory device stores additional processor-executable instructions, wherein the instructions are responsive to execution by the at least one processor. cause the computing system to receive a request to store data in the distributed file system into the object storage through the graphical user interface, and store the data in the distributed file system into the object storage.

다수의 구현 중 실시예 51은 실시예 48의 장치를 포함하되, 상기 적어도 하나의 메모리 장치는 추가의 프로세서 실행 가능 명령어를 저장하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템을 삭제하기 위한 요청을 수신하게 하고, 상기 분산 파일 시스템을 삭제하게 한다.Embodiment 51 of a number of implementations includes the apparatus of embodiment 48, wherein the at least one memory device stores additional processor-executable instructions, wherein the instructions are further configured to be responsive to execution by the at least one processor. cause the computing system to receive a request to delete the distributed file system through the graphical user interface and delete the distributed file system.

다수의 구현 중 실시예 52는 장치를 포함하고, 상기 장치는 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하되, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템이, 데이터 분석 애플리케이션 프로그램을 식별하게 하고, 상기 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하게 하고, 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하게 하고, 그리고 상기 프로그램 템플릿에 기초하여 상기 데이터 세트 상에 상기 데이터 분석 애플리케이션 프로그램을 실행하게 한다.Embodiment 52 of many implementations includes an apparatus, the apparatus comprising at least one processor; and at least one memory device storing processor-executable instructions, wherein, in response to execution by the at least one processor, the instructions cause the computing system to identify a data analysis application program, the data analysis application program. identify a dataset associated with a program, determine, as a program template, one or more operational parameters associated with the data analysis application program to process the dataset, and store the data on the dataset based on the program template. Run the analysis application program.

다수의 구현 중 실시예 53은 실시예 52의 장치를 포함하되, 상기 하나 이상의 작업 파라미터는, 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 또는 다수의 연산 노드 중 하나 이상을 포함한다.Embodiment 53 of multiple implementations includes the apparatus of embodiment 52, wherein the one or more operational parameters include one or more of a plurality of message passing interfaces (MPIs), a plurality of threads, or a plurality of compute nodes.

다수의 구현 중 실시예 54는 실시예 52의 장치를 포함하되, 상기 적어도 하나의 메모리 장치는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여 추가로 상기 장치가 상기 데이터 분석 애플리케이션 프로그램에 의해 실행 가능한 복수의 태스크를 결정하게 하는, 추가 프로세서 실행 가능 명령어를 저장한다.Embodiment 54 of multiple implementations includes the device of embodiment 52, wherein the at least one memory device further includes, in response to execution by the at least one processor, the device being executable by the data analysis application program. Stores additional processor-executable instructions that allow multiple task decisions.

다수의 구현 중 실시예 55는 실시예 54의 장치를 포함하되, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 상기 하나 이상의 작업 파라미터를 결정하는 단계는, 상기 복수의 태스크의 각 태스크에 대한 하나 이상의 작업 파라미터를 결정하는 단계를 포함한다.Embodiment 55 of the plurality of implementations includes the apparatus of embodiment 54, wherein determining the one or more operational parameters associated with the data analysis application program processing the dataset comprises: for each task of the plurality of tasks; and determining one or more operating parameters.

다수의 구현 중 실시예 56은 프로세서 실행 가능 명령이 저장된 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하고, 상기 명령어는 상기 실행에 응답하여, 컴퓨팅 시스템으로 하여금, 동기화 요청의 표시를 수신하게 하고, 상기 표시에 기초하여 스테이징 위치에 저장된 하나 이상의 파일을 결정하게 하고, 상기 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하게 하고, 그리고 상기 데이터 전송 필터에 기초하여 상기 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하게 한다.Embodiment 56 of many implementations includes at least one computer-readable non-transitory storage medium having processor-executable instructions stored thereon, the instructions responsive to execution of the instructions to cause a computing system to: receive an indication of a synchronization request; , determine one or more files stored in a staging location based on the indication, create a data transfer filter based on the one or more files, and direct the one or more files to a target computing device based on the data transfer filter. Let it be transmitted.

다수의 구현 중 실시예 57은 실시예 56의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 동기화 요청의 표시를 수신하는 단계는 동기화 조건에 기초한다.Embodiment 57 of multiple implementations includes at least one computer-readable non-transitory storage medium of embodiment 56, wherein receiving an indication of a synchronization request is based on a synchronization condition.

다수의 구현 중 실시예 58은 실시예 57의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 동기화 조건은 시간 간격이다.Embodiment 58 of multiple implementations includes at least one computer-readable non-transitory storage medium of embodiment 57, wherein the synchronization condition is a time interval.

다수의 구현 중 실시예 59는 실시예 56의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 데이터 전송 필터는 상기 스테이징 위치에 저장된 상기 하나 이상의 파일의 목록을 포함한다.Embodiment 59 of many implementations includes at least one computer-readable non-transitory storage medium of embodiment 56, wherein the data transmission filter includes a list of the one or more files stored in the staging location.

다수의 구현 중 실시예 60은 실시예 56의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 하나 이상의 파일에 기초하여, 상기 데이터 전송 필터를 생성하는 단계는 클라우드 서비스에 대한 함수 호출을 호출하는 메시지를 생성하는 단계를 포함하며, 상기 메시지는 상기 함수 호출의 인수로서 하나 이상의 파일을 식별하는 하나 이상의 파라미터를 전달한다.Embodiment 60 of the plurality of implementations includes at least one computer-readable non-transitory storage medium of embodiment 56, wherein based on the one or more files, generating the data transmission filter comprises making a function call to a cloud service. generating a calling message, wherein the message passes one or more parameters identifying one or more files as arguments to the function call.

다수의 구현 중 실시예 61은 실시예 56의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 단계는, 데이터 동기화 애플리케이션 프로그램이 상기 하나 이상의 파일에 대해서만 상기 스테이징 위치 및 상기 대상 컴퓨팅 장치를 스캔하게 하는 단계를 포함한다.Embodiment 61 of the plurality of implementations includes at least one computer-readable non-transitory storage medium of embodiment 56, wherein transmitting the one or more files to the target computing device based on the data transmission filter comprises: data and causing a synchronization application program to scan the staging location and the target computing device only for the one or more files.

다수의 구현 중 실시예 62는 실시예 56의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 프로세서 실행 가능 명령어는, 추가 실행에 응답하여, 상기 컴퓨팅 시스템이, 데이터 출처 장치로부터, 상기 하나 이상의 파일을 수신하게 한다.Embodiment 62 of many implementations includes at least one computer-readable non-transitory storage medium of embodiment 56, wherein the processor-executable instructions, in response to further execution, cause the computing system to: Allows one or more files to be received.

다수의 구현 중 실시예 63은 실시예 62의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 데이터 출처 장치는 시퀀서 또는 전자 현미경 중 하나 이상을 포함한다.Embodiment 63, among many implementations, includes at least one computer-readable non-transitory storage medium of embodiment 62, wherein the data source device includes one or more of a sequencer or an electron microscope.

다수의 구현 중 실시예 64는 실시예 63의 적어도 하나의 컴퓨터 판독 가능한 비일시적 저장 매체를 포함하되, 상기 하나 이상의 파일은 서열 데이터, 입자 이미지, 또는 둘 다를 포함한다.Example 64, among many implementations, includes at least one computer-readable non-transitory storage medium of Example 63, wherein the one or more files include sequence data, particle images, or both.

다수의 구현 중 실시예 65는 실시예 56의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 프로세서 실행 가능 명령어는, 추가 실행에 응답하여, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 것에 기초하여, 상기 스테이징 위치로부터 상기 하나 이상의 파일을 삭제하게 한다.Embodiment 65 of many implementations includes at least one computer-readable non-transitory storage medium of embodiment 56, wherein the processor-executable instructions, in response to further execution, transmit the one or more files to the target computing device. Based on this, delete the one or more files from the staging location.

다수의 구현예의 실시예 66은 프로세서 실행 가능 명령이 저장된 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하고, 상기 명령어는 상기 실행에 응답하여, 컴퓨팅 시스템으로 하여금, 그래픽 사용자 인터페이스를 통해 객체 스토리지로부터의 데이터세트를 분산 파일 시스템으로 변환하는 요청을 수신하게 하고, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하게 하고, 그리고 상기 요청 및 상기 표시에 기초하여 상기 객체 스토리지로부터의 데이터세트를 상기 스토리지 크기와 연관된 상기 분산 파일 시스템으로 변환하게 한다.Embodiment 66 of multiple implementations includes at least one computer-readable non-transitory storage medium having processor-executable instructions stored thereon, wherein, in response to execution, the instructions cause a computing system to retrieve an object from object storage via a graphical user interface. receive a request to convert a dataset to a distributed file system, receive an indication of a storage size of the distributed file system via the graphical user interface, and receive a storage size of the distributed file system based on the request and the indication. Convert the dataset to the distributed file system associated with the storage size.

다수의 구현 중 실시예 67은 실시예 66의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 프로세서 실행 가능 명령어는, 추가 실행에 응답하여, 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템을 마운트하라는 요청을 수신하게 하고, 상기 분산 파일 시스템을 마운트하게 한다.Embodiment 67 of many implementations includes at least one computer-readable non-transitory storage medium of embodiment 66, wherein the processor-executable instructions further cause the computing system, in response to further execution, to display the graphical user interface. A request to mount the distributed file system is received through and the distributed file system is mounted.

다수의 구현 중 실시예 68은 실시예 66의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 프로세서 실행 가능 명령어는, 추가 실행에 응답하여, 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 데이터를 상기 분산 파일 시스템 내에 저장하라는 요청을 수신하게 하고, 상기 분산 파일 시스템 내 데이터를 상기 객체 스토리지 내에 저장하게 한다.Embodiment 68 of many implementations includes at least one computer-readable non-transitory storage medium of embodiment 66, wherein the processor-executable instructions further cause the computing system, in response to further execution, to display the graphical user interface. A request to store data in the distributed file system is received through and the data in the distributed file system is stored in the object storage.

다수의 구현 중 실시예 69는 실시예 66의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 프로세서 실행 가능 명령어는, 추가 실행에 응답하여, 추가로 상기 컴퓨팅 시스템이, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템을 삭제하라는 요청을 수신하게 하고, 상기 분산 파일 시스템을 삭제하게 한다.Embodiment 69 of many implementations includes at least one computer-readable non-transitory storage medium of embodiment 66, wherein the processor-executable instructions further cause the computing system, in response to further execution, to display the graphical user interface. A request to delete the distributed file system is received through and the distributed file system is deleted.

다수의 구현 중 실시예 70은 프로세서 실행 가능 명령이 저장된 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하고, 상기 명령어는, 실행에 응답하여, 컴퓨팅 시스템이, 데이터 분석 애플리케이션 프로그램을 식별하게 하고, 상기 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하게 하고, 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하게 하고, 그리고 상기 프로그램 템플릿에 기초하여 상기 데이터세트 상에 상기 데이터 분석 애플리케이션 프로그램을 실행하게 한다.Embodiment 70 of many implementations includes at least one computer-readable non-transitory storage medium having processor-executable instructions stored thereon, the instructions, in response to execution, causing the computing system to identify a data analysis application program; Identify a dataset associated with the data analysis application program, determine, as a program template, one or more operational parameters associated with the data analysis application program to process the dataset, and determine the dataset based on the program template. Run the data analysis application program on the computer.

다수의 구현 중 실시예 71은 실시예 70의 적어도 하나의 컴퓨터 판독 가능한 비일시적 저장 매체를 포함하되, 상기 하나 이상의 작업 파라미터는, 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 또는 다수의 연산 노드 중 하나 이상을 포함한다.Embodiment 71 of multiple implementations includes at least one computer-readable non-transitory storage medium of embodiment 70, wherein the one or more operational parameters include multiple message passing interfaces (MPIs), multiple threads, or multiple operations. Contains one or more of the nodes.

다수의 구현예의 실시예 72는 실시예 70의 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하되, 상기 프로세서 실행 가능 명령어는, 추가 실행에 응답하여, 추가로 상기 컴퓨팅 시스템이 상기 데이터 분석 애플리케이션 프로그램에 의해 실행 가능한 복수의 태스크를 결정하게 한다.Embodiment 72 of multiple implementations includes at least one computer-readable non-transitory storage medium of embodiment 70, wherein the processor-executable instructions further cause the computing system to, in response to further execution, execute the data analysis application program. A plurality of tasks that can be executed are determined by .

다수의 구현 중 실시예 73은 실시예 70의 적어도 하나의 컴퓨터 판독 가능한 비일시적 저장 매체를 포함하되, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 상기 하나 이상의 작업 파라미터를 결정하는 단계는, 상기 복수의 태스크의 각 태스크에 대한 하나 이상의 작업 파라미터를 결정하는 단계를 포함한다.Embodiment 73, among many implementations, includes at least one computer-readable non-transitory storage medium of embodiment 70, wherein determining the one or more operating parameters associated with the data analysis application program processing the dataset comprises: and determining one or more work parameters for each task of the plurality of tasks.

다수의 구현 중 실시예 74는 컴퓨팅 시스템을 포함하고, 상기 시스템은 적어도 하나의 프로세서; 및 프로세서 실행 가능 명령어가 저장된 적어도 하나의 메모리 장치를 포함하고, 상기 명령어는, 상기 적어도 하나의 프로세서에 의한 실행에 응답하여, 상기 컴퓨팅 시스템이, 동기화 요청의 표시를 수신하게 하고, 상기 표시에 기초하여 스테이징 위치에 저장된 하나 이상의 파일을 결정하게 하고, 상기 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하게 하고, 상기 데이터 전송 필터에 기초하여 상기 하나 이상의 파일을 대상 컴퓨팅 장치의 객체 스토리지 장치로 전송하게 하고, 그래픽 사용자 인터페이스를 통해 상기 하나 이상의 파일을 객체 스토리지에서 분산 파일 시스템으로 변환하기 위한 요청을 수신하게 하고, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하게 하고, 상기 요청과 상기 표시에 기초하여 상기 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하게 하고, 상기 분산 파일 시스템 내의 상기 하나 이상의 파일과 연관된 데이터 분석 애플리케이션 프로그램을 식별하게 하고, 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하게 하고, 그리고 상기 프로그램 템플릿에 기초하여 상기 데이터 분석 애플리케이션 프로그램을 상기 분산 파일 시스템 내 상기 하나 이상의 파일에 실행하게 한다.Embodiment 74 of a number of implementations includes a computing system, the system comprising at least one processor; and at least one memory device having processor-executable instructions stored thereon, the instructions, in response to execution by the at least one processor, causing the computing system to receive an indication of a synchronization request, based on the indication. Determine one or more files stored in the staging location, create a data transmission filter based on the one or more files, and transmit the one or more files to an object storage device of the target computing device based on the data transmission filter. and receive, via a graphical user interface, a request to convert the one or more files from object storage to a distributed file system, and receive, via the graphical user interface, an indication of a storage size of the distributed file system, wherein the request and convert the one or more files from the object storage to a distributed file system associated with a storage size based on the indication, identify a data analysis application program associated with the one or more files in the distributed file system, and serve as a program template. , determine one or more operational parameters associated with the data analysis application program for processing the dataset, and execute the data analysis application program on the one or more files in the distributed file system based on the program template.

다수의 구현 중 실시예 75는 프로세서 실행 가능 명령이 저장된 적어도 하나의 컴퓨터 판독 가능 비일시적 저장 매체를 포함하고, 상기 명령어는, 실행에 응답하여, 컴퓨팅 시스템이, 동기화 요청의 표시를 수신하게 하고, 상기 표시에 기초하여 스테이징 위치에 저장된 하나 이상의 파일을 결정하게 하고, 상기 하나 이상의 파일에 기초하여 데이터 전송 필터를 생성하게 하고, 상기 데이터 전송 필터에 기초하여 상기 하나 이상의 파일을 대상 컴퓨팅 장치의 객체 스토리지 장치로 전송하게 하고, 그래픽 사용자 인터페이스를 통해 상기 하나 이상의 파일을 객체 스토리지에서 분산 파일 시스템으로 변환하기 위한 요청을 수신하게 하고, 상기 그래픽 사용자 인터페이스를 통해 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하게 하고, 상기 요청과 상기 표시에 기초하여 상기 객체 스토리지로부터 스토리지 크기와 연관된 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하게 하고, 상기 분산 파일 시스템 내의 상기 하나 이상의 파일과 연관된 데이터 분석 애플리케이션 프로그램을 식별하게 하고, 프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하게 하고, 그리고 상기 프로그램 템플릿에 기초하여 상기 데이터 분석 애플리케이션 프로그램을 상기 분산 파일 시스템 내 상기 하나 이상의 파일에 실행하게 한다.Embodiment 75 of many implementations includes at least one computer-readable non-transitory storage medium having processor-executable instructions stored thereon, the instructions, in response to execution, causing the computing system to receive an indication of a synchronization request; determine one or more files stored in a staging location based on the indication, generate a data transfer filter based on the one or more files, and transfer the one or more files to object storage on a target computing device based on the data transfer filter. transmit to a device, and receive, via a graphical user interface, a request to convert the one or more files from object storage to a distributed file system, and receive, via the graphical user interface, an indication of a storage size of the distributed file system. convert the one or more files from the object storage to a distributed file system associated with a storage size based on the request and the indication, and identify a data analysis application program associated with the one or more files in the distributed file system; and , a program template, configured to determine one or more operational parameters associated with the data analysis application program for processing the dataset, and, based on the program template, to store the data analysis application program in the one or more files in the distributed file system. Let it run.

개시된 방법 및 시스템은 빅 데이터 수집 및 실시간 분석을 위해 구성될 수 있다. 개시된 방법 및 시스템은, 원시 Cryo-EM 데이터의 초고속 엔드-투-엔드 프로세싱 및 전자 밀도 맵의 재구성을 위해 구성되고, 이를 모델 구축 소프트웨어로 섭취할 준비가 된다.The disclosed methods and systems can be configured for big data collection and real-time analysis. The disclosed methods and systems are structured for ultrafast end-to-end processing of raw Cryo-EM data and reconstruction of electron density maps, ready for ingestion into model building software.

개시된 방법 및 시스템은, 사전 프로세싱으로부터 입자 픽킹, 2D 입자 분류, 3D 초기 구조 결정, 고해상도 정제, 및 이질성 분석을 통해 하나 이상의 단계에서 재구성 알고리즘 및 GPU 가속을 최적화한다.The disclosed methods and systems optimize reconstruction algorithms and GPU acceleration in one or more steps from preprocessing through particle picking, 2D particle classification, 3D initial structure determination, high resolution refinement, and heterogeneity analysis.

개시된 방법 및 시스템은, 실시간 데이터 수집 동안 실시간 Cryo-EM 데이터 품질 평가 및 의사 결정을 가능하게 할 뿐만 아니라, 이미 이용 가능한 데이터를 처리하기 위한 신속하고 능률적인 워크플로우를 가능하게 한다.The disclosed methods and systems enable real-time Cryo-EM data quality assessment and decision-making during real-time data collection, as well as a rapid and streamlined workflow for processing already available data.

개시된 방법 및 시스템은, 치료적으로 관련된 표적, 막 단백질, 연속적으로 가요성인 구조에 대한 전문적이고 고유한 툴(예, RELION)을 이용해 작용한다.The disclosed methods and systems work using specialized and unique tools (e.g., RELION) for targeting therapeutically relevant targets, membrane proteins, and continuously flexible structures.

개시된 방법 및 시스템은, 더 빠른 프로세스를 위해 스토리지 상에서 양호한 대역폭을 갖는 연산 플랫폼 처리하는 단계, 및 이에 의해 값비싼 리소스인 연산 실행 시간을 감소시키는 단계를 포함한다.The disclosed methods and systems include processing a computational platform with good bandwidth on storage for faster processes, thereby reducing computational execution time, which is an expensive resource.

개시된 방법 및 시스템은, 과학자가 IT 의존성 또는 연산 설계를 결정할 필요 없이, 주문형으로 다수의 분석 프로세스를 실행할 수 있게 하는 셀프 서비스, 클라우드 기반, 연산 플랫폼으로서 구성될 수 있다. 개시된 방법 및 시스템은, 데이터 유형 또는 크기, 또는 실험 유형에 관계없이 광범위하고 유연한 응용을 갖는다.The disclosed methods and systems can be configured as a self-service, cloud-based, computational platform that allows scientists to run multiple analytical processes on-demand without having to determine IT dependencies or computational design. The disclosed methods and systems have broad and flexible applications regardless of data type or size or experiment type.

개시된 방법 및 시스템은, 잠재적 치료 항체와 표적 단백질 사이의 결합 복합체의 상세한 구조를 결정할 수 있다.The disclosed methods and systems can determine the detailed structure of the binding complex between a potential therapeutic antibody and a target protein.

개시된 방법 및 시스템은, 과학자가 높은 수준의 품질과 민첩성을 가지면서 비용을 포함하여 적시에 방대한 양의 이미지를 확장하고 처리할 수 있게 하는 플랫폼으로서 구성될 수 있다.The disclosed methods and systems can be configured as a platform that allows scientists to scale and process vast amounts of images in a timely manner, including cost, with a high level of quality and agility.

개시된 방법 및 시스템은, 모델 개발을 위해 시간 경과에 따라 많은 양의 데이터(예, 1 TB/시간의 원시 데이터)를 전송하고 처리할 수 있도록 AWS Datasync, Apache Airflow(오케스트레이션용), Luster Filesystem(고 처리량 스토리지용) NextFlow 및 AWS 병렬 클러스터 프레임워크를 사용함으로써, 자동화 엔드-투-엔드 프로세싱 파이프라인으로 구성될 수 있다.The disclosed methods and systems include AWS Datasync, Apache Airflow (for orchestration), and Luster Filesystem (for orchestration) to transfer and process large amounts of data (e.g., 1 TB/hour of raw data) over time for model development. By using NextFlow (for throughput storage) and the AWS parallel cluster framework, an automated end-to-end processing pipeline can be configured.

개시된 방법 및 시스템은, 실시간 Cryo-EM 데이터 품질 평가 및 데이터 수집 동안의 의사 결정을 위한 RELION을 통합할 수 있다.The disclosed methods and systems can incorporate RELION for real-time Cryo-EM data quality assessment and decision making during data collection.

개시된 방법 및 시스템은, GPU 기반 연산을 수용하기 위해 AWS 병렬 연산 프레임워크를 확장할 수 있다.The disclosed methods and systems can extend the AWS parallel computing framework to accommodate GPU-based computation.

개시된 방법 및 시스템은, 데이터 수명 주기의 사용자 관리를 가능하게 하는, 데이터 관리 및 계층화 툴을 포함할 수 있다.The disclosed methods and systems may include data management and layering tools that enable user management of the data life cycle.

개시된 방법 및 시스템은, NICE DCV와 같은 고성능 원격 디스플레이 프로토콜을 구현하여, 원격 사용자에게 그래픽 집약적 애플리케이션을 제공하고 임의의 클라이언트 머신에 사용자 인터페이스를 스트리밍하여, 전용 워크스테이션에 대한 필요성을 제거할 수 있다.The disclosed methods and systems can implement high-performance remote display protocols, such as NICE DCV, to provide graphics-intensive applications to remote users and stream the user interface to any client machine, eliminating the need for a dedicated workstation.

개시된 방법 및 시스템은, 수집 동안 Cryo-EM 데이터 품질 평가 및 의사 결정을 다루기 위해 일반적으로 소프트웨어 개발로 제한되는 개념인 블루-그린 고성능 컴퓨팅을 이용할 수 있다. 결과적으로 작업 프로세싱이 가속화되고 확장된다.The disclosed methods and systems can utilize blue-green high-performance computing, a concept generally limited to software development, to address Cryo-EM data quality assessment and decision-making during acquisition. As a result, job processing is accelerated and scaled.

3 내지 5일이 소요된 유사한 작업 부하 특성을 가진 이전의 데이터 파이프라인과는 달리, 개시된 방법 및 시스템은, Cryo-EM 파이프라인의 속도를 약 60분/1TB 데이터까지 높일 수 있다 - 예를 들어, 샘플이 현미경에 아직 있는 동안에는 원시 데이터 수집, 사전 프로세스, 3D 맵을 분류, 재구성 및 미세 조정한다.Unlike previous data pipelines with similar workload characteristics that took 3 to 5 days, the disclosed methods and systems can speed up Cryo-EM pipelines to about 60 minutes/1 TB of data - e.g. , collect raw data, pre-process, classify, reconstruct and fine-tune the 3D maps while the sample is still in the microscope.

본원에 개시된 방법 및 시스템을 사용함으로써, 과학자는 데이터 수집이 진행 중인 동안 피킹 전략을 테스트하고 정제하여 샘플 준비를 미세 조정할 수 있다. 그 결과, 불량한 샘플에서 낭비되는 시간이 최소화될 수 있고, 과학자는 현미경 실험을 수행하면서 즉시 결정을 내릴 수 있다. RELION을 활용함으로써, 과학자는 2D 및 3D 정보를 사용하여 이미징 및 프로세싱 파라미터를 실시간으로 조절함으로써 그들의 바람직한 방향을 평가할 수 있다. 개시된 방법 및 시스템은 또한, 제한된 노이즈 신호 및 해상도 품질을 해결하기 위해 NIFTY 프로세싱 프레임워크와 플러그인과의 상호 운용성을 가능하게 하여, 신호 품질(예, 신호-대-노이즈 비율)을 개선할 수 있다.Using the methods and systems disclosed herein, scientists can fine-tune sample preparation by testing and refining picking strategies while data collection is ongoing. As a result, time wasted on poor samples can be minimized and scientists can make decisions immediately while performing microscopy experiments. By leveraging RELION, scientists can use 2D and 3D information to adjust imaging and processing parameters in real time to assess their preferred orientation. The disclosed methods and systems may also enable interoperability with the NIFTY processing framework and plug-ins to address limited noisy signals and resolution quality, thereby improving signal quality (e.g., signal-to-noise ratio).

개시된 방법 및 시스템은, 사용자가 어디에서나 RELION 및 관련 애플리케이션에 즉시 액세스할 수 있게 하는 관리형 서비스로서 구성될 수 있다.The disclosed methods and systems can be configured as a managed service that provides users with instant access to RELION and related applications from anywhere.

개시된 방법 및 시스템은, Cryo-EM 유형의 대용량 데이터 파이프라인을 지원하기 위해, 확장 가능한 클라우드 기반 데이터 처리 및 컴퓨팅 플랫폼을 나타낸다. 개시된 방법 및 시스템은 클라우드 기반 솔루션의 주요 이점을 제공한다: 확장성, 민첩성, 끊임없이 변화하는 연구 요구에 대한 응답성.The disclosed methods and systems represent a scalable, cloud-based data processing and computing platform to support Cryo-EM type large data pipelines. The disclosed methods and systems provide key advantages of cloud-based solutions: scalability, agility, and responsiveness to constantly changing research needs.

개시된 방법 및 시스템은 대규모 시퀀싱, 이미징, 및 다른 고 처리량 생물학 연구 노력과 같은 다른 연구 공간에 적용될 수 있다.The disclosed methods and systems may be applied to other research spaces such as large-scale sequencing, imaging, and other high-throughput biological research efforts.

특정 구성이 설명되었지만, 본원의 구성은 모든 측면에서 제한적이 아니라 가능한 구성으로 의도되기 때문에, 그 범주가 제시된 특정 구성으로 제한되도록 의도되지 않는다.Although specific configurations have been described, the scope is not intended to be limited to the specific configurations presented, as the configurations herein are intended to be possible configurations and not limiting in all respects.

달리 명시적으로 언급되지 않는 한, 본원에 기재된 임의의 방법은 그 단계가 특정 순서로 수행될 것을 요구하는 것으로 해석되는 것으로 의도되지 않는다. 따라서, 방법 청구범위가 그 단계가 따르도록 명령을 실제로 언급하지 않거나, 그 단계가 특정 명령으로 제한되어야 한다는 청구범위 또는 설명에서 달리 구체적으로 언급되지 않는 경우, 어떤 측면에서도 명령을 추론하도록 의도되지 않는다. 이는 다음과 같은 해석을 위한 비-명시적 근거에 유효하고 다음을 포함한다: 단계 또는 작동 흐름의 배열에 관한 논리 문제, 문법적 구성 또는 구두점에서 파생된 단순 의미, 본 명세서에 기술된 구성의 수 또는 유형.Unless explicitly stated otherwise, any method described herein is not intended to be construed as requiring that the steps be performed in a particular order. Accordingly, unless a method claim actually states instructions for a step to follow, or unless it is otherwise specifically stated in the claims or description that the steps are to be limited to specific instructions, instructions are not intended to be inferred in any respect. . This is valid for non-explicit grounds for interpretation, including: logical matters regarding the arrangement of steps or operational flows, simple meanings derived from grammatical constructions or punctuation, the number of constructions described herein, or category.

범주 또는 사상을 벗어나지 않는다면, 다양한 변형 및 변경이 이루어질 수 있다는 것이 당업자에게 명백할 것이다. 다른 구성은 본 명세서 및 본원에 설명된 실시를 고려함으로써 당업자에게 명백해질 것이다. 본 명세서 및 설명된 구성은 단지 예시적인 것으로 간주되고, 진정한 범주 및 사상은 다음의 청구범위에 의해 표시되도록 의도된다.It will be apparent to those skilled in the art that various modifications and changes may be made without departing from the scope or spirit. Other configurations will become apparent to those skilled in the art from consideration of the specification and practice described herein. The specification and described configurations are to be regarded as exemplary only, and the true scope and spirit is intended to be indicated by the following claims.

Claims (19)

방법으로서,
동기화 요청의 표시를 수신하는 단계;
상기 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계;
상기 하나 이상의 파일에 기초하여, 데이터 전송 필터를 생성하는 단계; 및
상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 대상 컴퓨팅 장치로 전송하는 단계를 포함하는, 방법.
As a method,
Receiving an indication of a synchronization request;
based on the indication, determining one or more files stored in a staging location;
creating a data transmission filter based on the one or more files; and
Based on the data transmission filter, the method comprising transmitting the one or more files to a target computing device.
제1항에 있어서, 상기 동기화 요청의 표시를 수신하는 단계는 동기화 조건에 기초하는, 방법.The method of claim 1, wherein receiving an indication of a synchronization request is based on synchronization conditions. 제2항에 있어서, 상기 동기화 조건은 시간 간격인, 방법.The method of claim 2, wherein the synchronization condition is a time interval. 제1항에 있어서, 상기 데이터 전송 필터는 상기 스테이징 위치에 저장된 상기 하나 이상의 파일의 목록을 포함하는 방법.The method of claim 1, wherein the data transfer filter includes a list of the one or more files stored in the staging location. 제1항에 있어서, 상기 하나 이상의 파일에 기초하여, 상기 데이터 전송 필터를 생성하는 단계는 클라우드 서비스에 대한 함수 호출을 호출하는 메시지를 생성하는 단계를 포함하며, 상기 메시지는 상기 함수 호출의 인수로서 상기 하나 이상의 파일을 식별하는 하나 이상의 파라미터를 전달하는, 방법.The method of claim 1, wherein based on the one or more files, generating the data transmission filter includes generating a message calling a function call to a cloud service, the message serving as an argument to the function call. Passing one or more parameters identifying the one or more files. 제1항에 있어서, 상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 단계는, 데이터 동기화 애플리케이션 프로그램이 상기 하나 이상의 파일에 대해서만 상기 스테이징 위치 및 상기 대상 컴퓨팅 장치를 스캔하게 하는 단계를 포함하는, 방법.The method of claim 1, wherein based on the data transfer filter, transferring the one or more files to the target computing device comprises: a data synchronization application program scanning the staging location and the target computing device only for the one or more files. A method comprising the steps of: 제1항에 있어서, 상기 하나 이상의 파일을 데이터 출처 장치로부터 수신하는 단계를 추가로 포함하는, 방법.2. The method of claim 1, further comprising receiving the one or more files from a data source device. 제7항에 있어서, 상기 데이터 출처 장치는 시퀀서 또는 전자 현미경 중 하나 이상을 포함하는, 방법.8. The method of claim 7, wherein the data source device comprises one or more of a sequencer or an electron microscope. 제8항에 있어서, 상기 하나 이상의 파일은 서열 데이터, 입자 이미지, 또는 둘 다를 포함하는, 방법.9. The method of claim 8, wherein the one or more files include sequence data, particle images, or both. 제1항에 있어서, 상기 하나 이상의 파일을 상기 대상 컴퓨팅 장치로 전송하는 것에 기초하여, 상기 스테이징 위치로부터 상기 하나 이상의 파일을 삭제하는 단계를 추가로 포함하는, 방법.The method of claim 1 , further comprising deleting the one or more files from the staging location based on transferring the one or more files to the target computing device. 방법으로서,
그래픽 사용자 인터페이스를 통해, 객체 스토리지로부터 분산 파일 시스템으로 데이터세트를 변환하라는 요청을 수신하는 단계;
상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계; 및
상기 요청 및 상기 표시에 기초하여, 객체 스토리지로부터 상기 스토리지 크기와 연관된 상기 분산 파일 시스템으로 상기 데이터세트를 변환하는 단계를 포함하는, 방법.
As a method,
Receiving, via a graphical user interface, a request to convert a dataset from object storage to a distributed file system;
receiving, via the graphical user interface, an indication of a storage size of the distributed file system; and
Based on the request and the indication, converting the dataset from object storage to the distributed file system associated with the storage size.
제11항에 있어서,
상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템을 마운트하라는 요청을 수신하는 단계; 및
상기 분산 파일 시스템을 마운트하는 단계를 추가로 포함하는, 방법.
According to clause 11,
Receiving, via the graphical user interface, a request to mount the distributed file system; and
The method further comprising mounting the distributed file system.
제11항에 있어서,
상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템 내의 데이터를 상기 객체 스토리지 내에 저장하라는 요청을 수신하는 단계; 및
상기 분산 파일 시스템 내의 데이터를 상기 객체 스토리지에 저장하는 단계를 추가로 포함하는, 방법.
According to clause 11,
Receiving, via the graphical user interface, a request to store data within the distributed file system into the object storage; and
The method further comprising storing data in the distributed file system to the object storage.
제11항에 있어서,
상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템을 삭제하라는 요청을 수신하는 단계; 및
상기 분산 파일 시스템을 삭제하는 단계를 추가로 포함하는, 방법.
According to clause 11,
Receiving, via the graphical user interface, a request to delete the distributed file system; and
The method further comprising deleting the distributed file system.
방법으로서,
데이터 분석 애플리케이션 프로그램을 식별하는 단계;
상기 데이터 분석 애플리케이션 프로그램과 연관된 데이터세트를 식별하는 단계;
프로그램 템플릿으로서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계; 및
상기 프로그램 템플릿에 기초하여, 상기 데이터세트 상에서 상기 데이터 분석 애플리케이션 프로그램의 실행을 유발하는 단계를 포함하는, 방법.
As a method,
identifying a data analysis application program;
identifying a dataset associated with the data analysis application program;
A program template, comprising: determining one or more operational parameters associated with the data analysis application program to process the dataset; and
Based on the program template, causing execution of the data analysis application program on the dataset.
제15항에 있어서, 상기 하나 이상의 작업 파라미터는 다수의 메시지 전달 인터페이스(MPI), 다수의 스레드, 또는 다수의 연산 노드 중 하나 이상을 포함하는, 방법.16. The method of claim 15, wherein the one or more operation parameters include one or more of a number of message passing interfaces (MPIs), a number of threads, or a number of compute nodes. 제15항에 있어서, 상기 데이터 분석 애플리케이션 프로그램에 의해 실행 가능한 복수의 태스크를 결정하는 단계를 추가로 포함하는, 방법.16. The method of claim 15, further comprising determining a plurality of tasks executable by the data analysis application program. 제17항에 있어서, 상기 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 상기 하나 이상의 작업 파라미터를 결정하는 단계는, 상기 복수의 태스크의 각 태스크에 대한 하나 이상의 작업 파라미터를 결정하는 단계를 포함하는, 방법.18. The method of claim 17, wherein determining the one or more operating parameters associated with the data analysis application program that processes the dataset comprises determining one or more operating parameters for each task of the plurality of tasks. , method. 방법으로서,
동기화 요청의 표시를 수신하는 단계;
상기 표시에 기초하여, 스테이징 위치에 저장된 하나 이상의 파일을 결정하는 단계;
상기 하나 이상의 파일에 기초하여, 데이터 전송 필터를 생성하는 단계;
상기 데이터 전송 필터에 기초하여, 상기 하나 이상의 파일을 대상 컴퓨팅 장치의 객체 스토리지로 전송하는 단계;
그래픽 사용자 인터페이스를 통해, 객체 스토리지로부터 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하라는 요청을 수신하는 단계;
상기 그래픽 사용자 인터페이스를 통해, 상기 분산 파일 시스템의 스토리지 크기의 표시를 수신하는 단계;
상기 요청 및 상기 표시에 기초하여, 객체 스토리지로부터 상기 스토리지 크기와 연관된 상기 분산 파일 시스템으로 상기 하나 이상의 파일을 변환하는 단계;
상기 분산 파일 시스템 내의 하나 이상의 파일과 연관된 데이터 분석 애플리케이션 프로그램을 식별하는 단계;
프로그램 템플릿으로서, 데이터세트를 처리하는 상기 데이터 분석 애플리케이션 프로그램과 연관된 하나 이상의 작업 파라미터를 결정하는 단계; 및
상기 프로그램 템플릿에 기초하여, 상기 분산 파일 시스템 내의 상기 하나 이상의 파일에 상기 상기 데이터 분석 애플리케이션 프로그램의 실행을 유발하는 단계를 포함하는, 방법.
As a method,
Receiving an indication of a synchronization request;
based on the indication, determining one or more files stored in a staging location;
creating a data transmission filter based on the one or more files;
Based on the data transmission filter, transmitting the one or more files to object storage of a target computing device;
Receiving, via a graphical user interface, a request to convert the one or more files from object storage to a distributed file system;
receiving, via the graphical user interface, an indication of a storage size of the distributed file system;
based on the request and the indication, converting the one or more files from object storage to the distributed file system associated with the storage size;
identifying a data analysis application program associated with one or more files within the distributed file system;
A program template, comprising: determining one or more operational parameters associated with the data analysis application program for processing a dataset; and
Based on the program template, causing execution of the data analysis application program on the one or more files in the distributed file system.
KR1020237035224A 2021-03-19 2022-03-21 data pipeline KR20230156416A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163163690P 2021-03-19 2021-03-19
US63/163,690 2021-03-19
US202163237904P 2021-08-27 2021-08-27
US63/237,904 2021-08-27
PCT/US2022/021190 WO2022198132A1 (en) 2021-03-19 2022-03-21 Data pipeline

Publications (1)

Publication Number Publication Date
KR20230156416A true KR20230156416A (en) 2023-11-14

Family

ID=81328486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237035224A KR20230156416A (en) 2021-03-19 2022-03-21 data pipeline

Country Status (8)

Country Link
US (1) US20220300321A1 (en)
EP (1) EP4309044A1 (en)
JP (1) JP2024511756A (en)
KR (1) KR20230156416A (en)
AU (1) AU2022238487A1 (en)
CA (1) CA3210417A1 (en)
IL (1) IL305574A (en)
WO (1) WO2022198132A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695853B1 (en) * 2022-04-07 2023-07-04 T-Mobile Usa, Inc. Content management systems providing zero recovery point objective

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282359A (en) * 1996-04-09 1997-10-31 Nippon Telegr & Teleph Corp <Ntt> Job-shop scheduling device
US6748504B2 (en) * 2002-02-15 2004-06-08 International Business Machines Corporation Deferred copy-on-write of a snapshot
US7590667B2 (en) * 2003-01-30 2009-09-15 Hitachi, Ltd. File replication method for distributed file systems
US8336040B2 (en) * 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US8725698B2 (en) * 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US9838478B2 (en) * 2014-06-30 2017-12-05 International Business Machines Corporation Identifying a task execution resource of a dispersed storage network
CN104537713B (en) * 2015-01-05 2017-10-03 清华大学 A kind of novel three-dimensional reconfiguration system
US10409863B2 (en) * 2016-02-05 2019-09-10 Sas Institute Inc. Verification and export of federated areas and job flow objects within federated areas
CN109477140B (en) * 2016-09-22 2022-05-31 华为技术有限公司 Data processing method and device and computing node
US10884984B2 (en) * 2017-01-06 2021-01-05 Oracle International Corporation Low-latency direct cloud access with file system hierarchies and semantics
WO2019068201A1 (en) * 2017-10-06 2019-04-11 The Governing Council Of The University Of Toronto Methods and systems for 3d structure estimation using non-uniform refinement
US11449813B2 (en) * 2018-04-13 2022-09-20 Accenture Global Solutions Limited Generating project deliverables using objects of a data model

Also Published As

Publication number Publication date
JP2024511756A (en) 2024-03-15
EP4309044A1 (en) 2024-01-24
AU2022238487A1 (en) 2023-09-21
IL305574A (en) 2023-10-01
CA3210417A1 (en) 2022-09-22
WO2022198132A1 (en) 2022-09-22
US20220300321A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US11403290B1 (en) Managing an artificial intelligence infrastructure
US9740706B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
US9720989B2 (en) Dynamic partitioning techniques for data streams
CN107844388B (en) Streaming restore of database from backup system
EP2905709A2 (en) Method and apparatus for replication of files and file systems using a deduplication key space
US11455168B1 (en) Batch building for deep learning training workloads
KR20160083941A (en) Managed service for acquisition, storage and consumption of large-scale data streams
Zhang et al. Applying twister to scientific applications
CN106104526A (en) The transparent discovery of semi-structured data pattern
US10891266B2 (en) File handling in a hierarchical storage system
Pineda-Morales et al. Towards multi-site metadata management for geographically distributed cloud workflows
KR20230156416A (en) data pipeline
Stotzka et al. Perspective of the Large Scale Data Facility (LSDF) supporting nuclear fusion applications
Dai et al. A performance study of lustre file system checker: Bottlenecks and potentials
Antoniu et al. Scalable data management for map-reduce-based data-intensive applications: a view for cloud and hybrid infrastructures
Wang et al. ODDS: Optimizing data-locality access for scientific data analysis
CN117043759A (en) Data pipeline
Elomari et al. The main characteristics of five distributed file systems required for big data: A comparative study
Bongo et al. Data-intensive computing infrastructure systems for unmodified biological data analysis pipelines
WO2024012082A1 (en) Big data cluster deployment method and apparatus, device, and medium
Morales Efficient support for data-intensive scientific workflows on geo-distributed clouds
Jung et al. High-performance serverless data transfer over wide-area networks
Santamaria Mateu A staging area for in-memory computing
トェトェ ラィン Resource Provisioning in MapReduce
Ross et al. Parallel file systems