맞춤기술찾기

이전대상기술

OpenMP프로그램에서 자료 경합을 탐지하기 위한 시스템, 방법, 및 방법을 저장하는 저장 매체

  • 기술번호 : KST2015113786
  • 담당센터 : 대전기술혁신센터
  • 전화번호 : 042-610-2279
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 OpenMP 프로그램에서 자료 경합을 탐지하기 위한 방법, 시스템, 및 기록 매체가 개시된다. 본 발명에 따른 경합 탐지 시스템은 사용자로부터 경합 탐지 대상인 프로그램의 원시 코드 및 경합 탐지를 수행할 분석 속성을 수신하고, 소정의 네트워크를 통하여 서버로부터 수신된 경합 탐지 결과를 출력하는 클라이언트 및 네트워크에 접근 가능하며, 분석 속성에 따라서 프로그램의 수행중에 경합을 탐지하여 경합 탐지 결과를 생성하는 서버를 포함한다. 서버는 분석 속성에 따른 경합 탐지를 위하여 원시 코드를 변형시켜 변형된 목적 코드를 생성하는 전처리부와 변형된 목적 코드의 실행중 생성되는 복수 개의 병행 스레드에 대한 접근 사건들을 동기화 명령어 포함 여부를 기준으로 분류하고, 공유 변수에 대한 각 접근 사건들 중 접근 역사에 저장된 이전의 접근 사건과 병행성 관계에 있는 접근 사건을 경합으로 탐지하여 경합 탐지 결과를 생성하기 위한 수행중 분석부(on-the-fly analyzer)를 포함한다. 본 발명에 의하여 병렬 프로그램의 자료 경합을 효과적으로 탐지하고, 탐지 결과를 직관적으로 이해되도록 시각화할 수 있다. OpenMP 병렬 프로그램, 경합 검증, 3차원 확장적 시각화, 병행성 관계, 레이블링, 프로토콜, 합성 프로그램
Int. CL G06F 17/00 (2006.01) G06F 9/00 (2006.01) G06F 17/50 (2006.01) G06F 15/00 (2006.01)
CPC G06F 17/509(2013.01) G06F 17/509(2013.01) G06F 17/509(2013.01) G06F 17/509(2013.01)
출원번호/일자 1020090099063 (2009.10.19)
출원인 한국과학기술원
등록번호/일자 10-1108431-0000 (2012.01.16)
공개번호/일자 10-2011-0042404 (2011.04.27) 문서열기
공고번호/일자 (20120131) 문서열기
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 소멸
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2009.10.19)
심사청구항수 17

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 한국과학기술원 대한민국 대전광역시 유성구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 김영주 대한민국 대전광역시 유성구
2 전용기 대한민국 경상남도 진주시 진주대로
3 김대영 대한민국 대전광역시 유성구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 특허법인 다해 대한민국 서울특별시 강남구 삼성로***, *층(삼성동,고운빌딩)

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
1 한국과학기술원 대한민국 대전광역시 유성구
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2009.10.19 수리 (Accepted) 1-1-2009-0636766-52
2 [출원서등 보정]보정서
[Amendment to Patent Application, etc.] Amendment
2010.01.13 수리 (Accepted) 1-1-2010-0020675-94
3 선행기술조사의뢰서
Request for Prior Art Search
2010.09.08 수리 (Accepted) 9-1-9999-9999999-89
4 선행기술조사보고서
Report of Prior Art Search
2010.10.18 수리 (Accepted) 9-1-2010-0065107-24
5 의견제출통지서
Notification of reason for refusal
2011.03.09 발송처리완료 (Completion of Transmission) 9-5-2011-0131364-51
6 [지정기간연장]기간연장(단축, 경과구제)신청서
[Designated Period Extension] Application of Period Extension(Reduction, Progress relief)
2011.05.09 수리 (Accepted) 1-1-2011-0339977-04
7 [지정기간연장]기간연장(단축, 경과구제)신청서
[Designated Period Extension] Application of Period Extension(Reduction, Progress relief)
2011.06.09 수리 (Accepted) 1-1-2011-0433491-00
8 [거절이유 등 통지에 따른 의견]의견(답변, 소명)서
[Opinion according to the Notification of Reasons for Refusal] Written Opinion(Written Reply, Written Substantiation)
2011.07.01 수리 (Accepted) 1-1-2011-0506095-12
9 [명세서등 보정]보정서
[Amendment to Description, etc.] Amendment
2011.07.01 보정승인간주 (Regarded as an acceptance of amendment) 1-1-2011-0506096-68
10 거절결정서
Decision to Refuse a Patent
2011.12.02 발송처리완료 (Completion of Transmission) 9-5-2011-0716523-24
11 [거절이유 등 통지에 따른 의견]의견(답변, 소명)서
[Opinion according to the Notification of Reasons for Refusal] Written Opinion(Written Reply, Written Substantiation)
2012.01.05 수리 (Accepted) 1-1-2012-0013248-16
12 [명세서등 보정]보정서(재심사)
Amendment to Description, etc(Reexamination)
2012.01.05 보정승인 (Acceptance of amendment) 1-1-2012-0013249-62
13 수수료 반환 안내서
Notification of Return of Official Fee
2012.01.09 발송처리완료 (Completion of Transmission) 1-5-2012-0004060-12
14 등록결정서
Decision to Grant Registration
2012.01.12 발송처리완료 (Completion of Transmission) 9-5-2012-0021905-95
15 출원인정보변경(경정)신고서
Notification of change of applicant's information
2013.02.01 수리 (Accepted) 4-1-2013-5019983-17
16 출원인정보변경(경정)신고서
Notification of change of applicant's information
2014.12.24 수리 (Accepted) 4-1-2014-5158129-58
17 출원인정보변경(경정)신고서
Notification of change of applicant's information
2014.12.24 수리 (Accepted) 4-1-2014-5157968-69
18 출원인정보변경(경정)신고서
Notification of change of applicant's information
2014.12.24 수리 (Accepted) 4-1-2014-5157993-01
19 출원인정보변경(경정)신고서
Notification of change of applicant's information
2019.04.24 수리 (Accepted) 4-1-2019-5081392-49
20 출원인정보변경(경정)신고서
Notification of change of applicant's information
2020.05.15 수리 (Accepted) 4-1-2020-5108396-12
21 출원인정보변경(경정)신고서
Notification of change of applicant's information
2020.06.12 수리 (Accepted) 4-1-2020-5131486-63
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
OpenMP 프로그램에서 자료 경합을 탐지하기 위한 시스템에 있어서, 사용자로부터 경합 탐지 대상인 프로그램의 원시 코드 및 경합 탐지를 수행할 분석 속성을 수신하고, 소정의 네트워크를 통하여 서버로부터 수신된 경합 탐지 결과를 출력하는 클라이언트; 및 상기 네트워크에 접근 가능하며, 상기 분석 속성에 따라서 상기 프로그램의 수행중에 경합을 탐지하여 상기 경합 탐지 결과를 생성하는 상기 서버를 포함하며, 상기 서버는, 상기 분석 속성에 따른 경합 탐지를 위하여 상기 원시 코드를 변형시켜 변형된 목적 코드를 생성하는 전처리부; 및 상기 변형된 목적 코드의 실행 중 생성되는 복수 개의 병행 스레드에 대한 접근 사건들을 동기화 명령어 포함 여부를 기준으로 분류하고, 공유 변수에 대한 각 접근 사건들 중 접근 역사에 저장된 이전의 접근 사건과 병행성 관계에 있는 접근 사건을 경합으로 탐지하여 상기 경합 탐지 결과를 생성하기 위한 수행중 분석부(on-the-fly analyzer)를 포함하고, 상기 수행중 분석부는, 상기 접근 사건들을 읽기/쓰기 사건인지 여부를 기준으로 더욱 분류하고, 동기화 명령어를 포함하지 않는 쓰기 접근 사건에서 경합이 발생하면, 상기 접근 역사의 내용을 초기화하고 현재 접근 사건을 상기 접근 역사에 기록하는 경합 검출 엔진; 상기 프로그램의 수행중에 생성된 스레드에 고유한 식별자를 부여하는 레이블링 엔진; 및 복수 개의 스레드들에 의하여 공유되는 접근 역사로부터 경합에 참여할 가능성이 없는 접근 사건들을 제거하는 사건 선택 엔진을 포함하고, 상기 클라이언트는, 상기 경합 탐지 결과를 분석하여 상기 프로그램의 내포 깊이를 획득하고, 3차원 원추를 시각화한 뒤 상기 내포 깊이에 상응하도록 상기 3차원 원추의 높이를 등분하는 원추 시각화 모듈; 상기 프로그램의 실행 중 생성되는 복수 개의 병행 스레드 중 동일한 내포 수준의 스레드를 상기 원추의 동일한 높이에 위치한 원주 상에 시각화하는 스레드 시각화 모듈; 및 상기 경합 탐지 결과를 분석하여 상기 스레드들 중 공유 변수에 대한 접근 사건들이 발생한 스레드들을 읽기 및 쓰기 접근 사건의 발생 유무 및 발생 선후에 따라 분류하고, 분류된 스레드들을 서로 구별되도록 시각화하는 접근 사건 시각화 모듈을 포함하며, 상기 스레드 시각화 모듈은, 상기 스레드들 중 임계 구역(critical section)을 포함하는 스레드를 결정하고, 임계 구역을 포함하는 스레드를 록 변수에 따라 상이한 색깔로 구별되도록 더욱 표시하는 것을 특징으로 하는 시스템
2 2
삭제
3 3
삭제
4 4
제1항에 있어서, 상기 레이블링 엔진은, English-Hebrew 기법 및 Nest Region 기법 중 적어도 하나를 이용하는 것을 특징으로 하는 시스템
5 5
제1항 및 제4항 중 어느 한 항에 있어서, 상기 전처리부는, 상기 프로그램의 내포 병렬성 유무 및 동기화 명령 포함 여부에 따라 상기 프로그램이 속하는 프로그램 모델을 결정하는 프로그램 스캐닝부(program scanner); 상기 프로그램 모델 및 상기 분석 속성에 따라 상기 프로그램의 경합 탐지에 이용될 최적의 경합 탐지 엔진을 선택하는 엔진 선택부(engine selector); 선택된 경합 탐지 엔진을 이용하여 상기 원시 코드를 변형시켜 변형된 원시 코드를 생성하는 소스 변형부(source instrumentor); 및 상기 변형된 원시 코드를 컴파일하여 실행가능한 변형된 목적 코드를 생성하는 컴파일러(compiler)를 포함하는 것을 특징으로 하는 시스템
6 6
제5항에 있어서, 상기 프로그램 스캐닝부는 상기 경합 탐지 엔진이 상기 원시 코드에 삽입될 위치에 의사 코드(pseudo-code)를 삽입하고, 상기 소스 변형부는 상기 의사 코드를 상기 경합 탐지 엔진에 상응하는 라이브러리로 대체하여 상기 변형된 원시 코드를 생성하는 것을 특징으로 하는 시스템
7 7
제5항에 있어서, 상기 엔진 선택부는, 상기 분석 속성에 따라 룩업 테이블로부터 최적의 경합 탐지 엔진을 선택하는 것을 특징으로 하는 시스템
8 8
삭제
9 9
제1항에 있어서, 상기 원추 시각화 모듈은, 각 내포 수준 내에 다중 루프(multi-way loop)가 존재하는지 판단하고, 상기 다중 루프가 존재하는지 여부를 해당 내포 수준에 더욱 표시하는 것을 특징으로 하는 시스템
10 10
삭제
11 11
제1항에 있어서, 상기 스레드 시각화 모듈은, 병행 스레드들 간의 병행성에 기반하여 상기 스레드들 간의 거리를 결정하고, 상기 원추 상에 상기 스레드들을 결정된 거리만큼 이격되게 각각 표시하며, 상기 스레드들 중 자식 스레드를 포함하는 부모 스레드를 자식 스레드와 구별되도록 표시하는 수직적 추상화 모듈을 더 포함하는 것을 특징으로 하는 시스템
12 12
제1항에 있어서, 상기 스레드 시각화 모듈은, 상기 원추 상의 동일한 원추 상에 위치된 스레드들 중 소정 개수의 스레드들을 하나의 스레드로 표시하는 수평적 추상화 모듈을 더 포함하는 것을 특징으로 하는 시스템
13 13
제1항에 있어서, 상기 접근 사건 시각화 모듈은, 상기 스레드들을 접근 사건이 발생되지 않은 스레드, 읽기 접근 사건이 쓰기 접근 사건보다 먼저 발생한 스레드, 쓰기 접근 사건이 읽기 접근 사건보다 먼저 발생한 스레드로 각각 분류하고, 분류된 상기 스레드들을 서로 구별되도록 더욱 표시하는 것을 특징으로 하는 시스템
14 14
제1항에 있어서, 상기 서버 및 상기 클라이언트는 웹 기반 환경에서 동작하는 것을 특징으로 하는 시스템
15 15
OpenMP 프로그램에서 자료 경합을 탐지하기 위한 방법에 있어서, 사용자로부터 경합 탐지 대상인 프로그램의 원시 코드 및 경합 탐지를 수행할 분석 속성을 수신하고 수신된 분석 속성을 서버로 전송하는 단계; 상기 분석 속성에 따라서 상기 프로그램의 수행중 경합을 탐지하여 상기 경합 탐지 결과를 생성하는 경합 탐지 결과 생성 단계; 및 소정의 네트워크를 통하여 상기 경합 탐지 결과를 수신하여 출력하는 출력 단계를 포함하며, 상기 경합 탐지 결과 생성 단계는, 상기 분석 속성에 따른 경합 탐지를 위하여 상기 원시 코드를 변형시켜 변형된 목적 코드를 생성하는 전처리 단계; 및 상기 변형된 목적 코드의 실행중 생성되는 복수 개의 병행 스레드에 대한 접근 사건들을 동기화 명령어 포함 여부를 기준으로 분류하고, 공유 변수에 대한 각 접근 사건들 중 접근 역사에 저장된 이전의 접근 사건과 병행성 관계에 있는 접근 사건을 경합으로 탐지하여 상기 경합 탐지 결과를 생성하기 위한 수행중 분석 단계를 포함하고, 상기 수행중 분석 단계는, 상기 접근 사건들을 읽기/쓰기 사건인지 여부를 기준으로 더욱 분류하는 단계; 및 동기화 명령어를 포함하지 않는 쓰기 접근 사건에서 경합이 발생하면, 상기 접근 역사의 내용을 초기화하고 현재 접근 사건을 상기 접근 역사에 기록하는 단계; 상기 프로그램의 수행중에 생성된 스레드에 고유한 식별자를 부여하는 단계; 및 복수 개의 스레드들에 의하여 공유되는 접근 역사로부터 경합에 참여할 가능성이 없는 접근 사건들을 제거하는 단계를 포함하며, 상기 경합 탐지 결과 생성 단계는, 상기 경합 탐지 결과를 분석하여 상기 프로그램의 내포 깊이를 획득하고, 3차원 원추를 시각화한 뒤 상기 내포 깊이에 상응하도록 상기 3차원 원추의 높이를 등분하는 원추 시각화 단계; 상기 프로그램의 실행 중 생성되는 복수 개의 병행 스레드 중 동일한 내포 수준의 스레드를 상기 원추의 동일한 높이에 위치한 원주 상에 시각화하는 스레드 시각화 단계; 및 상기 경합 탐지 결과를 분석하여 상기 스레드들 중 공유 변수에 대한 접근 사건들이 발생한 스레드들을 읽기 및 쓰기 접근 사건의 발생 유무 및 발생 선후에 따라 분류하고, 분류된 스레드들을 서로 구별되도록 시각화하는 접근 사건 시각화 단계를 포함하며, 상기 스레드 시각화 단계는, 상기 스레드들 중 임계 구역(critical section)을 포함하는 스레드를 결정하고, 임계 구역을 포함하는 스레드를 록 변수에 따라 상이한 색깔로 구별되도록 표시하는 단계를 더 포함하는 것을 특징으로 하는 방법
16 16
삭제
17 17
삭제
18 18
제15항에 있어서, 상기 전처리 단계는, 상기 프로그램의 내포 병렬성 유무 및 동기화 명령 포함 여부에 따라 상기 프로그램이 속하는 프로그램 모델을 결정하고, 상기 경합 탐지 엔진이 상기 원시 코드에 삽입될 위치에 의사 코드(pseudo-code)를 삽입하는 단계; 상기 프로그램 모델 및 상기 분석 속성에 따라 룩업 테이블로부터 상기 프로그램의 경합 탐지에 이용될 최적의 경합 탐지 엔진을 선택하는 단계; 상기 의사 코드를 상기 경합 탐지 엔진에 상응하는 라이브러리로 대체하여 변형된 원시 코드를 생성하는 단계; 및 상기 변형된 원시 코드를 컴파일하여 실행가능한 변형된 목적 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 방법
19 19
삭제
20 20
제15항에 있어서, 상기 원추 시각화 단계는, 각 내포 수준 내에 다중 루프(multi-way loop)가 존재하는지 판단하고, 상기 다중 루프가 존재하는지 여부를 해당 내포 수준에 표시하는 단계를 더 포함하는 것을 특징으로 하는 방법
21 21
삭제
22 22
제15항에 있어서, 상기 스레드 시각화 단계는, 병행 스레드들 간의 병행성에 기반하여 상기 스레드들 간의 거리를 결정하고, 상기 원추 상에 상기 스레드들을 결정된 거리만큼 이격되게 각각 표시하며, 상기 스레드들 중 자식 스레드를 포함하는 부모 스레드를 자식 스레드와 구별되도록 표시하는 수직적 추상화 단계를 더 포함하는 것을 특징으로 하는 방법
23 23
제15항에 있어서, 상기 스레드 시각화 단계는, 상기 원추 상의 동일한 원추 상에 위치된 스레드들 중 소정 개수의 스레드들을 하나의 스레드로 표시하는 수평적 추상화 단계를 더 포함하는 것을 특징으로 하는 방법
24 24
제15항에 있어서, 상기 접근 사건 시각화 단계는, 상기 스레드들을 접근 사건이 발생되지 않은 스레드, 읽기 접근 사건이 쓰기 접근 사건보다 먼저 발생한 스레드, 쓰기 접근 사건이 읽기 접근 사건보다 먼저 발생한 스레드로 각각 분류하고, 분류된 상기 스레드들을 서로 구별되도록 표시하는 단계를 더 포함하는 것을 특징으로 하는 방법
25 25
제15항 및 제18항, 제20항, 제22항 내지 제24항 중 어느 한 항에 따른 방법을 구현하기 위한 명령어들을 포함하는 컴퓨터 프로그램을 기록하는 기록 매체
지정국 정보가 없습니다
패밀리정보가 없습니다
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 교육과학기술부 한국과학재단 USN센서플랫폼 및 네트워크시스템 구현