KR100246546B1 - 고속 병렬 컴퓨터에서의 시간 동기화 방법 - Google Patents

고속 병렬 컴퓨터에서의 시간 동기화 방법 Download PDF

Info

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
Application number
KR1019970048561A
Other languages
English (en)
Other versions
KR19990026448A (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 정선종
Priority to KR1019970048561A priority Critical patent/KR100246546B1/ko
Publication of KR19990026448A publication Critical patent/KR19990026448A/ko
Application granted granted Critical
Publication of KR100246546B1 publication Critical patent/KR100246546B1/ko

Links

Images

Classifications

    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task 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분이 초과되었으면 소프트웨어 시간을 읽어 전송 메시지를 구성하고 상기 구성된 전송 메시지를 엑센트네트를 이용해 모든 노드에 1분 이내로 전송 되도록 긴급 메시지로 전송하는 단계와,
    상기 노드 내의 하드웨어 시계를 수정하고 다른 시간 인터럽트 관련 기능을 수행한 후 종료하는 단계를 포함하여 이루어진 것을 특징으로 하는 고속 병렬 컴퓨터에서의 시간 동기화 방법.
KR1019970048561A 1997-09-24 1997-09-24 고속 병렬 컴퓨터에서의 시간 동기화 방법 KR100246546B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563557A (zh) * 2018-02-08 2018-09-21 北京东土科技股份有限公司 一种多通道计算机的通道同步方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573544B (zh) * 2018-05-31 2024-06-28 山东中泳电子股份有限公司 一种多时钟双核同步计时器

Cited By (2)

* Cited by examiner, † Cited by third party
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&#39;exécution synchronisée d&#39;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