KR100246546B1 - 고속 병렬 컴퓨터에서의 시간 동기화 방법 - Google Patents
고속 병렬 컴퓨터에서의 시간 동기화 방법 Download PDFInfo
- Publication number
- KR100246546B1 KR100246546B1 KR1019970048561A KR19970048561A KR100246546B1 KR 100246546 B1 KR100246546 B1 KR 100246546B1 KR 1019970048561 A KR1019970048561 A KR 1019970048561A KR 19970048561 A KR19970048561 A KR 19970048561A KR 100246546 B1 KR100246546 B1 KR 100246546B1
- Authority
- KR
- South Korea
- Prior art keywords
- time
- node
- clock
- speed parallel
- parallel computer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 클러스터(cluster) 시스템을 구성하는 노드(node)들의 시간을 일치 시키는 것으로, 클러스터 시스템을 구성하는 노드 각각은 많은 하드웨어 구성 요소 중에 사용자에게 시간을 알릴 수 있는 시계(Real-Time Clock)를 가지고 있어 이들 시계의 시간을 동기화 시키는 방법과 노드 내의 소프트웨어 시계와 하드웨어 시계(RTC)를 동기화 시키는 고속 병렬 컴퓨터에서의 시간 동기화 방법에 관한 것이다.
Description
본 발명은 고속 병렬 컴퓨터를 구성하는 노드들이 가지고 있는 하드웨어 시계와 소프트웨어 시계의 시간을 동기화시키기 위한 고속 병렬 컴퓨터에서의 시간 동기화 방법에 관한 것이다.
본 발명은 클러스터(cluster) 시스템을 구성하는 노드(node)들의 시간을 일치 시키는 것으로, 클러스터 시스템을 구성하는 노드 각각은 많은 하드웨어 구성 요소 중에 사용자에게 시간을 알릴 수 있는 시계(Real-Time Clock)를 가지고 있어 이들 시계의 시간을 동기화 시키는 방법과 노드 내의 소프트웨어 시계와 하드웨어 시계(RTC)를 동기화 시키는 방법에 관한 것이다.
고속 병렬 컴퓨터는 클러스터 기반의 멀티 컴퓨터 이다. 즉, 여러 개의 노드들이 빠른 네트웍으로 연결되어 있는 시스템이다. 그리고 이러한 시스템 구조에서 운영체제는 각 노드에 같은 운영체제가 탑재되어 여러 개의 운영체제가 존재한다. 그러나, 사용자에게는 하나의 운영체제가 있는 것 처럼 여겨지도록 하는 단일 시스템 이미지 기능을 제공한다.
고속 병렬 컴퓨터의 각 노드에 운영체제가 탑재되면, 두 가지의 시계가 존재한다. 소프트웨어 시계와 하드웨어 시계이다. 보통 하드웨어 시계를 RTC라 부른다. 소프트웨어 시계는 처리기내 타이머의 주어진 동작 속도에 따라 시간 인터럽트를 운영체제 커널에게 통보되며 진행된다. 그리고 하드웨어 시계(RTC)는 하드웨어 자체적으로 진행되는 시계이다. 따라서 노드 내의 두 가지 시계의 동기화와 노드간의 시계들간의 동기화 방법이 필요하다. 소프트웨어 시계는 각 노드의 작업 상태에 따라 시간 인터럽트의 전달 여부가 결정되므로, 우선순위가 높은 작업을 많이 수행하는 노드에서는 상대적으로 다른 노드들 보다 시간이 늦어질 것이다. 또한 소프트웨어 시계와 하드웨어 시계는 서로 다른 근원에서 의해서 진행되므로 점차 다른 시간을 갖을 것 이다.
고속 병렬 컴퓨터에서의 시간 용도는 여러 부분에서 사용되지만, 운영체제 기능 중 파일을 관리하기 위해 시간 동기화가 필요하다. 즉 파일을 생성한 노드와 파일을 컴파일(compiling)하는 노드간의 시간 차이가 있으면 이 파일은 컴파일 되지 않을 것이다. 이러한 목적에서의 시간 동기화의 단위는 분(minute) 단위 이다. 그리고 고속 병렬 컴퓨터에서 사용되는 시간은 외부(예, 손목시계) 시간과는 일치될 필요가 없다.
그러나, 종래의 시간 동기화 방법들은 랜(LAN)이나 웬(WAN)에 연결된 분산 컴퓨팅 환경에서 많이 고려되었으며, 시간 동기화 단위도 분 이하의 작은 단위가 요구되며 먼 거리에 있는 시스템에 동기화를 위해 시간을 보정하는 기능들도 고려되어 복잡하였다.
따라서, 본 발명은 주 노드(master node)의 처리기 내부 타이머의 주기적인 시간 인터럽트를 초 단위로 관리하여 1분이 경과하면 같은 노드의 하드웨어 시계 및 다른 노드들에게 동기화 되어야 할 시간을 통보하는 기능을 운영체제에 제공함으로써, 상기한 단점을 해소할 수 있는 고속 병렬 컴퓨터에서의 시간 동기화 방법을 제공하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명은 처리기의 타이머로부터 주기적인 시간 인터럽트가 발생되어 시간 인터럽트 처리 루틴 수행하고 먼저 발생한 시간 인터럽트 횟수를 증가하여 관리하는 단계와, 상기 시간 인터럽트 처리 루틴을 처리하는 노드가 주 노드 인지를 확인하는 단계와, 상기 노드의 확인 결과 주 노드가 아니면 다른 시간 인터럽트 관련 기능을 수행하고 주 노드 이면 시간 인터럽트 횟수가 1초를 초과하였는지를 확인하는 단계와, 상기 확인 결과 1초가 경과되었으면 마이크로커널에 존재하는 소프트웨어 시계에 1초를 진행시킨 후 시간 인터럽트 횟수가 1분을 초과하였는지를 판단하는 단계와, 상기 확인 결과 1분이 초과되지 않았으면 다른 시간 인터럽트 관련 기능을 수행하고 상기 확인 결과 1분이 초과되었으면 소프트웨어 시간을 읽어 전송 메시지를 구성하고 상기 구성된 전송 메시지를 엑센트네트를 이용해 모든 노드에 1분 이내로 전송 되도록 긴급 메시지로 전송하는 단계와, 상기 노드 내의 하드웨어 시계를 수정하고 다른 시간 인터럽트 관련 기능을 수행한 후 종료하는 단계를 포함하여 이루어진 것을 특징으로 한다.
본 발명은 고속 병렬 컴퓨터의 내부 네트웍을 이용하여 주 노드의 운영체제가 시간을 관리하여 동기화가 필요한 시점에 같은 노드의 하드웨어 시계와 다른 노드들에게 전달 하는 것으로, 고속 병렬 컴퓨터에서 각 노드에 운영체제가 탑재되면, 노드의 특성에 따라 주 노드가 결정된다. 그리고 운영체제 탑재 과정에서 하드웨어 시계의 동작 속도를 설정한다. 보통 설정 속도는 1초에 시간 인터럽트가 60번 발생되도록 한다. 즉 60번의 시간 인터럽트가 발생하면 1초가 흘러간다. 각 노드마다 운영체제를 탑재하면서 처리기 내의 타이머 속도를 동일하게 설정하지만, 여러 환경 차이로 점차 노드내의 소프트웨어 시계와 하드웨어 시계 및 노드들간의 시간이 달라진다. 따라서, 고속 병렬 컴퓨터의 시간 동기화는 처리기 내부 타이머에서 발생하는 시간 인터럽트를 초 단위로 관리하여 동기화 시점을 파악하고, 상기 동기화 시점에서 다른 노드들에게 현재의 시간을 고속 병렬 컴퓨터의 내부 네트웍인 엑센트네트를 통하여 전달하도록 하며, 자신의 하드웨어 시계를 수정하게 된다.
도 1은 본 발명이 적용되는 고속 병렬 컴퓨터의 구성도.
도 2는 본 발명이 적용되는 고속 병렬 컴퓨터의 시간 동기화 절차도.
도 3은 본 발명에 따른 고속 병렬 컴퓨터에서의 시간 동기화 방법을 설명하기 위해 도시한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
1: 처리기 2: 공유 메모리
3: 노드 4, 5: 엑센트네트
6: 상호 연결망 접속 제어기 7: 하드웨어 시계
8: 고속 병렬 컴퓨터 운영 체제 9: 마이크로커널
10: 시스템 서버 11: 소프트웨어 시계
이하, 첨부한 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명이 적용되는 고속 병렬 컴퓨터의 개략적인 구성도로서, 고속 병렬 컴퓨터는 4개의 처리기(1)와, 공유 메모리(2)를 갖는 노드(3), 고속의 네트워크로서 크로스바 스위치인 엑센트네트(4, 5), 엑센트네트(4, 5)와 인터페이스를 담당하는 상호 연결망 접속 제어기(XNIF)(6) 및 하드웨어 시계(RTC)(7)로 구성된다. 상호 연결망 접속 제어기(이하, XNIF 이라 함)(6)는 각 노드(3)에 장착되며, 하드웨어 시계(7)는 각 노드마다 존재한다. 하드웨어 시계(7)(이하, RTC 이라 함)는 운영체제 부팅시 초기화되어 초기화된 속도로 자동적으로 시간을 관리한다. 운영체제에서 수행되는 응용프로그램에 따라 시간을 알기위해서 RTC(7)로 접근하기도 한다.
도 2는 노드에 고속 병렬 컴퓨터 운영체제(8)가 탑재된 개략적인 모습과 시간 동기화 절차를 나타낸 개념도이다. 고속 병렬 컴퓨터 운영체제는 마이크로커널(9)과 시스템 서버(10)로 구성된다. 소프트웨어 시계(11)와 시간 인터럽트 처리 루틴(12)은 마이크로커널(9)에 존재한다. 소프트웨어 시계(11)는 마이크로커널(9)에서 변수로 존재한다. 이 변수의 시간 초기화는 고속 병렬 컴퓨터 운영체제(8)의 부팅시 RTC(7)로부터 시간을 읽어 초기화 한다. 그리고 소프트웨어 시계(11)의 시간 관리를 위해서 처리기(1)내의 타이머를 초기화하여 주기적으로 시간 인터럽트(13)가 발생되도록 한다. 처리기(1) 내의 타이머는 1초에 60번의 시간 인터럽트(13)가 발생하도록 초기화 한다. 즉, 60번의 시간 인터럽트(13)가 발생되면 1초임을 판단할 수 있다. 발생되는 시간 인터럽트(13)는 시간 인터럽트 처리 루틴(12)에 의해 처리된다. 시간 인터럽트 처리 루틴(12)은 발생한 시간 인터럽트(13) 횟수를 관리하여 소프트웨어 시계(11)에 시간을 진행시키고(14) 또한 시간 동기화 시점을 관리한다. 이 시점에 도달하면, 시간 인터럽트 처리 루틴(12)은 다른 노드에 시간 정보를 알리기 위해서 XNIF(6)를 통하여 모든 노드에게 시간을 통보한다(15). 그리고 자신의 RTC(7) 시간도 소프트웨어 시계에 맞춘다(16).
도 3은 본 발명에 따른 고속 병렬 컴퓨터에서의 시간 동기화 방법을 설명하기 위해 도시한 흐름도로서, 노드간의 시간 및 노드 내의 소프트웨어 시간과 하드웨어 시간을 동기화하기 위한 시간 인터럽트 처리 루틴 기능 중 시간 동기화에 대한 흐름도이다. 처리기(1)의 타이머에서 시간 인터럽트(13)는 주기적으로 발생한다(101). 이 인터럽트(13)가 발생되면 처리기(1)에 의해서 자동적으로 시간 인터럽트 처리 루틴(12)을 수행하며, 먼저 발생한 시간 인터럽트 횟수를 증가하여 관리한다(102). 이 목적은 처리기(1)로부터 발생되는 시간 인터럽트(13)로 초나 분을 계산하기 위해서 이다. 이후 시간 인터럽트 처리 루틴(12)을 처리하는 노드(3)가 주 노드 인지를 판단한다(103). 주 노드는 운영체제 부팅시 결정되므로 쉽게 판단할 수 있고 시스템 내에서 주 노드는 하나만 존재한다. 주 노드가 아니면, 나머지 시간 인터럽트 관련 기능을 수행하고(109) 시간 인터럽트 처리 루틴을 종료한다.
노드가 주 노드 이면, 관리된 시간 인터럽트 횟수로 1초가 경과되었는지를 조사한다(104). 1초가 경과되었다면, 마이크로커널(9)에 존재하는 소프트웨어 시계(14)에 1초를 진행시킨다(105). 이후 시간 동기화 단위인 1분이 경과되었는지를 조사한다(106). 동기화 시점이 아니면, 나머지 시간 인터럽트 관련 기능을 수행한다(109). 동기화 시점이라면, 소프트웨어 시계로부터 시간을 읽어 모든 노드에 전달한다. 전달은 고속 병렬 컴퓨터의 노드들을 연결하는 엑센트네트(4, 5)를 통하여 이루어진다. 동기화 단위가 1분 이므로 동기화되어야 할 시간 정보가 1분 내에 모든 노드에 전송되도록 긴급 메시지로 전송한다(107). 다른 노드에 대한 시간 정보 전송이 완료되면, 노드내의 하드웨어 시계를 수정한다(108). 그리고 나머지 시간 관련 인터럽트 기능들을 수행하고 시간 인터럽트 처리 루틴(12)을 종료한다.
상기와 같이 이루어지는 본 발명은 고속 병렬 컴퓨터의 운영체제 중 마이크로커널에 시간 동기화 기능을 제공하여 노드내의 시간 뿐만아니라 노드간의 시간을 일치시키는 역할을 한다. 따라서 본 발명으로 고속 병렬 컴퓨터를 구성하는 어떠한 노드에서라도 사용자에게 동일한 시간을 제공하며, 시간을 기반으로 수행되는 기존의 프로그램을 아무런 문제 없이 수행할 수 있는 탁월한 효과가 있다.
Claims (1)
- 처리기의 타이머로부터 주기적인 시간 인터럽트가 발생되어 시간 인터럽트 처리 루틴 수행하고 먼저 발생한 시간 인터럽트 횟수를 증가하여 관리하는 단계와,상기 시간 인터럽트 처리 루틴을 처리하는 노드가 주 노드 인지를 확인하는 단계와,상기 노드의 확인 결과 주 노드가 아니면 다른 시간 인터럽트 관련 기능을 수행하고 주 노드 이면 시간 인터럽트 횟수가 1초를 초과하였는지를 확인하는 단계와,상기 확인 결과 1초가 경과되었으면 마이크로커널에 존재하는 소프트웨어 시계에 1초를 진행시킨 후 시간 인터럽트 횟수가 1분을 초과하였는지를 판단하고 1초가 초과되지 않았으면는 곧바로 다른 시간 인터럽트 관련 기능을 기능을 수행하는 단계와,상기 확인 결과 1분이 초과되지 않았으면 다른 시간 인터럽트 관련 기능을 수행하고 상기 확인 결과 1분이 초과되었으면 소프트웨어 시간을 읽어 전송 메시지를 구성하고 상기 구성된 전송 메시지를 엑센트네트를 이용해 모든 노드에 1분 이내로 전송 되도록 긴급 메시지로 전송하는 단계와,상기 노드 내의 하드웨어 시계를 수정하고 다른 시간 인터럽트 관련 기능을 수행한 후 종료하는 단계를 포함하여 이루어진 것을 특징으로 하는 고속 병렬 컴퓨터에서의 시간 동기화 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970048561A KR100246546B1 (ko) | 1997-09-24 | 1997-09-24 | 고속 병렬 컴퓨터에서의 시간 동기화 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970048561A KR100246546B1 (ko) | 1997-09-24 | 1997-09-24 | 고속 병렬 컴퓨터에서의 시간 동기화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990026448A KR19990026448A (ko) | 1999-04-15 |
KR100246546B1 true KR100246546B1 (ko) | 2000-03-15 |
Family
ID=19521615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970048561A KR100246546B1 (ko) | 1997-09-24 | 1997-09-24 | 고속 병렬 컴퓨터에서의 시간 동기화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100246546B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563557A (zh) * | 2018-02-08 | 2018-09-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573544B (zh) * | 2018-05-31 | 2024-06-28 | 山东中泳电子股份有限公司 | 一种多时钟双核同步计时器 |
-
1997
- 1997-09-24 KR KR1019970048561A patent/KR100246546B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563557A (zh) * | 2018-02-08 | 2018-09-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
CN108563557B (zh) * | 2018-02-08 | 2020-01-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR19990026448A (ko) | 1999-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5078274B2 (ja) | 拡大縮小可能なマルチプロセッサコンピュータの効率的な仮想タイムベースのための方法、およびプログラム | |
US8453151B2 (en) | Method and system for coordinating hypervisor scheduling | |
EP1856612B1 (en) | Method for counting instructions for logging and replay of a deterministic sequence of events | |
US5371746A (en) | Program debugging system for a distributed data processing system | |
KR100618275B1 (ko) | 고장 내성을 갖는 다중-프로세서 시스템에서 프로세서들의 동기화 | |
JP2002091938A (ja) | フェールオーバを処理するシステムおよび方法 | |
Rezaei et al. | Snapify: Capturing snapshots of offload applications on xeon phi manycore processors | |
US7140015B1 (en) | Microkernel for real time applications | |
EP2975517B1 (fr) | Procédé et dispositif d'exécution synchronisée d'une application dans un environnement à haute disponibilité | |
EP2498163A2 (en) | Information Processing Apparatus and Time-of-Day Control Method | |
Scales et al. | The design and evaluation of a practical system for fault-tolerant virtual machines | |
Burtsev et al. | Transparent checkpoints of closed distributed systems in emulab | |
KR100246546B1 (ko) | 고속 병렬 컴퓨터에서의 시간 동기화 방법 | |
Baliś et al. | A solution for adapting legacy code as web services | |
CN109510682B (zh) | 一种池化服务器系统bmc时钟同步方法、装置、终端及存储介质 | |
GB2206714A (en) | Multiprocessing architecture | |
WO2022041839A1 (zh) | 裸金属服务器在线迁移方法以及系统 | |
JP2024103304A (ja) | 計算機及び遅延発生部位の特定方法 | |
Horikoshi et al. | Scaling Collectives on Large Clusters of Intel (R) Architecture Processors | |
Brooks | z/OS Parallel Sysplex Update | |
Claus et al. | Development of a data acquisition system for the BABAR CP violation experiment | |
Turner | Models of computation for parallel discrete event simulation | |
Jablkowski et al. | High availability in cyber-physical systems by self-determined virtual machine replication | |
De Martino et al. | Production rendering on a local area network | |
Boukerche et al. | Towards building a highly-available cluster based model for high performance computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20071115 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |