Main Content

ones

모두 1로 구성된 공동분산 배열 만들기

    설명

    예제

    cO = ones(n,codist)는 1로 구성된 n×n 공동분산 행렬을 만들고 codist를 사용하여 워커 전체에 걸쳐 배열 값의 분포를 지정합니다.

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

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

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

    cO = ones(sz,codist)는 1로 구성된 공동분산 배열을 만듭니다. 여기서 크기 벡터 szcO의 크기를 정의합니다. 예를 들어, ones([2 3],"codistributed")는 2×3 공동분산 배열을 만듭니다.

    cO = ones(sz1,...,szN,codist)는 1로 구성된 sz1×...×szN 공동분산 배열을 만듭니다. 여기서 sz1,...,szN은 각 차원의 크기를 나타냅니다.

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

    cO = ones(___,"noCommunication")은 워커 간의 통신을 사용하지 않고 1로 구성된 공동분산 배열을 만듭니다.

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

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

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

    cO = ones(___,like=p)는 배열 p를 사용하여 1로 구성된 공동분산 배열을 만듭니다. 또한 "noCommunication"을 함수 호출의 일부로 지정할 수 있습니다.

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

    예제

    모두 축소

    1로 구성된 1000×1000 공동분산 double형 행렬을 만들고 두 번째 차원(열)을 기준으로 분산되도록 합니다.

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

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

    1로 구성된 1000×1000 공동분산 uint16 행렬을 만들고 열을 기준으로 분산되도록 합니다.

    spmd(4)
        codist = codistributor1d(2,100*[1:spmdSize]);
        C = ones(1000,1000,"uint16",codist)
    end

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

    입력 인수

    모두 축소

    정사각 행렬의 크기로, 정수로 지정됩니다.

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

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

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

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

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

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

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

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

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

    • 두 번째 차원을 넘어서면 ones는 크기가 1인 후행 차원을 무시합니다. 예를 들어, ones([3 1 1 1],"codistributed")는 1로 구성된 3×1 공동분산 벡터를 만듭니다.

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

    각 차원의 크기로, codistributed 정수 값의 별도 인수로 지정됩니다.

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

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

    • 두 번째 차원을 넘어서면 함수는 크기가 1인 후행 차원을 무시합니다.

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

    • "double"

    • "single"

    • "logical"

    • "int8"

    • "uint8"

    • "int16"

    • "uint16"

    • "int32"

    • "uint32"

    • "int64"

    • "uint64"

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

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

    버전 내역

    R2006b에 개발됨