병렬 외장 메모리
Parallel external memory컴퓨터 과학에서 PEM(Parallel External Memory) 모델은 캐시 인식 외부 메모리 추상 머신입니다.[1]이것은 싱글 프로세서 외장 메모리(EM) 모델과 병렬 컴퓨팅의 유사점입니다.마찬가지로 Parallel Random-Access Machine(PRAM; 병렬랜덤액세스 머신)에 대한 캐시 인식 유추입니다.PEM 모델은 다수의 프로세서와 각각의 개인 캐시 및 공유 메인메모리로 구성됩니다.
모델
정의.
PEM 모델은[1] EM 모델과 PRAM 모델의 조합입니다.PEM 모델은 PP 프로세서와 2레벨 메모리 계층으로 구성된 모델입니다.이 메모리 계층은 N({N})과P({P})의 작은 내장 메모리(캐시)로 구성됩니다.CPU는 메인 메모리를 공유합니다.각 캐시는 1개의 프로세서 전용입니다.프로세서는 다른 프로세서의 캐시에 액세스할 수 없습니다.캐시의 는 M M으로, 사이즈(\ B의 블록으로 분할되어 있습니다.프로세서는 캐시에 있는 데이터에 대해서만 작업을 수행할 수 있습니다.데이터는 메인 메모리와 캐시 간에 B(\ B 블록으로 전송할 수 있습니다.
I/O의 복잡성
PEM 모델의 복잡도 척도는 메인 메모리와 [1]캐시 간의 병렬 블록 전송 수를 결정하는 I/O 복잡도입니다.병렬 블록 전송 중에는 각 프로세서가 블록을 전송할 수 있습니다.따라서 PP 프로세서가 메인 메모리를 형성하는 B B 의 데이터 블록을 캐시에 병렬로 로드하는 , 이는 O가 O의 I/O 복잡도로 간주됩니다 PEM 모델 간의 전송을 최소화해야 합니다.캐시 내의 데이터를 가능한 한 많이 캐시하여 동작시킵니다.
읽기/쓰기 충돌
PEM 모델에서는, P프로세서간에 직접 통신 네트워크는 없습니다.프로세서는 메인 메모리를 통해 간접적으로 통신해야 합니다.복수의 프로세서가 메인 메모리내의 같은 블록에 액세스 하려고 하면, 동시에 읽기/쓰기[1] 경합이 발생합니다.PRAM 모델과 마찬가지로 이 문제의 3가지 다른 변형이 고려됩니다.
- 동시 읽기 동시 쓰기(CRCW):메인 메모리의 같은 블록은, 복수의 프로세서로 동시에 읽고 쓸 수 있습니다.
- 동시 읽기 전용 쓰기(CREW):메인 메모리의 같은 블록을 복수의 프로세서로 동시에 읽어낼 수 있습니다.블록에 쓸 수 있는 프로세서는 한 번에 1개뿐입니다.
- 전용 읽기 전용 쓰기(EREW):메인 메모리의 같은 블록은, 복수의 프로세서로 동시에 읽거나 쓸 수 없습니다.한 번에 한 블록에 액세스할 수 있는 프로세서는 1개뿐입니다.
2개의[1] 알고리즘은 PB(\ P\leq B 프로세서가 같은 블록에 동시에 쓸 CREW 및 EREW 문제를 해결합니다.첫 번째 방법은 쓰기 작업을 직렬화하는 것입니다.블록에 기입하는 프로세서는 1개뿐입니다.그 결과 총 P P P\parallel block 전송이 .두 번째 접근법에서는 O( ()\ O ( \ ( ) } )패럴렐 블록 전송과 각 프로세서에 대한 추가 블록이 합니다.주요 아이디어는 쓰기 작업을 바이너리 트리 방식으로 예약하고 데이터를 점차 단일 블록으로 결합하는 것입니다.첫 번째 에서P{ P 프로세서는 을 P/2{P/2} 으로 합니다. 다음/2P/2 프로세서는P/P/ 을P/4P/로 결합합니다. 이 절차는 모든 데이터가 하나의 블록에 결합될 때까지 계속됩니다.
다른 모델과의 비교
| 모델 | 멀티코어 | 캐시 인식 |
|---|---|---|
| 랜덤 액세스 머신(RAM) | 아니요. | 아니요. |
| Parallel Random-Access Machine(PRAM; 병렬 랜덤 액세스 머신) | 네. | 아니요. |
| 외장 메모리(EM) | 아니요. | 네. |
| 병렬 외장 메모리(PEM) | 네. | 네. |
예
멀티웨이 파티션
{ ,.. ,m - 1 { M = \ { m { , ... m { d - 1} } a- d-1 피벗의 벡터라고 합니다.A A를 N개 요소의 순서없는 세트라고 .d웨이[1] 파티션은 세트 { 1,., d { \ = \ { A {1。 여기서 i \ \ _ { i=}^{ } a A A j = \ A_ \ A_ = \ } ( i i 。 \ 1 \ 。구성 요소들의 나는{\displaystyle A_{나는}}는 것보다 m나는 − 1{\displaystyle m_{i-1}}와 m나는 2{\displaystyle m_{나는}^{2}보다} 작아진다. 다음에 algorithm[1]입력 N/P-sized 인접해 세그먼트 S1,으로 나눠져 있다. 큰 경우, SP{\displaystyle S_{1},...,S_{P}}mai에서 수입니다.n메모리. 프로세서i는 주로 i에서 동작합니다.멀티웨이 파티션알고리즘(PEM_DIST_SORT[1])는 PEM 프리픽스 합계[1] 알고리즘을 사용하여 의O ( P + log )()\ \ left ( { \ {N} { } + \ ( ) \ } I/O 복잡도를 가진 프리픽스 합계를 계산합니다.이 알고리즘은 최적의 PRAM 프리픽스 합계 알고리즘을 시뮬레이트합니다.
// 각 프로세서 i에 대해 데이터 {\i}의 d-way 파티션을 병렬로 계산하여 M {\M}을를 캐시에 피벗하는 벡터를 읽습니다.})를 d버킷으로 하고 { i,. , }({i}=\{ ...를 각 버킷의 항목 수로 합니다.end { M1, . , P ({ \ { _ {1} , , _ { )세트로 PEM 프리픽스 합계를 동시에 실행합니다.// 프리픽스 합 벡터를 사용하여 프로세서i의 파티션을 오프셋 M 에 병렬로 씁니다- M_{ 및 displaystyle 에 저장된 프리픽스 합계를 사용하는 경우 마지막 프로세서 P는 버킷 의벡터 B({B})를 계산하여 반환합니다
만약 d의 벡터)O형이며 입력한 연속적인 메모리에 위치한다, 다음 d-way 분할 문제는 개별 공조 시스템 모델에 O형인(NPB+⌈ dB⌉<>를 사용하여 로그 (P)+d로그 (B)){\displaystyle O\left({\frac{N}{PB}}+\left\lc 해결될 수 있{\displaystyle d=O\left({\frac{M}{B}}\right)}피벗 M(MB).eil { \ right \> \ ( ) + \ ( ) \ } I/O의 복잡성.마지막 버킷의 내용은 연속된 메모리에 위치해야 합니다.
선택.
N입니다.다음[1] 코드는 다음을 사용합니다.PRAMSORT이 알고리즘은 O N O N에서 실행되는 PRAM 최적 정렬 알고리즘입니다.SELECT캐시 최적 단일 패킷 선택 알고리즘입니다.
N이 N P이면 {\ {는 A A를 반환한다의 경우 // PRAMSORT1, {\의 종료},kt {t}이면 [ 1: ] , , k { { }([ 1 : ] , ,k )를 반환하고, 그렇지 않으면 은 1+을 합니다
입력이 연속 메모리에 저장되어 있다고 가정하면PEMSELECT의 I/O 복잡도는 다음과 같습니다.
배포 정렬
배포 정렬은 AN를 유사한 크기의 d d개의 분리된 버킷으로 합니다.그런 다음 모든 버킷이 재귀적으로 정렬되고 결과가 완전히 정렬된 목록으로 결합됩니다.
P { P인 경우 작업은 캐시 최적 단일 정렬 알고리즘에 위임됩니다.
그 이외의 경우는, 다음의[1] 알고리즘이 사용됩니다.
나는 병렬로{\displaystyle 나는}각 프로세서에 대한{A\displaystyle}에서 끓여샘플 4Nd{\displaystyle{\tfrac{4N}{\sqrt{d}}}}부분을 만약 M<>S나는{\displaystyle M<, S_{나는}}그때 d)M/B{\displaystyle d=M/B}부하 S나는{\displaystyle S_{나는}}에 M. {\dis M - size page and sort page into d 를 로드하고 합니다 정렬된 메모리의 d / 4 { / '번째 요소를 연속된 {로 선택합니다(\ di} ) 。샘플의 }가 병렬로 종료되는 경우 … {\ R}\R^{P을(를) 단일 연속 R {\ {로 한다 {_ {d 끝 do {\을를) 찾습니다displaystyle {j는 j {\ j}에서 {d으)로 ){\ {{PEMSELECT { {\ {Pd}}}), j 인접한 의 피벗의 엔드 팩 ( [ : , , ,) { {{ B}} ={ ( [ : ] , { \ { } , { \ }) sort 、 、 sort sort 。(B [ ] / P )( \ \ ( \ \ { \ { \ { )를 하여B[의 j {\ PEMDISTSORT}}를 lay 합니다요소를 담당하는 P}\\rceil 프로세서끝 I/O의 복잡성PEMDISTSORT다음과 같습니다.
어디에
프로세서의 수가 d) O( P Bdisplay fd) = <\ 1로 선택되었을 경우
기타 PEM 알고리즘
| PEM 알고리즘 | I/O의 복잡성 | 제약 |
|---|---|---|
| 머지소트[1] | ||
| 리스트 랭킹[2] | ||
| 오일러 투어[2] | ||
| 식목[2] 평가 | ||
| MST[2] 검색 |
서 sortP ( ){ \ } { } ( )는 PEM 모델에서P { P}프로세서를 하여N개의 항목을 하는 데 걸리는 시간입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b c d e f g h i j k l Arge, Lars; Goodrich, Michael T.; Nelson, Michael; Sitchinava, Nodari (2008). "Fundamental parallel algorithms for private-cache chip multiprocessors". Proceedings of the Twentieth Annual Symposium on Parallelism in Algorithms and Architectures - SPAA '08. New York, New York, USA: ACM Press: 197. doi:10.1145/1378533.1378573. ISBN 9781595939739.
- ^ a b c d Arge, Lars; Goodrich, Michael T.; Sitchinava, Nodari (2010). "Parallel external memory graph algorithms". 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS). IEEE: 1–11. doi:10.1109/ipdps.2010.5470440. ISBN 9781424464425.