1 |
1
노드에 있어서,적어도 하나의 프로세서; 및상기 적어도 하나의 프로세서에 의해 실행가능한 적어도 하나의 명령어를 저장하는 메모리를 포함하고, 상기 적어도 하나의 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,피분해 행렬을 분할하여 생성한 복수의 행렬 블록과 상기 복수의 행렬 블록 중 적어도 하나를 처리할 프로세스(process)가 복수 개 배치된 프로세스 그리드(process grid) 간의 행렬 블록 매핑을 생성하도록 구성된 제 1 루틴; 및상기 피분해 행렬의 LU 분해 연산 예상 성능에 기반하여 상기 행렬 블록 매핑을 최적화하도록 구성된 제 2 루틴을 포함하고,상기 제 1 루틴은,상기 프로세스 그리드의 프로세스 행별 컴퓨팅 성능에 기반하여 상기 피분해 행렬의 블록 행과 상기 프로세스 그리드의 프로세스 행 간의 행 단위 블록 매핑을 결정하는 행 매핑 루틴; 및상기 프로세스 그리드의 프로세스 열별 컴퓨팅 성능 및 각 프로세스에 할당가능한 최대 행렬 블록 개수에 기반하여 상기 피분해 행렬의 블록 열과 상기 프로세스 그리드의 프로세스 열 간의 열 단위 블록 매핑을 결정하는 열 매핑 루틴을 포함하고,상기 제 2 루틴은,상기 행렬 블록 매핑으로부터 제 2 행렬 블록 매핑을 생성하는 제 1 명령어; 및상기 피분해 행렬의 LU 분해 연산 예상 성능에 기반하여 상기 행렬 블록 매핑 및 상기 제 2 행렬 블록 매핑 중에서 최적 행렬 블록 매핑을 선택하는 제 2 명령어를 포함하는,노드
|
2 |
2
제 1 항에 있어서,상기 복수의 행렬 블록은 동일한 행 크기 및 열 크기를 갖는 복수의 부분 행렬에 대응하는,노드
|
3 |
3
제 1 항에 있어서,상기 제 1 루틴은,각 프로세스의 컴퓨팅 성능 및 상기 행렬 블록의 크기에 기반하여 상기 최대 행렬 블록 개수를 결정하도록 구성된 명령어를 포함하는,노드
|
4 |
4
제 1 항에 있어서,상기 행 매핑 루틴은,상기 피분해 행렬의 블록 행을 순회하면서 상기 프로세스 그리드의 프로세스 행의 컴퓨팅 성능 대비 블록 행 배정 횟수의 비율을 결정하고,상기 비율이 최저인 프로세스 행에 현재 순회 중인 블록 행을 배정하도록 구성된 명령어를 포함하는,노드
|
5 |
5
제 1 항에 있어서,상기 열 매핑 루틴은,상기 피분해 행렬의 블록 열을 순회하면서 상기 프로세스 그리드의 프로세스 열의 컴퓨팅 성능 대비 블록 열 배정 횟수의 비율을 결정하고,프로세스에 할당가능한 최대 행렬 블록 개수를 초과하지 않으면서 상기 비율이 최저인 프로세스 열에 현재 순회 중인 블록 열을 배정하도록 구성된 명령어를 포함하는,노드
|
6 |
6
제 1 항에 있어서,상기 제 1 명령어는,상기 행렬 블록 매핑의 열 단위 블록 매핑에서 서로 다른 프로세스 열에 배정된 블록 열 매핑을 스왑(SWAP)하는 제 1 스왑; 및 상기 행렬 블록 매핑의 행 단위 블록 매핑에서 서로 다른 프로세스 행에 배정된 블록 행 매핑을 스왑(SWAP)하는 제 2 스왑중 적어도 하나를 실행하도록 구성된 명령어를 포함하는,노드
|
7 |
7
제 1 항에 있어서,상기 제 2 명령어는,상기 행렬 블록 매핑, 상기 제 2 행렬 블록 매핑, 상기 복수의 프로세스의 컴퓨팅 성능, 및 실행 파라미터에 기반하여 상기 예상 성능을 결정하도록 구성된 명령어를 포함하는,노드
|
8 |
8
제 1 항에 있어서,상기 제 2 루틴은,상기 제 2 명령어에 의해 선택된 최적 행렬 블록 매핑을 상기 행렬 블록 매핑으로 하여 제 1 명령어 및 상기 제 2 명령어를 소정의 횟수만큼 반복하도록 구성된 제 3 명령어를 포함하는,노드
|
9 |
9
제 1 항에 있어서,상기 적어도 하나의 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,상기 복수의 프로세스를 상기 프로세스 그리드로 배치하도록 구성된 제 3 루틴을 포함하고,상기 제 3 루틴은,상기 복수의 프로세스를 실행할 적어도 하나의 노드의 컴퓨팅 성능에 기반하여 상기 프로세스 그리드의 총 프로세스 수를 결정하고,상기 총 프로세스 수에 기반하여 상기 프로세스 그리드의 프로세스 행 크기 및 프로세스 열 크기에 대한 적어도 하나의 후보 조합을 결정하고,각 후보 조합에 대하여 상기 복수의 프로세스에 대한 최적 프로세스 그리드를 결정하도록 구성된 명령어를 포함하는,노드
|
10 |
10
제 1 항에 있어서,상기 행 단위 블록 매핑 및 상기 열 단위 블록 매핑은 각각 상기 피분해 행렬의 블록 행 개수 및 블록 열 개수만큼의 크기를 갖는 배열이고,상기 행렬 블록 매핑은 상기 행 단위 블록 매핑 및 상기 열 단위 블록 매핑의 조합에 의해 상기 피분해 행렬과 상기 프로세스 그리드 간의 매핑 정보를 제공하는,노드
|
11 |
11
적어도 하나의 프로세서를 포함한 노드에 의해 실행되는 병렬 LU 분해 제공 방법에 있어서,프로세서에 의해, 피분해 행렬을 분할하여 생성한 복수의 행렬 블록과 상기 복수의 행렬 블록 중 적어도 하나를 처리할 프로세스가 복수 개 배치된 프로세스 그리드 간의 행렬 블록 매핑을 생성하는 단계; 및상기 프로세서에 의해, 상기 피분해 행렬의 LU 분해 연산 예상 성능에 기반하여 상기 행렬 블록 매핑을 최적화하는 단계를 포함하고,상기 행렬 블록 매핑을 생성하는 단계는,상기 프로세스 그리드의 프로세스 행별 컴퓨팅 성능에 기반하여 상기 피분해 행렬의 블록 행과 상기 프로세스 그리드의 프로세스 행 간의 행 단위 블록 매핑을 결정하는 단계; 및상기 프로세스 그리드의 프로세스 열별 컴퓨팅 성능 및 각 프로세스에 할당가능한 최대 행렬 블록 개수에 기반하여 상기 피분해 행렬의 블록 열과 상기 프로세스 그리드의 프로세스 열 간의 열 단위 블록 매핑을 결정하는 단계를 포함하고,상기 행렬 블록 매핑을 최적화하는 단계는,상기 행렬 블록 매핑으로부터 제 2 행렬 블록 매핑을 생성하는 단계; 및상기 피분해 행렬의 LU 분해 연산 예상 성능에 기반하여 상기 행렬 블록 매핑 및 상기 제 2 행렬 블록 매핑 중에서 최적 행렬 블록 매핑을 선택하는 단계를 포함하는,병렬 LU 분해 제공 방법
|
12 |
12
제 11 항에 있어서,상기 행 단위 블록 매핑을 결정하는 단계는,상기 피분해 행렬의 블록 행을 순회하면서 상기 프로세스 그리드의 프로세스 행의 컴퓨팅 성능 대비 블록 행 배정 횟수의 비율을 결정하는 단계; 및상기 비율이 최저인 프로세스 행에 현재 순회 중인 블록 행을 배정하는 단계를 포함하는,병렬 LU 분해 제공 방법
|
13 |
13
제 11 항에 있어서,상기 열 단위 블록 매핑을 결정하는 단계는,상기 피분해 행렬의 블록 열을 순회하면서 상기 프로세스 그리드의 프로세스 열의 컴퓨팅 성능 대비 블록 열 배정 횟수의 비율을 결정하는 단계; 및프로세스에 할당가능한 최대 행렬 블록 개수를 초과하지 않으면서 상기 비율이 최저인 프로세스 열에 현재 순회 중인 블록 열을 배정하는 단계를 포함하는,병렬 LU 분해 제공 방법
|
14 |
14
제 11 항에 있어서,상기 제 2 행렬 블록 매핑을 생성하는 단계는,상기 행렬 블록 매핑의 열 단위 블록 매핑에서 서로 다른 프로세스 열에 배정된 블록 열 매핑을 스왑(SWAP)하는 단계; 및상기 행렬 블록 매핑의 행 단위 블록 매핑에서 서로 다른 프로세스 행에 배정된 블록 행 매핑을 스왑(SWAP)하는 단계중 적어도 하나를 포함하는,병렬 LU 분해 제공 방법
|
15 |
15
제 11 항에 있어서,상기 최적 행렬 블록 매핑을 선택하는 단계는,상기 행렬 블록 매핑, 상기 제 2 행렬 블록 매핑, 상기 복수의 프로세스의 컴퓨팅 성능, 및 실행 파라미터에 기반하여 상기 예상 성능을 결정하는 단계를 포함하는,병렬 LU 분해 제공 방법
|
16 |
16
제 11 항에 있어서,상기 행렬 블록 매핑을 최적화하는 단계는,선택된 상기 최적 행렬 블록 매핑을 상기 행렬 블록 매핑으로 하여 상기 제 2 행렬 블록을 생성하는 단계 및 상기 최적 행렬 블록 매핑을 선택하는 단계를 소정의 횟수만큼 반복하는 단계를 더 포함하는,병렬 LU 분해 제공 방법
|
17 |
17
제 11 항에 있어서,상기 프로세서에 의해, 상기 복수의 프로세스를 상기 프로세스 그리드로 배치하는 단계를 더 포함하고,상기 프로세스 그리드로 배치하는 단계는,상기 복수의 프로세스를 실행할 적어도 하나의 노드의 컴퓨팅 성능에 기반하여 상기 프로세스 그리드의 총 프로세스 수를 결정하는 단계;상기 총 프로세스 수에 기반하여 상기 프로세스 그리드의 프로세스 행 크기 및 프로세스 열 크기에 대한 적어도 하나의 후보 조합을 결정하는 단계; 및각 후보 조합에 대하여 상기 복수의 프로세스에 대한 최적 프로세스 그리드를 결정하는 단계를 포함하는,병렬 LU 분해 제공 방법
|
18 |
18
제 11 항 내지 제 17 항 중 어느 한 항에 따른 병렬 LU 분해 제공 방법을 프로세서에 의해 실행하도록 구성된 적어도 하나의 명령어를 포함하는 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 비 일시적 기록 매체
|