Main Content

eye

공동분산 단위 행렬 만들기

    설명

    예제

    cI = eye(n,codist)n×n 공동분산 단위 행렬을 만들고 codist를 사용하여 워커 전체에 걸쳐 배열 값의 분포를 지정합니다.

    디폴트 codistributor1d 분산 방식이나 codistributor1d 객체 또는 codistributor2dbc 객체에 의해 정의되는 분산 방식을 사용하려면 codist"codistributed"로 지정합니다.

    사용자가 통신 작업 또는 spmd 블록에서 공동분산 배열을 만들면, 함수는 각 워커에 배열을 만듭니다. 사용자가 통신 작업 또는 spmd 블록 외부에서 공동분산 배열을 만들면, 공동분산 배열이 만들어지는 워커 또는 클라이언트에만 배열이 저장됩니다.

    기본적으로 공동분산 배열의 기본 유형은 double입니다.

    예제

    cI = eye(n,m,codist)는 주대각선상에 위치한 요소는 1이고 나머지 요소는 0인 n×m 공동분산 단위 행렬을 만듭니다. 예를 들어, eye(2,3,"codistributed")는 2×3 공동분산 배열을 만듭니다.

    예제

    cI = eye(sz,codist)는 공동분산 단위 행렬을 만듭니다. 여기서 크기 벡터 szcI의 크기를 정의합니다. 예를 들어, eye([2 3],"codistributed")는 2×3 공동분산 단위 행렬도 만듭니다.

    예제

    cI = eye(___,datatype,codist)는 기본 데이터형이 datatype인 공동분산 단위 행렬을 만듭니다. 예를 들어, eye(1,"int8","codistributed")는 공동분산 8비트 정수 스칼라 1을 만듭니다. 위에 열거된 구문에 나와 있는 크기 인수를 이 구문과 함께 사용할 수 있습니다. 배열의 크기 인수와 데이터형 인수 뒤에 codist를 지정해야 합니다.

    cI = eye(___,"noCommunication")은 워커 간의 통신을 사용하지 않고 공동분산 단위 행렬을 만듭니다.

    매우 큰 배열을 생성하는 경우 또는 통신 작업 또는 spmd 블록이 많은 워커를 사용하는 경우 워커 간 통신으로 인해 배열 생성이 느려질 수 있습니다. 워커 간 통신에 필요한 시간을 없앰으로써 코드의 성능을 개선하려면 이 구문을 사용하십시오.

    이 구문을 사용하면 일부 오류 검사 단계를 건너뜁니다. "noCommunication"을 지정하지 않고 코드 프로토타입을 만든 후 코드의 성능을 개선하려면 이 구문을 사용하십시오.

    크기 인수, 데이터형 인수, codist 인수 뒤에 "noCommunication"을 지정해야 합니다.

    cI = eye(___,like=p)는 배열 p를 사용하여 공동분산 단위 행렬을 만듭니다. 또한 "noCommunication"을 함수 호출의 일부로 지정할 수 있습니다.

    반환된 배열 cI는 기본 유형, 희소성 및 실수/복소수 여부가 p와 동일합니다.

    예제

    모두 축소

    1000×1000 공동분산 단위 행렬을 만들고 디폴트 분산 방식을 사용하여 분산되도록 합니다.

    spmd(4)
        C = eye(1000,"codistributed");
    end

    4개의 워커가 있는 경우 각 워커는 C의 1000×250 국소 조각을 포함합니다.

    1000×1000 공동분산 uint16 단위 행렬을 만들고 열을 기준으로 분산되도록 합니다. codistributor1d 객체를 사용하여 분산 방식을 정의합니다.

    spmd(4)
        codist = codistributor1d(2,100*[1:spmdSize]);
        C = eye(1000,1000,"uint16",codist)
    end
    Worker 1: 
      This worker stores C(:,1:100).
              LocalPart: [1000x100 uint16]
          Codistributor: [1x1 codistributor1d]
    Worker 2: 
      This worker stores C(:,101:300).
              LocalPart: [1000x200 uint16]
          Codistributor: [1x1 codistributor1d]
    Worker 3: 
      This worker stores C(:,301:600).
              LocalPart: [1000x300 uint16]
          Codistributor: [1x1 codistributor1d]
    Worker 4: 
      This worker stores C(:,601:1000).
              LocalPart: [1000x400 uint16]
          Codistributor: [1x1 codistributor1d]

    각 워커는 C의 1000×100*spmdIndex 국소 조각을 포함합니다.

    또한 크기 벡터를 지정하는 동일한 공동분산 배열을 얻을 수 있습니다.

    spmd(4)
        C = eye([1000 1000],"uint16",codist);
    end

    먼저, 공동분산 배열을 만듭니다. 기본 데이터형을 single로 지정하고 디폴트 분산 방식을 사용합니다.

    spmd(4)
    p = eye(1000,"single","codistributed");
    end

    크기와 데이터형이 p와 동일한 새 공동분산 배열을 만듭니다. 2차원 블록-순환 codistributor2dbc 함수를 사용하여 분산 방식을 정의합니다.

    spmd
    C = eye(size(p),codistributor2dbc,"noCommunication",like=p);
    end

    입력 인수

    모두 축소

    단위 행렬의 첫 번째 차원의 크기로, 정수로 지정됩니다.

    • n이 유일한 정수 입력 인수라면 cI는 정사각 n×n 공동분산 단위 행렬입니다.

    • n0이라면 cI는 빈 행렬입니다.

    • n이 음수라면 함수는 이를 0으로 처리합니다.

    공동분산 배열을 위한 분산 방식으로, 다음 옵션 중 하나로 지정됩니다.

    • "codistributed" — 디폴트 codistributor1d 객체에 의해 정의되는 디폴트 분산 방식을 사용합니다.

    • codistributor1d 객체 — codistributor1d 객체에 정의된 1차원 분산 방식을 사용합니다. 디폴트 1차원 분산 방식을 사용하려면 인수 없이 codistributor1d 함수를 지정합니다.

    • codistributor2dbc 객체 — codistributor2dbc 객체에 정의된 2차원 블록-순환 분산 방식을 사용합니다. 디폴트 2차원 블록-순환 분산 방식을 사용하려면 인수 없이 codistributor2dbc 함수를 지정합니다.

    공동분산 단위 행렬의 두 번째 차원의 크기로, 정수로 지정됩니다.

    • m0이라면 cI는 빈 행렬입니다.

    • m이 음수라면 함수는 이를 0으로 처리합니다.

    데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    각 차원의 크기로, 정수 행 벡터로 지정됩니다. 이 벡터의 각 요소는 해당 차원의 크기를 나타냅니다.

    • 차원의 크기가 0이라면 cI는 빈 배열입니다.

    • 차원의 크기가 음수라면 함수는 이를 0으로 처리합니다.

    • 두 번째 차원을 넘어서면 eye는 크기가 1인 후행 차원을 무시합니다. 예를 들어, eye([3 1 1 1],"codistributed")는 3×1 공동분산 단위 행렬을 만듭니다.

    예: sz = [2 3 4]는 2×3×4 공동분산 배열을 만듭니다.

    데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    반환된 배열의 기본 데이터형으로, 다음 옵션 중 하나로 지정됩니다.

    • "double"

    • "single"

    • "logical"

    • "int8"

    • "uint8"

    • "int16"

    • "uint16"

    • "int32"

    • "uint32"

    • "int64"

    • "uint64"

    만들려는 배열 프로토타입으로, codistributed 배열로 지정됩니다.

    datatype을 지정하지 않으면, 결과로 생성된 공동분산 배열은 기본 유형, 희소성 및 실수/복소수 여부가 p와 동일합니다.

    버전 내역

    R2006b에 개발됨