희소 행렬에서 값을 정의 할 때 병렬 처리를 어떻게 활용할 수 있습니까?

user1068636

다음 MATLAB 코드 2 크기의 행렬의 모든 요소들을 루프 I J가 2 × I J.을

    for i=1:(I-2)
        for j=1:(J-2)
            ij1 = i*J+j+1; % row
            ij2 = i*J+j+1 + I*J; % col 
            D1(ij1,ij1) = 2;
            D1(ij1,ij2) = -1;
        end
    end

MATLAB의 parfor 명령을 사용하여 병렬화 할 수있는 방법이 있습니까? 정의되지 않은 모든 요소가 0이라고 가정 할 수 있습니다. 따라서이 행렬은 결국 희소 (대부분 0)가됩니다.

rahnema1

사용하기 전에 parfor 사용시기를 결정하는parfor 것과 관련된 지침을 읽어 보는 것이 좋습니다 . 특히 이것은 :

일반적으로 코드를 더 빠르게 실행하려면 먼저 벡터화를 시도하십시오.

여기서 벡터화는 0이 아닌 요소의 인덱스를 계산하는 데 효과적으로 사용될 수 있습니다. 이러한 인덱스는 함수에 사용됩니다 sparse. 이를 위해서는 i또는 j열 벡터 중 하나 와 행 벡터 중 하나를 정의해야합니다 . 암시 적 확장이 적용되고 인덱스가 계산됩니다.

I = 300;
J = 300;
i = (1:I-2).';
j = 1:J-2;
ij1 = i*J+j+1;
ij2 = i*J+j+1 + I*J;

D1 = sparse(ij1, ij1, 2, 2*I*J, 2*I*J) +  sparse(ij1, ij2, -1, 2*I*J, 2*I*J);

그러나 비교를 위해 이것은 parfor(테스트되지 않은) 사용 방법이 될 수 있습니다 .

D1 = sparse (2*I*J, 2*I*J);
parfor i=1:(I-2)
    for j=1:(J-2)
        ij1 = i*J+j+1; 
        ij2 = i*J+j+1 + I*J;  
        D1 = D1 + sparse([ij1;ij1], [ij1;ij2], [2;-1], 2*I*J, 2*I*J) ;
    end
end

여기서는 감소 변수D1 로 사용됩니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

두 희소 행렬의 차이를 어떻게 구할 수 있습니까?

분류에서Dev

백만 요소의 배열을 정렬 할 때 병합 정렬 알고리즘이 충돌하는 이유를 어떻게 찾을 수 있습니까?

분류에서Dev

C #에서 사용자 지정 직렬화를 사용할 때 XML 요소의 이름을 어떻게 제어 할 수 있습니까?

분류에서Dev

VEC를 병렬로 처리 : 어떻게 안전하게 또는 불안정한 기능을 사용하지 않고 수행 할 수 있습니까?

분류에서Dev

R에서 병렬 컴퓨팅을 수행 할 때 foreach ()의 클러스터에 요소가 어떻게 할당됩니까?

분류에서Dev

코어 당 하나의 프로세스를 사용하여 작업 당 레코드에서 GNU 병렬을 어떻게 실행할 수 있습니까?

분류에서Dev

코어 당 하나의 프로세스를 사용하여 작업 당 레코드에서 GNU 병렬을 어떻게 실행할 수 있습니까?

분류에서Dev

Numpy 행렬에서 요소 별 산술을 어떻게 할 수 있습니까?

분류에서Dev

cuda 지원 GPU에서 병렬로 실행되도록이 조합 알고리즘을 어떻게 수정할 수 있습니까?

분류에서Dev

R의 외부 함수에서 희소 행렬을 어떻게 만들 수 있습니까?

분류에서Dev

Flutter에서 2 정렬을 어떻게 할 수 있습니까?

분류에서Dev

UI 그리드에서 열을 어떻게 정렬 할 수 있습니까?

분류에서Dev

UI 그리드에서 열을 어떻게 정렬 할 수 있습니까?

분류에서Dev

tolua ++를 사용할 때 어떻게 lua가 반환 값의 소유권을 갖도록 할 수 있습니까?

분류에서Dev

Graphcore IPU에서 모델 병렬 처리를 어떻게 구현할 수 있습니까?

분류에서Dev

표 셀 (<td>)의 요소를 어떻게 정렬 할 수 있습니까?

분류에서Dev

biml을 사용할 때 SSIS에서 병합 조인에 대한 입력 구성 요소를 정렬하려면 어떻게해야합니까?

분류에서Dev

객체의 ArrayList를 어떻게 정렬 할 수 있습니까?

분류에서Dev

MongoDB에서 100 개가 넘는 레코드가있을 때 2D 인덱스 $ near 쿼리를 어떻게 정렬 할 수 있습니까?

분류에서Dev

JFXPanel을 사용할 때 정렬 문제를 어떻게 수정합니까?

분류에서Dev

Web Audio API에서 음성 입력을 처리 할 때 전체 스펙트로 그램 해상도를 어떻게 활용할 수 있습니까?

분류에서Dev

Opalrb를 디버깅 할 때 소스 맵을 어떻게 활용할 수 있습니까?

분류에서Dev

usort ()를 사용하여 배열을 정렬 할 때 두 개의 시작 값을 설정할 수 있습니까?

분류에서Dev

행렬의 요소에서 샘플링 할 때 어떤 요소가 선택되었는지 어떻게 알 수 있습니까?

분류에서Dev

SortMode가 자동 일 때 DataGridView에서 정렬 된 열을 어떻게 확인할 수 있습니까?

분류에서Dev

다중 스레드에 의해 희소 행렬에 값을 할당 할 때 Segfault

분류에서Dev

VB.Net에서 Button 모양의 CheckBox를 사용할 때 어떻게 텍스트를 중앙 정렬 할 수 있습니까?

분류에서Dev

VB.Net에서 Button 모양의 CheckBox를 사용할 때 어떻게 텍스트를 중앙 정렬 할 수 있습니까?

분류에서Dev

tablecolumn을 중간에 어떻게 정렬 할 수 있습니까?

Related 관련 기사

  1. 1

    두 희소 행렬의 차이를 어떻게 구할 수 있습니까?

  2. 2

    백만 요소의 배열을 정렬 할 때 병합 정렬 알고리즘이 충돌하는 이유를 어떻게 찾을 수 있습니까?

  3. 3

    C #에서 사용자 지정 직렬화를 사용할 때 XML 요소의 이름을 어떻게 제어 할 수 있습니까?

  4. 4

    VEC를 병렬로 처리 : 어떻게 안전하게 또는 불안정한 기능을 사용하지 않고 수행 할 수 있습니까?

  5. 5

    R에서 병렬 컴퓨팅을 수행 할 때 foreach ()의 클러스터에 요소가 어떻게 할당됩니까?

  6. 6

    코어 당 하나의 프로세스를 사용하여 작업 당 레코드에서 GNU 병렬을 어떻게 실행할 수 있습니까?

  7. 7

    코어 당 하나의 프로세스를 사용하여 작업 당 레코드에서 GNU 병렬을 어떻게 실행할 수 있습니까?

  8. 8

    Numpy 행렬에서 요소 별 산술을 어떻게 할 수 있습니까?

  9. 9

    cuda 지원 GPU에서 병렬로 실행되도록이 조합 알고리즘을 어떻게 수정할 수 있습니까?

  10. 10

    R의 외부 함수에서 희소 행렬을 어떻게 만들 수 있습니까?

  11. 11

    Flutter에서 2 정렬을 어떻게 할 수 있습니까?

  12. 12

    UI 그리드에서 열을 어떻게 정렬 할 수 있습니까?

  13. 13

    UI 그리드에서 열을 어떻게 정렬 할 수 있습니까?

  14. 14

    tolua ++를 사용할 때 어떻게 lua가 반환 값의 소유권을 갖도록 할 수 있습니까?

  15. 15

    Graphcore IPU에서 모델 병렬 처리를 어떻게 구현할 수 있습니까?

  16. 16

    표 셀 (<td>)의 요소를 어떻게 정렬 할 수 있습니까?

  17. 17

    biml을 사용할 때 SSIS에서 병합 조인에 대한 입력 구성 요소를 정렬하려면 어떻게해야합니까?

  18. 18

    객체의 ArrayList를 어떻게 정렬 할 수 있습니까?

  19. 19

    MongoDB에서 100 개가 넘는 레코드가있을 때 2D 인덱스 $ near 쿼리를 어떻게 정렬 할 수 있습니까?

  20. 20

    JFXPanel을 사용할 때 정렬 문제를 어떻게 수정합니까?

  21. 21

    Web Audio API에서 음성 입력을 처리 할 때 전체 스펙트로 그램 해상도를 어떻게 활용할 수 있습니까?

  22. 22

    Opalrb를 디버깅 할 때 소스 맵을 어떻게 활용할 수 있습니까?

  23. 23

    usort ()를 사용하여 배열을 정렬 할 때 두 개의 시작 값을 설정할 수 있습니까?

  24. 24

    행렬의 요소에서 샘플링 할 때 어떤 요소가 선택되었는지 어떻게 알 수 있습니까?

  25. 25

    SortMode가 자동 일 때 DataGridView에서 정렬 된 열을 어떻게 확인할 수 있습니까?

  26. 26

    다중 스레드에 의해 희소 행렬에 값을 할당 할 때 Segfault

  27. 27

    VB.Net에서 Button 모양의 CheckBox를 사용할 때 어떻게 텍스트를 중앙 정렬 할 수 있습니까?

  28. 28

    VB.Net에서 Button 모양의 CheckBox를 사용할 때 어떻게 텍스트를 중앙 정렬 할 수 있습니까?

  29. 29

    tablecolumn을 중간에 어떻게 정렬 할 수 있습니까?

뜨겁다태그

보관